使用Python playsound模块播放mp3时报错Error 305的问题求助
报错原因
这个错误是playsound 1.2.2版本在Windows系统下的已知兼容性Bug:模块底层调用Windows MCI接口拼接播放命令时,若文件路径被自动包裹双引号后,后续参数直接跟在引号末尾,会被MCI判定为「引号后存在多余字符」,触发305错误;因音频未成功打开,后续执行close命令时就会触发263错误。
解决方案
方案1:降级playsound到无该Bug的1.2.1版本
执行安装命令:pip install playsound==1.2.1
安装完成后直接运行原有代码即可正常播放。方案2:手动修复现有playsound源码
打开报错日志中提示的playsound.py文件路径:C:\Users\arnavb\AppData\Local\Programs\Python\Python39\lib\site-packages\playsound.py,找到_playsoundWin函数下的如下代码:
winCommand(u'open {}'.format(sound))
修改为:
winCommand(u'open "{}" alias audio_tmp'.format(sound))
保存后重新运行代码即可。
- 方案3:更换其他音频播放库
如果不想修改源码也不想降级,可以使用pygame等成熟库替代实现播放功能:
- 先安装pygame:
pip install pygame - 替换原有代码为:
import pygame pygame.mixer.init() pygame.mixer.music.load('C:\\Users\\arnavb\\Desktop\\Python\\Lecture1\\song.mp3') pygame.mixer.music.play() # 保持程序运行直到音频播放完成 while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)
注:操作前可先确认目标mp3文件未损坏、路径不存在无法读取的权限问题
内容的提问来源于stack exchange,提问作者Snake
相关产品推荐
相关产品推荐

