使用pygame播放音乐时无法加载音频且程序运行后立刻闪退无输出
问题原因
mixer.music.play() 是异步非阻塞方法,调用后不会卡住主线程,你原来的代码执行到最后一行就直接结束进程,音乐还没来得及播放,命令提示符窗口也会跟着直接关闭,你也就看不到任何报错或输出信息。
修复方案
在播放逻辑后添加等待逻辑,避免主线程提前退出,修改后的代码如下:
from pygame import mixer import time mixer.init() mixer.music.load("elvis.mp3") mixer.music.play() # 循环检测音乐播放状态,直到播放结束再退出程序 while mixer.music.get_busy(): time.sleep(1)
额外注意事项
- 如果需要保留窗口方便排查问题,可以在代码最后再加一行
input("按任意键退出"),就算播放结束也不会立刻关窗口,能看到所有报错信息 - 要保证
elvis.mp3文件和你运行的py脚本放在同一文件夹下,否则会因为找不到音频文件报错,之前看不到报错就是窗口关闭太快导致的
内容的提问来源于stack exchange,提问作者YASH Vala
相关产品推荐
相关产品推荐

