MacOS系统下Python的playsound库调用音频时报错OSError:无法加载音频文件
问题原因
- 路径不匹配:从运行日志可以看到你的脚本实际存放路径为
/Volumes/sDesktop 1/learnPython/2020simulator/,但你代码中写的音频路径前缀为/Volumes/sDesktop/,二者前缀不一致,大概率是挂载卷重命名、重复挂载导致盘符新增了1后缀,系统无法找到对应路径下的音频文件。 - playsound兼容性缺陷:playsound 1.2.2及以上版本在MacOS系统上对
block=False参数的支持存在原生bug,即使路径正确也大概率会抛出加载失败报错。
解决步骤
- 先修正音频路径,可先运行以下代码确认当前脚本所在目录的正确前缀:
import os # 输出当前脚本所在的绝对路径 print(os.path.dirname(os.path.abspath(__file__)))
将输出的路径前缀替换原代码中/Volumes/sDesktop/部分即可,修正后的音频路径应为/Volumes/sDesktop 1/learnPython/2020simulator/Elegy_AsherFulero.mp3。
2. 路径修正后如果仍报错,可选择以下任意一种方案处理:
- 方案一:删除
block=False参数,使用默认的阻塞播放模式,可兼容playsound的原生实现:
from playsound import playsound playsound('/Volumes/sDesktop 1/learnPython/2020simulator/Elegy_AsherFulero.mp3')
- 方案二:如果必须使用非阻塞播放,直接调用MacOS原生的
afplay命令实现,无需额外依赖,稳定性更高:
import subprocess subprocess.Popen(['afplay', '/Volumes/sDesktop 1/learnPython/2020simulator/Elegy_AsherFulero.mp3'])
内容的提问来源于stack exchange,提问作者StressedPostgrad
相关产品推荐
相关产品推荐

