Python2.7,pygame,结合暂停和取消暂停按钮。
我正在编写一个简单的音乐播放器 我在Stackoverflow中搜索了其他问题,但是,这些解决方案不适用于我的pygame构建 我的代码如下。我正在使用Tkinter进行gui构建Python2.7,pygame,结合暂停和取消暂停按钮。,python,pygame,Python,Pygame,我正在编写一个简单的音乐播放器 我在Stackoverflow中搜索了其他问题,但是,这些解决方案不适用于我的pygame构建 我的代码如下。我正在使用Tkinter进行gui构建 import sys from Tkinter import * import tkMessageBox import pygame myGui = Tk() def mClose(): mExit = tkMessageBox.askokcancel(title="Quit", message="ar
import sys
from Tkinter import *
import tkMessageBox
import pygame
myGui = Tk()
def mClose():
mExit = tkMessageBox.askokcancel(title="Quit", message="are you sure?")
if mExit ==True:
myGui.destroy()
return
def mPlay():
pygame.mixer.init()
pygame.mixer.music.load("/home/david/Downloads/test.mp3")
pygame.mixer.music.play()
def unPause():
pygame.mixer.music.unpause()
def mPause():
pygame.mixer.music.pause()
myGui.title("My Audio")
myGui.geometry("200x200+600+300")
mLabel = Label(myGui, text="My Audio").pack()
''' Button for Closing App'''
mButton = Button(myGui, text="Close", command = mClose).pack()
'''Play Button'''
mButton = Button(myGui, text="Play", command = mPlay).pack()
'''Pause Button'''
mButton = Button(myGui, text="Pause", command = mPause).pack()
'''UnPause Button'''
mButton = Button(myGui, text="UnPause", command = unPause).pack()
我已经厌倦了使用pygame.mixer.music.get_busy()将暂停和取消暂停结合起来。但是,如果暂停,布尔值仍会返回true表示处于活动状态
我使用了以下方法,但毫无用处:
def play_pause():
paused = not paused
if paused: pygame.mixer.music.unpause()
else: pygame.mixer.music.pause()
我得到以下信息:
File "/home/david/Documents/tkinter_testing.py", line 29, in play_pause
paused = not paused
UnboundLocalError: local variable 'paused' referenced before assignment.
任何想法或帮助。提前感谢您的帮助 您正在分配
暂停
一个值,但自己调用该值。我相信你要找的是
paused = False
或
你的逻辑不正确 假设我们从暂停混音器开始,因此:
paused is True
我们调用play_pause()将其切换,并且paused设置为not paused,因此现在:
paused is False
所以我们执行else语句,并暂停混音器,但它已经暂停了。解决方案是在设置(可能是最清晰的设置)后将切换移动到,或者反转从if-else块调用的逻辑。他使用not-paused切换变量,我假设该变量为布尔值。不真实就是虚假,不真实就是虚假True@Decency如果
暂停
最初分配了一个值,则他拥有的代码将是正确的。但是,代码第一次运行时暂停
没有值,这会抛出一个错误,即它在赋值之前被引用。真!我假设它是最初设置的,但没有注意到错误。在这种情况下,他有两个问题:这是我在阅读上述内容后将代码更改为的内容。如果我错了,你能根据我的格式写出你的例子吗。我认为在translation.def play_pause():paused=False if paused==True:pygame.mixer.music.unpause()其他:pygame.mixer.music.pause())
paused is False