Estoy trabajando en un temporizador en python que suena un carillón cuando el tiempo de espera ha terminado. Yo uso el siguiente código:Cómo reproducir sonido en Python SIN interrumpir la música/otros sonidos de la reproducción
from wave import open as wave_open
from ossaudiodev import open as oss_open
def _play_chime():
"""
Play a sound file once.
"""
sound_file = wave_open('chime.wav','rb')
(nc,sw,fr,nf,comptype, compname) = sound_file.getparams()
dsp = oss_open('/dev/dsp','w')
try:
from ossaudiodev import AFMT_S16_NE
except ImportError:
if byteorder == "little":
AFMT_S16_NE = ossaudiodev.AFMT_S16_LE
else:
AFMT_S16_NE = ossaudiodev.AFMT_S16_BE
dsp.setparameters(AFMT_S16_NE, nc, fr)
data = sound_file.readframes(nf)
sound_file.close()
dsp.write(data)
dsp.close()
Funciona bastante bien, a menos que cualquier otro dispositivo ya está outputing sonido.
¿Cómo podría hacer básicamente lo mismo (en Linux) sin tener el requisito previo de que no se reproduce ningún sonido?
Si cree que el proceso requeriría una API para asegurar una mezcla de software, por favor sugerir un método :)
Thx por el apoyo :)
Ningún sistema de sonido moderno solo puede manejar una transmisión a la vez. –