You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python虚拟环境中用playsound、Play_mp3无法播放mp3如何解决?

问题根因

  • 该报错和Python虚拟环境无直接关联,核心是Windows平台下playsound 1.3.x版本的内置路径解析bug:该版本调用系统MCI多媒体接口播放音频时,路径参数的引号包裹、命令拼接逻辑存在缺陷,当文件路径属于项目/虚拟环境目录时会触发解析异常,桌面路径因为层级更短、无特殊目录属性反而能正常适配。
  • 你遇到的错误259、305均为MCI接口返回的命令格式错误,Play_mp3库底层同样封装了playsound的实现逻辑,所以也会触发相同报错。

修复方案

方案1:降级playsound到稳定版本(最简便)

卸载当前异常版本,安装无路径解析bug的1.2.2版本即可:

pip uninstall playsound -y
pip install playsound==1.2.2

安装完成后原有代码无需修改,即可正常播放任意合法路径的音频文件。

方案2:基于系统API原生实现(无需依赖第三方库)

直接调用Windows自带的winmm.dll接口实现播放,兼容性更强,不会出现路径解析问题:

import ctypes

def beep():
    winmm = ctypes.windll.winmm
    # 路径外层主动包裹双引号避免解析异常
    audio_path = r'"C:\Users\LYX\spider_demo\spider_demo\msn.mp3"'
    # 依次执行打开、播放、关闭资源命令
    winmm.mciSendStringW(f'open {audio_path} alias audio', None, 0, None)
    winmm.mciSendStringW('play audio wait', None, 0, None)
    winmm.mciSendStringW('close audio', None, 0, None)

方案3:临时规避方案

如果暂时不想调整依赖,可以将音频文件统一存放在无中文、层级较短的目录,或者将路径转换为Windows 8.3短路径格式后再传入playsound,也可避免解析错误。

内容的提问来源于stack exchange,提问作者Leo_Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:21:02