Quiero reproducir algunos datos de audio usando ALSA a un dispositivo PCM. Como ejemplo, descargué this sample example y lo ejecuté en mi PC. Funciona bien cuando ningún otro proceso está utilizando actualmente la tarjeta de sonido. Pero no se juega nada cuando algún otro proceso utiliza el dispositivo de audio (es decir, reproductor multimedia tocando canciones) y espectáculos siguiente error -ALSA: abra un dispositivo PCM en modo compartido
Playback open error: Device or resource busy
Si examina el código fuente de este ejemplo podría decir que la función snd_pcm_open en la línea 882 está arrojando este error. Encuentra el dispositivo ocupado ya que otro proceso lo está usando actualmente.
También intenté el camino inverso - primero comencé el ejemplo y luego intenté comenzar una canción. En este caso, el reproductor de medios permanece inactivo, mostrando "inactivo" justo al lado de la barra de progreso (estoy usando Banshee). Supongo que snd_pcm_open
gana el derecho exclusivo del recurso del dispositivo para que ningún otro proceso pueda usarlo.
Pero no quiero eso. Quiero reproducir el sonido en un dispositivo de audio sin requerir derechos exclusivos para que otros procesos en la PC puedan compartir el mismo dispositivo para generar datos de audio.
¿Cómo puedo hacer eso? ¿Cómo puedo abrir un dispositivo PCM para que otros procesos también puedan compartir el mismo dispositivo?
No, no tengo habilitada la capa de compatibilidad de OSS, y realmente no deseo confiar en ella. También revisé/proc/sonido/dispositivos y vi la lista de dispositivos allí (sin embargo, puedo buscar esa lista mediante programación). También puedo acceder a diferentes dispositivos de reproducción. Pero ninguno de estos son realmente un problema aquí. Quería saber si puedo abrir un único dispositivo en modo compartido. –