我是pygame的新手,而不是一个非常有经验的python程序员,所以希望你能帮忙。我正在尝试使用pygame和tkinter在python上创建自己的音频播放器。所以有我的代码:
from tkinter import *
from tkinter.filedialog import *
import pygame
import sys
from pygame import*
mixer.init()
pygame.mixer.pre_init(44100, -16, 2, 2048)
def play(event):
mixer.music.load("Chillingmusic.wav")
mixer.music.play()
while mixer.music.get_busy():
time.Clock().tick(10)
def pause(event):
pygame.mixer.music.pause()
song.pause()
root=Tk()
txt=Text(root)
m=Menu(root)
root.config(menu=m)
fm=Menu(m)
m.add_cascade(label="File",menu=fm)
fm.add_command(label="Open",command_=open)
but=Button(text=">",bg="lightgreen")
but.grid(row=0,column=0)
but.bind("<Button-1>",play)
but1=Button(text="p",bg="lightblue")
but1.grid(row=0,column=1)
but1.bind("<Button-1>",pause)
root.mainloop()
pygame.quit()
问题是当我开始播放音乐时,使用播放功能播放音频,但在该界面停止响应后,我不能使用我的暂停功能。 我在Windows 10(64位)上使用python 3.6和pygame 1.9.3。
答案 0 :(得分:2)
在歌曲结束之前,您的play
功能将无法完成。这意味着您的程序必须等待它完成,并且在此期间无法执行任何其他操作,使其他所有内容都无法响应。不要使用while
循环。
def play(event):
mixer.music.load("Chillingmusic.wav")
mixer.music.play()
mixer
使用的是另一个主线程以外的线程,因此音乐会播放,您自己的代码可以同时执行。