Python程序执行成功无报错但无法播放音频,多库尝试无效求助
解决Python音频播放成功但无声音的问题
这种情况真的挺闹心的——代码明明执行成功了,电脑却一点声音都没有,我之前调试音频程序时也踩过不少类似的坑,给你整理几个排查方向和解决方案:
一、先排查最基础的系统层面问题
- 先确认电脑音量没开静音,或者音量没调到几乎听不到的程度(别笑,有时候真的是这个小疏忽!)
- 检查音频输出设备是否正确:比如是不是插了耳机但系统默认输出还是扬声器,或者切换到了其他没用的音频设备
- 用系统自带的播放器测试一下这个
myfile.wav能不能正常播放,先排除是音频文件损坏或者系统硬件/驱动的问题
二、针对playsound库的针对性修复
你用的playsound有时候会有版本或路径兼容性问题,试试这些调整:
- Windows用户:换成绝对路径试试,比如
playsound('C:\\Users\\你的用户名\\Desktop\\myfile.wav'),相对路径偶尔会出现识别偏差;另外升级到最新版playsound:pip install --upgrade playsound - macOS用户:可能是Python没获得音频访问权限,去「系统设置」→「隐私与安全性」里,找到音频相关权限,把Python添加进去;或者安装兼容性更好的旧版本:
pip install playsound==1.2.2 - Linux用户:先安装依赖库
sudo apt-get install libasound2-dev,再重新安装playsound,很多时候是缺少底层音频驱动依赖导致的
三、换其他库的正确使用方式(如果playsound还是不行)
既然你试过几个库,给你调整下这些库的正确用法:
- simpleaudio:它只支持16位PCM格式的WAV文件,确保你的音频符合要求,代码要加等待播放完成的逻辑:
import simpleaudio as sa wave_obj = sa.WaveObject.from_wave_file("myfile.wav") play_obj = wave_obj.play() play_obj.wait_done() # 必须加这行,不然程序直接结束,音频没机会播放 - pydub:需要先安装ffmpeg(记得把ffmpeg路径加到系统环境变量),然后用下面的代码:
from pydub import AudioSegment from pydub.playback import play sound = AudioSegment.from_wav("myfile.wav") play(sound) - pygame:这个库做音频播放意外稳定,试试:
import pygame pygame.mixer.init() pygame.mixer.music.load("myfile.wav") pygame.mixer.music.play() while pygame.mixer.music.get_busy(): # 等待音频播放完毕 pygame.time.Clock().tick(10)
四、最后检查音频文件本身
- 确认
myfile.wav没有损坏,用其他播放器打开试试;如果损坏了,重新导出一个标准WAV文件 - 检查音频的采样率、比特率,有些库对非标准参数的音频支持不好,比如可以把音频转成44100Hz采样率的标准WAV再测试
内容的提问来源于stack exchange,提问作者Mohan Raj
相关产品推荐
相关产品推荐

