GNU/Linux >> LINUX-Kenntnisse >  >> Linux

ALSA Api:Wie spielt man zwei Wave-Dateien gleichzeitig ab?

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 mit asym 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.


Linux
  1. Wie kann man Firefox anweisen, ein anderes Alsa-Gerät zu verwenden?

  2. So vergleichen Sie den Inhalt zweier Tarballs

  3. Wie verbinde ich zwei CSV-Dateien?

  4. Wie kann ich alle eindeutigen Dateien in zwei Verzeichnissen finden / auflisten?

  5. So listen Sie den Kernel-Gerätebaum auf

So spielen Sie MP3 in Ubuntu ab

Wie man It Takes Two unter Linux spielt

So zeigen Sie zwei Dateien nebeneinander in Linux an

So vergleichen Sie zwei Dateien im Linux-Terminal

So synchronisieren Sie Dateien automatisch zwischen zwei Linux-Servern

Wie kann ich zwei Tex-Dateien gleichzeitig in TeXstudio sehen?