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í
dmix
plugin, který umožňuje více aplikacím sdílet výstupní proud - vytvoří další pomocí
dsnoop
který dělá totéž pro vstupní proud - sloučí je do nového
duplex
zařízení, které bude podporovat vstup a výstup pomocíasym
plugin - řekněte společnosti ALSA, aby použila nový
duplex
zařízení jako výchozí zařízení - řekněte společnosti ALSA, aby použila
hw:0
k 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í.