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

Not able to play song using Python when compiled from terminal

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

Pygame 需要您尚未初始化的活动显示器。我建议您尝试安装和使用 mpg123 命令行工具。

安装:

$ sudo apt-get install mpg123

节目:

import os, time

os.system('mpg123 /home/bahara.mp3')

我将 post 我之前的评论作为答案,因为我认为如果您想保留 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 和我都指出的那样,pygame 对 MP3 的支持非常有限,因此您可能想尝试将文件转换为 ogg。