19.03.2024, 04:18 UhrDeutsch | English
Hallo Gast [ Registrierung | Anmelden ]

Sound in mehreren Anwendungen parallel nutzen!


Habt ihr auch das Problem, dass ihr nur in einer Anwendung etwas hört?
Wenn ja, dann kann euch diese Seite weiterhelfen!
Voraussetzung ist, dass die Soundkarte funktioniert und alsaconf als root ausgeführt wurde!
Außerdem solltet ihr zuerst artsd ausschalten und alle Player auf ALSA umstellen, um zu testen, obs nicht auch so geht.
Das ganze funktioniert über das "dmix" Plugin und da dieses schon im System eingebaut ist, muss es nur mehr aktiviert werden. Dazu einfach im /home des jeweiligen User eine Datei namens .asoundrc anlegen
nano -w .asoundrc
In diese werden folgende Zeilen eingetragen:

pcm.!default {
    type plug
    slave.pcm "dmixer"
}
pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}
pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
        #periods 128
        rate 44100
     }
     bindings {
        0 0
        1 1
     }
}
ctl.mixer0 {
    type hw
    card 0
} 

pcm.ossmix {
    type dmix
    ipc_key 1024 # must be unique!
    slave {
        pcm "hw:0,0"      # you cannot use a "plug" device here, darn.
        period_time 0
        period_size 1024 # must be power of 2
        buffer_size 8192  # dito. It
       #format "S32_LE"
       #periods 128 # dito.
       #rate 8000 # with rate 8000 you *will* hear,
       # if ossmix is used :)
    }
    # bindings are cool. This says, that only the first
    # two channels are to be used by dmix, which is
    # enough for (most) oss apps and also lets
    # multichannel chios work much faster:
    bindings {
        0 0 # from 0 => to 0
        1 1 # from 1 => to 1
    }
} 


Nach einem Neustart ist das dmix als default in allen Anwendungen, die alsa verwenden. Damit alle Programme über alsa und dmix arbeiten müssen die meisten eingestellt werden.
Hab es mit Kanotix2005-1, 2005-2 und mit 2005-3 getestet.
Sound funktionierte überall parallel und auch Supertux war neben AmaroK zu hören!

Hier nun ein paar Anleitungen zu verschiedenen Programmen:

KDE:

Im Kontrollzentrum unter Sound & Multimedia sind drei Einstellungen zu treffen:
1) Sound-System abschalten (Haken entfernen, so dass alles grau wird.)
2) Hab von xweber einen Tipp bekommen: Eine Datei namens "knwrapper.sh" im Verzeichnis /usr/local/bin/ anlegen und mit "chmod +x knwrapper.sh" ausführbar machen:
su
<passwort>
nano -w /usr/local/bin/knwrapper.sh
chmod +x /usr/local/bin/knwrapper.sh

In die Datei folgenden Inhalt einfügen (Variante 1)
#!/bin/bash

WAVE=aplay
OGG=ogg123
MP3=mpg123

if [ $# == 1 ]; then
  FILETYPE=`file -b "${1}"`

  if expr "${FILETYPE}" : ".*WAVE.*" >/dev/null 2>&1
  then
    ${WAVE} "${1}" >/dev/null 2>&1
  elif expr "${FILETYPE}" : ".*Ogg.*" >/dev/null 2>&1
  then
    ${OGG} "${1}" >/dev/null 2>&1
  elif expr "${FILETYPE}" : ".*MP3.*" >/dev/null 2>&1
  then
    ${MP3} "${1}" >/dev/null 2>&1
  fi
fi

bzw. folgenden Inhalt einfügen (Variante 2)
#!/bin/bash

WAVE=aplay
OGG=ogg123
MP3=mpg123

NULL=/dev/null

[ $# != 1 ] && exit 1

case $(file -b "$1") in
    *WAVE*)            $WAVE "$1" >$NULL 2>&1 & ;;
    *Ogg*)             $OGG -dalsa09 "$1" >$NULL 2>&1 & ;;
    *MP3*|*MPEG*)      $MP3 -oalsa09 "$1" >$NULL 2>&1 & ;;
esac

Variante 2 funktioniert mit folgenden MP3-Kennungen (file -b)
MPEG ADTS, layer III, v1, 128 kBits, 44.1 kHz, JntStereo
MP3 file with ID3 version 2.3.0 tag

Jetzt nur mehr im Kontrollzentrum unter Sound&Multimedia->Systemnachrichten->Wiedergabe-Einstellungen den externen Player setzen. Genauer gesagt, da einfach knwrapper.sh eingeben und schon hat man den Sound.
Funktionieren sollten .wav, .mp3, .ogg -> wobei .wav immer geht!

XMMS:

Hier unter Optionen->Einstellungen (CTL+P) kann unter dem Register Audio-I/O-Plugins das Ausgabeplugin auf ALSA umgestellt werden (libALSA.so). Unter dem Punkt Konfigurieren muss als Audio-Gerät "default" eingetragen werden.

AmaroK:

Amarok kann normal kein Alsa. Daher muss das Xine-Plugin installiert sein. Man kann es als root mit
apt-get install amarok-xine
installieren. Nach einem Neustart der Anwendung kann man unter Einstellungen->amaroK einrichten ...->Sound-System den xine-Treiber einstellen und anwenden. Nach dem Anwenden kommt das xine Menü und da müssen Gerät für Monoausgabe und Gerät für Stereoausgabe auf default stehen, damit es funktioniert.

Kaffeine:

Da dieses Programm auch auf Xine aufbaut, muss auch hier Gerät für Monoausgabe und Gerät für Stereoausgabe auf default stehen, damit es funktioniert.

Gaim:

Hier kann unabhängig von DMix in den Einstellungen unter Sounds als Kommando aplay eingegeben werden. Danach sollte Gaim zusammen mit anderen ALSA Anwendungen Sound ausgeben können.

Firefox/Flashplayer:

Ein wenig knifflig scheint zuerst die Konfiguration des Flashplayers unter Firefox. Letztlich sind aber auch hier nur wenige Schritte notwendig:
1) Prüfen, ob das Programm aoss installiert ist.
2) Wenn nicht:
apt-get install alsa-oss

3) Als root die datei /etc/mozilla-firefox/mozilla-firefoxrc in einem Editor öffnen
nano /etc/mozilla-firefox/mozilla-firefoxrc

4) FIREFOX_DSP="auto" ändern nach FIREFOX_DSP="aoss"

Weitere Programme:

Einfach schauen, dass sie ALSA verwenden und dort als Gerät "default" eingetragen ist. Die meisten Anwendungen haben dies bereits und sollten daher funktionieren.



lg
Raider700

p.s.: Anleitungen für andere Programme können gerne dazu eingetragen werden.
pp.s.: Wer Rechtschreibfehler findet, darf sie gerne behalten oder ausbessern ;-)


EDIT:

Eine weitere .asoundrc hat pauge77 gepostet. Diese funktioniert auch mit mehreren Aufnahmequellen und verwendet das dsnoop-Protokoll. Was dmix für die Ausgabe ist, ist dieses dsnoop für den Eingang.
Skype und Xmms funktionieren dann auch parallel. Diese Datei sieht folgendermaßen aus:

pcm.card0 {
     type hw
     card 0
     mmap_emulation true
}

pcm.!output {
     type dmix
     ipc_key 1234
     ipc_key_add_uid 1
     slave {
       pcm "card0"
       period_time 0
       buffer_time 0
       period_size 2048
       buffer_size 32768
       rate 48000
     }
     bindings {
     0 0
     1 1
     }
}

#
# DSNOOP output device
#
pcm.!input {
     type dsnoop
     ipc_key 4321
     ipc_key_add_uid 1
     slave {
       pcm "card0"
       period_time 0
       period_size 1024
       rate 48000
     }
}

#
# ASYM duplex device
#
pcm.!duplex {
     type asym
     playback.pcm "output"
     capture.pcm "input"
}

#
# Make the duplex device default
#
pcm.!default {
     type plug
     slave.pcm "duplex"
}

#
# OSS Compability

pcm.!dsp0 {
     type plug
     slave.pcm "duplex"
}

ctl.!mixer0 {
     type hw
     card 0
}



EDIT:

Noch eine Variante von der ALSA-Homepage mit 5.1 Unterstützung (getestet mit CMI8738). Funktioniert aber nicht mit mehreren Aufnahmequellen.

pcm.dmixer { 
    type dmix 
    ipc_key 1024 
    ipc_key_add_uid false
    ipc_perm 0666		# mixing for all users

    slave { 
        pcm "hw:0,0" 
        period_time 0 
        period_size 1024 
        buffer_size 8192 
        rate 44100 
    } 
    bindings { 
        0 0 
        1 1 
    } 
} 

pcm.dsp0 { 
    type plug 
    slave.pcm "dmixer" 
} 
ctl.mixer0 {
    type hw
    card 0
} 

pcm.ossmix {
    type dmix
    ipc_key 1024 # must be unique!
    slave {
        pcm "hw:0,0"      
        period_time 0
        period_size 1024 
        buffer_size 8192  
       #format "S32_LE"
       #periods 128 # dito.
       #rate 8000 # with rate 8000 you *will* hear,
       # if ossmix is used :)
    }
    bindings {
        0 0 
        1 1 
    }
}
pcm.!default {
    type plug
    slave.pcm "dmixer"
    type route                  # ab hier kommt der Teil für die 5.1 unterstützung
    slave.pcm "surround51"
    slave.channels 6
    ttable.0.0 1
    ttable.1.1 1
    ttable.0.2 1
    ttable.1.3 1
    ttable.0.4 0.5
    ttable.1.4 0.5
    ttable.0.5 0.5
    ttable.1.5 0.5
}


Ich hoffe, das hilft einigen ;-)


zurück
XML Revisions of $tag
Seiten-History :: Letzter Editor : JiHa :: Eigentümer : Raider700 ::
Powered by pnWikka 1.0
 
 
Deutsch | English
Logos and trademarks are the property of their respective owners, comments are property of their posters, the rest is © 2004 - 2006 by Jörg Schirottke (Kano).
Consult Impressum and Legal Terms for details. Kanotix is Free Software released under the GNU/GPL license.
This CMS is powered by PostNuke, all themes used at this site are released under the GNU/GPL license. designed and hosted by w3you. Our web server is running on Kanotix64-2006.