Můžete nakonfigurovat dmix ALSA plugin umožňující více aplikacím sdílet vstupní/výstupní zařízení.
Příklad konfigurace, jak to provést, je níže:
pcm.dmixed {
type dmix
ipc_key 1024
ipc_key_add_uid 0
slave.pcm "hw:0,0"
}
pcm.dsnooped {
type dsnoop
ipc_key 1025
slave.pcm "hw:0,0"
}
pcm.duplex {
type asym
playback.pcm "dmixed"
capture.pcm "dsnooped"
}
# Instruct ALSA to use pcm.duplex as the default device
pcm.!default {
type plug
slave.pcm "duplex"
}
ctl.!default {
type hw
card 0
}
To provede následující:
- vytvoří nové zařízení pomocí
dmixplugin, který umožňuje více aplikacím sdílet výstupní proud - vytvoří další pomocí
dsnoopkterý dělá totéž pro vstupní proud - sloučí je do nového
duplexzařízení, které bude podporovat vstup a výstup pomocíasymplugin - řekněte společnosti ALSA, aby použila nový
duplexzařízení jako výchozí zařízení - řekněte společnosti ALSA, aby použila
hw:0k ovládání výchozího zařízení (alsamixer atd.)
Vložte toto buď do ~/.asoundrc nebo /etc/asound.conf a měli byste být připraveni jít.
Další informace najdete na http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.
ALSA nedodává mixér. Pokud potřebujete přehrávat více audio streamů současně, musíte je smíchat sami.
Nejjednodušší způsob, jak toho dosáhnout, je dekódovat soubory WAV na float samply, přidejte je a ořízněte je při převodu zpět na celočíselné vzorky.
Případně můžete zkusit otevřít výchozí zvukové zařízení (a ne hardwarové zařízení jako "hw:0") několikrát, jednou pro každý stream, který chcete přehrát, a doufejte, že je načten plugin dmix ALSA a poskytne funkci mixování.