GNU/Linux >> Tutoriales Linux >  >> Linux

ALSA Api:¿Cómo reproducir dos archivos de onda simultáneamente?

Puedes configurar el dmix de ALSA complemento para permitir que varias aplicaciones compartan dispositivos de entrada/salida.

A continuación se muestra una configuración de ejemplo para hacer esto:

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
}

Esto hace lo siguiente:

  • crea un nuevo dispositivo usando el dmix complemento, que permite que varias aplicaciones compartan el flujo de salida
  • crea otro usando dsnoop que hace lo mismo para el flujo de entrada
  • los fusiona en un nuevo duplex dispositivo que admitirá entrada y salida usando el asym complemento
  • dile a ALSA que use el nuevo duplex dispositivo como dispositivo predeterminado
  • dile a ALSA que use hw:0 para controlar el dispositivo predeterminado (alsamixer, etc.)

Pega esto en ~/.asoundrc o /etc/asound.conf y deberías estar listo para irte.

Para obtener más información, consulte http://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing.


ALSA no proporciona batidora. Si necesita reproducir varias secuencias de audio al mismo tiempo, debe mezclarlas por su cuenta.

La forma más fácil de lograr esto es decodificando los archivos WAV a float muestras, agréguelas y recórtelas al convertirlas de nuevo en muestras enteras.

Alternativamente, puede intentar abrir el predeterminado dispositivo de audio (y no un dispositivo de hardware como "hw:0") varias veces, una vez por cada transmisión que desee reproducir, y espere que el complemento dmix ALSA esté cargado y proporcione la funcionalidad de mezcla.


Linux
  1. ¿Cómo decirle a Firefox que use otro dispositivo Alsa?

  2. ¿Cómo reproducir archivos .swf?

  3. cómo fusionar dos archivos consistentemente línea por línea

  4. ¿Cómo programar archivos de árbol de dispositivos Linux .dts?

  5. ¿Cómo puedo diferenciar dos archivos XML?

Cómo reproducir MP3 en Ubuntu

Cómo jugar Se necesitan dos en Linux

Cómo mostrar dos archivos uno al lado del otro en Linux

Cómo comparar dos archivos en la terminal de Linux

Cómo Rsync archivos entre dos servidores Linux automáticamente

¿Cómo puedo ver dos archivos tex en TeXstudio simultáneamente?