import pygame
import time
pygame.mixer.init()
pygame.mixer.music.load('/home/bahara.mp3')
time.sleep(2)
pygame.mixer.music.play()
从终端编译此代码时,不会抛出任何错误,但我无法听到任何音乐。但是当逐行执行时,代码工作正常。
你能建议一种调试方法吗?我使用的是Ubuntu 14.04和python 2.7.6
答案 0 :(得分:0)
Pygame需要一个尚未初始化的活动显示。我建议您尝试安装并使用mpg123
命令行工具。
安装:
$ sudo apt-get install mpg123
程序:
import os, time
os.system('mpg123 /home/bahara.mp3')
答案 1 :(得分:0)
我将发布我之前的评论作为答案,因为如果你想保留pygame控制音乐播放器的能力,我认为值得尝试。
我怀疑你没有声音,因为pygame在脚本结束时退出,而当你在python终端会话中逐行运行时,pygame保持活动状态。一种可以测试的方法是在开始播放文件后添加循环,例如通过检查get_busy状态:
import pygame
import time
pygame.mixer.init()
pygame.mixer.music.load('/home/bahara.mp3')
time.sleep(2)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
print "Song is playing"
time.sleep(1)
print "Song has finished"
假设这有效,你仍然可以使用pygame的控件来播放,暂停等。
另外,请注意,正如Malik和我都指出的那样,MP3支持在pygame中非常有限,因此您可能想尝试将文件转换为ogg。