为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 tkinter 和 pygame 在 Python 中让单个 Button 播放音乐

如何使用 tkinter 和 pygame 在 Python 中让单个 Button 播放音乐

holdtom 2023-05-23 14:30:23
我只能在按下按钮时让程序播放音乐。我试图暂停或停止音乐的一切都以失败告终。我觉得我应该使用 if 语句来暂停音乐(如果当前正在播放)或取消暂停(如果不是),但我需要了解正确的编写方法。这是正确的方法吗?我真的希望能够通过一个按钮开始、暂停和取消暂停音乐,但我正在努力弄清楚如何编写代码。这是我播放音乐的代码。 def Play_music():     pygame.mixer.music.load('tavernsound.mp3')     pygame.mixer.music.play()这是按钮的代码:btn11=Button(labelframe, text='Ambiance', width=14, bg='red', fg='black', command=Play_music)btn11.pack(side=LEFT)
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

使用带有 if 条件


示例的检查按钮文本:


from tkinter import Tk, Button

from pygame import mixer


root = Tk()

root.title("Play Music")

root.geometry('350x200')


mixer.init()

mixer.music.load("sound.mp3")


def play_music():

    if button["text"] == "Play":

        button["text"] = "Pause"

        button["bg"] = "red"

        mixer.music.play()

    else:

        button["text"] = "Play"

        button["bg"] = "green"

        mixer.music.pause()


button = Button(root, text='Play', width=14, bg='green', fg='black', command=play_music)

button.pack()


root.mainloop()


查看完整回答
反对 回复 2023-05-23
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

这是一个例子。


from tkinter import *


root = Tk()


def doSomething(task):

    global var, button

    if task == 0:

        var.set("Started Playing")

        button.configure(text = "Pause")

        button.configure(command = lambda task = 1: doSomething(task))

        #play

    elif task == 1:

        var.set("Paused")

        button.configure(text = "Resume")

        button.configure(command = lambda task = 0: doSomething(task))

        #pause


button = Button(root, text = "Play", command = lambda task = 0: doSomething(task))

button.pack()

var = StringVar()

label = Label(root, textvariable = var)

label.pack()


root.mainloop()

这里同一个按钮用于播放、暂停和恢复。我使用了lambda具有语法的函数lambda arguments: expression。task每次单击按钮时,值都会更改。


查看完整回答
反对 回复 2023-05-23
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

我使用您的代码创建了这个示例。

from tkinter import *

import pygame


root = Tk()

root.title("MSC")


pygame.init()


mxstate = 0 # music play state


pygame.mixer.music.load('tavernsound.mp3')


def Play_music():

     global mxstate

     if mxstate == 0:  # music not started

         pygame.mixer.music.play()

         btn11.configure(text = "Pause")

         mxstate =  1

         return

        

     if mxstate == 1:  # music playing

         pygame.mixer.music.pause()

         btn11.configure(text = "Resume")

     else:  # music paused

         pygame.mixer.music.unpause()

         btn11.configure(text = "Pause")

     mxstate = 3-mxstate  # swap pause state

     

btn11=Button(root, text='Ambiance', width=14, bg='red', fg='black', command=Play_music)

btn11.pack(side=LEFT)


root.mainloop()


查看完整回答
反对 回复 2023-05-23
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信