Tôi đang làm việc trên bộ hẹn giờ ở trăn mà âm thanh kêu vang khi thời gian chờ kết thúc. Tôi sử dụng mã sau:Cách phát âm thanh bằng Python KHÔNG làm gián đoạn âm nhạc/các âm thanh khác phát khi đang chơi
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()
Nó hoạt động khá tốt, trừ khi bất kỳ thiết bị nào khác đã được xuất âm thanh.
Làm thế nào tôi có thể làm cơ bản giống nhau (dưới Linux) mà không có điều kiện tiên quyết mà không có âm thanh nào đang được phát?
Nếu bạn nghĩ rằng quá trình này sẽ đòi hỏi một API để đảm bảo phần mềm trộn, xin đề nghị một phương pháp :)
Thx cho sự ủng hộ :)
Không có hệ thống âm thanh hiện đại nào chỉ có thể xử lý một luồng tại một thời điểm. –