Sie können dmix
von ALSA konfigurieren Plugin, um mehreren Anwendungen die gemeinsame Nutzung von Eingabe-/Ausgabegeräten zu ermöglichen.
Eine Beispielkonfiguration dafür ist unten:
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
}
Dies bewirkt Folgendes:
- erstellt ein neues Gerät mit
dmix
Plugin, das es mehreren Apps ermöglicht, den Ausgabestream zu teilen - erstellt ein weiteres mit
dsnoop
was dasselbe für den Eingabestrom tut - verbindet diese zu einem neuen
duplex
Gerät, das Ein- und Ausgabe mitasym
unterstützt Plugin - Sagen Sie ALSA, den neuen
duplex
zu verwenden Gerät als Standardgerät - Sagen Sie ALSA,
hw:0
zu verwenden um das Standardgerät (alsamixer usw.) zu steuern
Stecken Sie dies entweder in ~/.asoundrc
oder /etc/asound.conf
und Sie sollten bereit sein.
Weitere Informationen finden Sie unter http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.
ALSA stellt keinen Mixer zur Verfügung. Wenn Sie mehrere Audiostreams gleichzeitig abspielen müssen, müssen Sie sie selbst zusammenmischen.
Am einfachsten lässt sich dies bewerkstelligen, indem die WAV-Dateien nach float
dekodiert werden Samples, fügen Sie sie hinzu und schneiden Sie sie ab, wenn Sie sie zurück in Integer-Samples konvertieren.
Alternativ können Sie versuchen, die Standard zu öffnen Audiogerät (und nicht ein Hardwaregerät wie "hw:0") mehrmals, einmal für jeden Stream, den Sie abspielen möchten, und hoffen, dass das dmix ALSA-Plugin geladen ist und die Mischfunktionalität bereitstellt.