不能让声音与pygame一起玩

时间:2013-05-17 16:26:34

标签: python timer tkinter pygame

我正在研究一个简单的计时器程序。当时间到了,我会看到一个警告窗口,我也想用它播放一首歌。从我收集到的使用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()

1 个答案:

答案 0 :(得分: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包。