0

我正在开发一个简单的计时器程序。时间到了,我会出现一个警告窗口,我也想用它播放一首歌。根据我使用 pygame.mixer 收集到的信息,它应该可以工作,但我的音频没有播放。这是我的代码:

from Tkinter import *
import tkMessageBox
import pygame

pygame.init()
pygame.mixer.init()
Sound = pygame.mixer.Sound("alarm.mp3")


def messageWindow():
        win = Toplevel()
        b = Button(win, text='Times Up!',
                bg="yellow", fg="green",
                activebackground="purple", activeforeground="white",
                command=quit)
        b.pack(ipadx=root.winfo_screenwidth()/2,
                ipady=root.winfo_screenheight()/2)

        root.mainloop()

def alert():
        Sound.play()
        messageWindow()
        quit()

def start():
        root.after(scale.get() * 1000, alert)

root = Tk()

minutes = Label(root, text ="Minutes:  ")
minutes.grid(row=0, column=0)

scale = Scale(root, from_=1, to=60, orient=HORIZONTAL, length=450)
scale.grid(row=0, column=1)

button = Button(root,text= "Start Timing", command=start)
button.grid(row=1, column=1, pady=5, sticky=E)

root.mainloop()
4

1 回答 1

2

据我所知,pygame 没有与 .mp3 文件的内置兼容性,但还有许多其他方式可以播放音频。

特别是对于 mp3,有 mp3play 包,您可以像这样使用它:

import mp3play
filename = "C:/PATH/TO/FILE.mp3"
sound = mp3play.load(filename)
sound.play()

(这个模块可以从http://pypi.python.org/pypi/mp3play/0.1.15#downloads下载)

如果你是在 Windows 上编写程序,你也可以使用 winsound 模块,如下:

import winsound
winsound.PlaySound("C:/PATH/TO/FILE.mp3")

其他选项是 Snack Sound Toolkit ( http://www.speech.kth.se/snack/ ) 和 PyMedia 包。

于 2013-05-17T20:43:53.897 回答