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

Python调用playsound播放MP3遇MCI错误、文件找不到报错求助

playsound库播放MP3报错原因及解决方案

报错根因

两个报错分别对应不同问题:

  • Error 277 初始化MCI失败:当前安装的playsound 1.3.0版本为Windows平台适配的代码存在原生缺陷,调用系统MCI媒体接口时的临时文件复制逻辑、路径解析逻辑存在bug,和文件存放位置无关。
  • FileNotFoundError 找不到文件:传入的绝对路径混用了\\和/两种路径分隔符,且路径包含My music这类带空格的目录名,旧版playsound不会自动对带空格路径做转义处理,直接传入会被系统识别为截断的无效路径。

可落地方案

方案1:安装稳定版playsound(最快修复)

playsound 1.2.2是经过验证的Windows平台稳定版本,不存在上述两个bug,直接替换版本即可:

  1. 执行命令卸载当前故障版本、安装稳定版:
pip uninstall playsound -y
pip install playsound==1.2.2
  1. 代码里统一路径写法,推荐用Python原始字符串传绝对路径,避免转义符和分隔符混用问题:
from playsound import playsound
# 脚本同目录下的相对路径调用
playsound('play.mp3')
# 带空格的绝对路径调用,字符串前加r标记为原始字符串
playsound(r'C:\Users\Usman\Music\My music\play.mp3')

方案2:手动修复现有版本代码

如果不想降级版本,可以直接修改本地安装的playsound源码修复问题:

  1. 打开报错日志里给出的playsound.py文件,路径为C:\Users\Usman\AppData\Local\Programs\Python\Python310\lib\site-packages\playsound.py
  2. 定位到_playsoundWin函数:
    • 删除copy(sound, tempPath)这行临时文件复制逻辑,这是触发MCI初始化错误的核心代码
    • 在拼接MCI open命令的代码段中,给音频路径参数前后包裹英文双引号,解决带空格路径识别失败问题

方案3:换用维护更活跃的音频库(长期推荐)

playsound库已经停止维护多年,后续Python版本、系统版本升级大概率还会出现兼容问题,长期使用推荐换用pygame库实现音频播放,兼容性更强:

  1. 安装pygame:
pip install pygame
  1. 播放代码示例:
from pygame import mixer
import time

# 初始化音频模块
mixer.init()
# 加载音频文件,支持带空格路径、中文路径
mixer.music.load(r'C:\Users\Usman\Music\My music\play.mp3')
# 开始播放
mixer.music.play()
# 阻塞等待音频播放完成,避免程序直接退出听不到声音
while mixer.music.get_busy():
    time.sleep(0.5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:39:59