¿Por qué PortAudio no juega bien con otros programas de audio o cómo puedo conseguir que?

StackOverflow https://stackoverflow.com/questions/2351884

  •  23-09-2019
  •  | 
  •  

Pregunta

Estoy intentando escribir una aplicación de audio utilizando PortAudio, pero si cualquier otro programa de audio (por lo general Firefox) se están ejecutando en el momento en el que trato de ejecutar mi programa, me sale el siguiente error:

PaHost_OpenStream: could not open /dev/dsp for O_WRONLY
PaHost_OpenStream: ERROR - result = -10000
An error occured while using the portaudio stream
Error number: -10000
Error message: Host error.

Obviamente, esto hace que mi programa bastante inútil ya que no va a funcionar si otro programa está utilizando sonido. ¿Hay una manera de evitar esto o si simplemente no utilizar PortAudio?

¿Fue útil?

Solución

Usted tiene que elegir un dispositivo llamado "pulso" de PortAudio de trabajo con PulseAudio, que es el servidor de sonido utilizado para el intercambio de tarjeta de sonido en las grandes distribuciones de Linux hoy en día. El mensaje de error indica que se está tratando de utilizar el OSS / dev / dsp interfaz, que no es compatible con la tarjeta que comparte en absoluto.

Se puede usar un código como éste para la inclusión de los dispositivos:

for (int i = 0, end = Pa_GetDeviceCount(); i != end; ++i) {
    PaDeviceInfo const* info = Pa_GetDeviceInfo(i);
    if (!info) continue;
    printf("%d: %s\n", i, info->name);
}

entonces la oferta el número correcto para openStream dentro parámetro corriente.

Tenga en cuenta que se necesita PortAudio v19. El V18 mayores sólo se admite OSS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top