如何修复Python中Playsound模块相关的“Error 263 for command: close mp3文件”错误
报错原因
这是Windows平台下playsound模块的已知兼容缺陷,模块调用系统MCI接口播放文件后没有正常释放文件句柄,后续再次读写、关闭同一个voice.mp3时就会触发该报错。
修复方案
- 方案1:使用唯一临时文件名(最稳妥)
每次生成不重复的临时音频文件,播放完成后自动删除,完全规避文件占用冲突,修改后代码如下:
import uuid import os import playsound from gtts import gTTS def speak(text): tts = gTTS(text=text, tld="ca", lang="en") # 生成唯一文件名避免冲突 filename = f"voice_{uuid.uuid4().hex}.mp3" tts.save(filename) playsound.playsound(filename) # 播放完成后删除临时文件 os.remove(filename)
- 方案2:降级playsound到兼容版本
最新版playsound对Windows MCI接口的适配存在问题,降级到1.2.2版本即可解决大部分同类报错:pip install playsound==1.2.2 - 方案3:替换为其他音频播放库
如果降级后仍有问题,可以换用兼容性更强的pygame库实现音频播放:
import os import time from gtts import gTTS from pygame import mixer def speak(text): tts = gTTS(text=text, tld="ca", lang="en") filename = "voice.mp3" tts.save(filename) mixer.init() mixer.music.load(filename) mixer.music.play() # 等待音频播放完成 while mixer.music.get_busy(): time.sleep(0.1) mixer.quit() os.remove(filename)
内容的提问来源于stack exchange,提问作者ImpurestFlyer
相关产品推荐
相关产品推荐

