GNU/Linux >> Linux Esercitazione >  >> Linux

ALSA Api:come riprodurre due file wave contemporaneamente?

Puoi configurare dmix di ALSA plug-in per consentire a più applicazioni di condividere dispositivi di input/output.

Di seguito è riportato un esempio di configurazione per eseguire questa operazione:

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
}

Questo fa quanto segue:

  • crea un nuovo dispositivo utilizzando il dmix plugin, che consente a più app di condividere il flusso di output
  • ne crea un altro usando dsnoop che fa la stessa cosa per il flusso di input
  • li unisce in un nuovo duplex dispositivo che supporterà l'input e l'output utilizzando il asym plugin
  • chiedi ad ALSA di usare il nuovo duplex dispositivo come dispositivo predefinito
  • chiedi ad ALSA di usare hw:0 per controllare il dispositivo predefinito (alsamixer e così via)

Inseriscilo in uno dei ~/.asoundrc o /etc/asound.conf e dovresti essere a posto.

Per ulteriori informazioni, vedere http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.


ALSA non fornisce un mixer. Se devi riprodurre più flussi audio contemporaneamente, devi mixarli da solo.

Il modo più semplice per farlo è decodificare i file WAV in float campioni, aggiungerli e ritagliarli durante la riconversione in campioni interi.

In alternativa, puoi provare ad aprire il file predefinito dispositivo audio (e non un dispositivo hardware come "hw:0") più volte, una per ogni stream che desideri riprodurre, e spera che il plugin dmix ALSA sia caricato e fornisca la funzionalità di missaggio.


Linux
  1. Come confrontare il contenuto di due tarball

  2. Come copiare più file contemporaneamente usando scp

  3. Come trovare/elencare tutti i file univoci in due directory?

  4. Come concedere l'accesso utente non root ai file del dispositivo

  5. Come elencare l'albero dei dispositivi del kernel

Come riprodurre MP3 su Ubuntu

Come giocare a It Takes Two su Linux

Come visualizzare due file affiancati in Linux

Come confrontare due file nel terminale Linux

Come sincronizzare automaticamente i file tra due server Linux

Come posso vedere contemporaneamente due file tex in TeXstudio?