从终端编译时无法使用Python播放歌曲

时间:2015-02-16 22:11:28

标签: python python-2.7 pygame

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

2 个答案:

答案 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。