使用playsound播放第二个音频时Python报MCI错误263的问题
问题原因及解决办法
这个错误是Windows平台下playsound库的常见问题,核心原因是第一个音频播放完毕后,MCI(媒体控制接口)设备没有被正确释放或关闭,导致第二个音频请求无法正常打开音频设备。
具体解决办法:
- 添加延迟等待:在两个playsound调用之间加一点延迟,给设备足够时间释放,示例代码:
from playsound import playsound import time playsound('insert.mp3') time.sleep(0.5) # 延迟时长可根据实际情况调整 playsound('beep.mp3')
- 用多线程隔离播放:把每个音频播放放到单独线程里,避免设备占用冲突,示例代码:
from playsound import playsound import threading threading.Thread(target=playsound, args=('insert.mp3',)).start() threading.Thread(target=playsound, args=('beep.mp3',)).start()
- 更换更稳定的音频库:如果playsound的问题反复出现,可替换为
pygame或simpleaudio这类库,以pygame为例:
import pygame pygame.mixer.init() pygame.mixer.music.load('insert.mp3') pygame.mixer.music.play() while pygame.mixer.music.get_busy(): continue pygame.mixer.music.load('beep.mp3') pygame.mixer.music.play()
- 修改playsound源码(可选):找到Python安装目录下
site-packages里的playsound.py,在_playsoundWin函数中给关闭设备的命令添加异常捕获,避免影响后续调用:
try: winCommand(u'close {}'.format(sound)) except PlaysoundException: pass
内容的提问来源于stack exchange,提问作者JasoPC
相关产品推荐
相关产品推荐

