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