在tkinter中启动音乐播放器应用,尝试在其上进行构建,但遇到问题[关闭]

问题描述 投票:-2回答:1

音乐播放器应用程序,到目前为止还没有很多,但是将音乐播放器代码编写到数据库中,然后将其添加到数据库中。按钮似乎没有响应,但是所有显示在画布上的按钮都不确定是否出现缩进错误。如果运行代码,请确保已保存一个mp3文件以打开。在第73行收到“未定义暂停”错误。比您有任何帮助。

from tkinter import *
import os
from tkinter import *
from tkinter import filedialog
from pygame import mixer
import tkinter.messagebox
import tkinter as tk

def delete2():
  screen3.destroy()

def delete3():
  screen4.destroy()

def delete4():
  screen5.destroy()

def login_sucess():

    root = Tk()

    # Create the menubar
    menubar = Menu(root)
    root.config(menu=menubar)

    # Create the submenu

    subMenu = Menu(menubar, tearoff=0)
    subMenu1 = Menu(menubar, tearoff=0)

    playlist=[]

    def browse_file():
        global filename_path
        filename_path = filedialog.askopenfilename()
        Add_To_Playlist(filename_path)

    def Add_To_Playlist(filename):
        filename= os.path.basename(filename)
        index=0
        playlistbox.insert(index,filename)
        playlist.insert(index,filename_path)
        playlistbox.pack()
        index +=1



    def about_us():
        tkinter.messagebox.showinfo('About us','BEATBOX is small program written in python using tkinter')




    menubar.add_cascade(label="File", menu=subMenu)
    subMenu.add_command(label="Open", command=browse_file)
    subMenu.add_command(label="Exit", command=root.destroy)

    menubar.add_cascade(label="Help", menu=subMenu1)
    subMenu1.add_command(label="MusicBox",command=about_us)
    subMenu1.add_command(label="About Us",command=about_us)

    Leftframe =Frame(root)
    Leftframe.pack(side = LEFT,padx=5,pady=5)
    mixer.init()#initialising the mixer

    root.title("BEATBOX")

    text =Label(root,text ='Lets make some noise')
    text.pack(pady=10)

    def play_music():

      global paused

      if paused:


        mixer.music.unpause()
        statubar['text'] = "Music Resumed"
        paused = FALSE
      else:
          try:

          #stop_music()
                #time.sleep(1)
            selected_song = playlistbox.curselection()
            selected_song = int(selected_song[0])
            play_it = playlist[selected_song]
            mixer.music.load(play_it)
            mixer.music.play()
            statubar['text'] = "Playing music" + ' - ' + os.path.basename(play_it)
                #show_details(play_it)



          except: tkinter.messagebox.showerror('File not found','Music player could not find the file please check again')






    def stop_music():
        mixer.music.stop()
        statubar['text']="Music stopped"

    def SetVolume(val):
        Volume =int(val)/100
        mixer.music.set_volume(Volume)

    def Rewind_music():
        #mixer.music.rewind()
        play_music()

    paused = FALSE


    def pause_music():
        global paused
        paused = TRUE
        mixer.music.pause()
        statubar['text'] = "Music Paused"

    def unPause_music():
        mixer.music.unpause()
        statubar['text']="Playing music"+ ' '+ os.path.basename(filename)

    def mute_music():
        mixer.music.unpause()
    def change():
        abVar = ab
       # ff_command ="ffmpeg -y -i "+str(filename) +" -vn -f -ab mp3 audio.mp3"
        print(int(ab))

    playlistbox=Listbox(Leftframe)
    playlistbox.pack()

    middleframe = Frame(root,relief=RAISED,borderwidth=10)
    middleframe.pack(padx=10,pady=10)
    bottonframe = Frame(root,borderwidth=0)
    bottonframe.pack(side = BOTTOM,fill=X,padx=5,pady=5)
    #playPhoto = PhotoImage(file ='play.png')
    #playBtn = Button(rootmiddleframeimage=playPhoto,command=play_music)
    playBtn = Button(middleframe ,text= "Play",command=play_music)
    playBtn.pack(side=LEFT,padx=10,pady=10)

    #stopPhoto = PhotoImage(file ='stop.png')
    #playBtn = Button(root,image=playPhoto,command=play_music)
    stopBtn = Button(middleframe,text= "Stop",command=stop_music)

    stopBtn.pack(side=LEFT,padx=10,pady=10)

    RewindBtn = Button(middleframe,text= "Rewind",command=Rewind_music)
    RewindBtn.pack(side=LEFT,padx=10,pady=10)

     # Audio bitrate
##    audio = tk.Label(bottonframe,text=u"Audio options")
##    audio.pack()
##    BitrateLabel = Label(bottonframe,text=u"Audio bitrate")
##    BitrateLabel.grid(row=2,column=0,sticky='E',padx=5,ipadx=5,pady=2)
##    abVar = tk.StringVar()
##    abVar.set(0)
##    ab =tk.Entry(audio,textvariable = abVar)
##    ab.grid(row=2,column=1,sticky="W",pady=2)
##    BitrateLabel.pack()
##    bitRateBtn = Button(bottonframe,text="Change Bitrate",command=change)
##    bitRateBtn.pack()



    pauseBtn = Button(middleframe,text= "Pause",command=pause_music)
    pauseBtn.pack(side=LEFT,padx=10,pady=10)

    addBtn = Button(Leftframe,text= "Add +",command=browse_file)
    addBtn.pack(side=LEFT,padx=10,pady=10)

    delBtn = Button(Leftframe,text= "Del -",command=pause_music)
    delBtn.pack(side=LEFT,padx=10,pady=10)



    #pauseBtn = Button(middleframe,text= "UnPause",command=unPause_music)
    #pauseBtn.pack(side=LEFT,padx=10,pady=10)

    muteBtn = Button(root,text= "Mute")
    muteBtn.pack(side=LEFT,padx=10,pady=0)




    scale=Scale(root,from_=0,to=100,resolution=4,label="Volume",orient=HORIZONTAL,command=SetVolume)
    mixer.music.set_volume(0.2)
    scale.set(20)

    scale.pack(pady=15)

    statubar = Label(bottonframe,text="Welcome to BEATBOX",relief=SUNKEN,anchor=W)
    statubar.pack(side=BOTTOM,fill=X)

    root.mainloop()



def password_not_recognised():
  global screen4
  screen4 = Toplevel(screen)
  screen4.title("Success")
  screen4.geometry("150x100")
  Label(screen4, text = "Password Error").pack()
  Button(screen4, text = "OK", command =delete3).pack()

def user_not_found():
  global screen5
  screen5 = Toplevel(screen)
  screen5.title("Success")
  screen5.geometry("150x100")
  Label(screen5, text = "User Not Found").pack()
  Button(screen5, text = "OK", command =delete4).pack()


def register_user():
  print("working")

  username_info = username.get()
  password_info = password.get()

  file=open(username_info, "w")
  file.write(username_info+"\n")
  file.write(password_info)
  file.close()

  username_entry.delete(0, END)
  password_entry.delete(0, END)

  Label(screen1, text = "Registration Sucess", fg = "green" ,font = ("calibri", 11)).pack()

def login_verify():

  username1 = username_verify.get()
  password1 = password_verify.get()
  username_entry1.delete(0, END)
  password_entry1.delete(0, END)

  list_of_files = os.listdir()
  if username1 in list_of_files:
    file1 = open(username1, "r")
    verify = file1.read().splitlines()
    if password1 in verify:
        login_sucess()
    else:
        password_not_recognised()

  else:
        user_not_found()



def register():
  global screen1
  screen1 = Toplevel(screen)
  screen1.title("Register")
  screen1.geometry("300x250")

  global username
  global password
  global username_entry
  global password_entry
  username = StringVar()
  password = StringVar()

  Label(screen1, text = "Please enter details below").pack()
  Label(screen1, text = "").pack()
  Label(screen1, text = "Username * ").pack()

  username_entry = Entry(screen1, textvariable = username)
  username_entry.pack()
  Label(screen1, text = "Password * ").pack()
  password_entry =  Entry(screen1, textvariable = password)
  password_entry.pack()
  Label(screen1, text = "").pack()
  Button(screen1, text = "Register", width = 10, height = 1, command = register_user).pack()

def login():
  global screen2
  screen2 = Toplevel(screen)
  screen2.title("Login")
  screen2.geometry("300x250")
  Label(screen2, text = "Please enter details below to login").pack()
  Label(screen2, text = "").pack()

  global username_verify
  global password_verify

  username_verify = StringVar()
  password_verify = StringVar()

  global username_entry1
  global password_entry1

  Label(screen2, text = "Username * ").pack()
  username_entry1 = Entry(screen2, textvariable = username_verify)
  username_entry1.pack()
  Label(screen2, text = "").pack()
  Label(screen2, text = "Password * ").pack()
  password_entry1 = Entry(screen2, textvariable = password_verify)
  password_entry1.pack()
  Label(screen2, text = "").pack()
  Button(screen2, text = "Login", width = 10, height = 1, command = login_verify).pack()


def main_screen():
  global screen
  screen = Tk()
  screen.geometry("300x250")
  screen.title("Notes 1.0")
  Label(text = "Notes 1.0", bg = "grey", width = "300", height = "2", font = ("Calibri", 13)).pack()
  Label(text = "").pack()
  Button(text = "Login", height = "2", width = "30", command = login).pack()
  Label(text = "").pack()
  Button(text = "Register",height = "2", width = "30", command = register).pack()

  screen.mainloop()

main_screen()

python tkinter pygame audio-player
1个回答
0
投票

如果有错误"paused not defined",则将其定义为默认值作为全局变量

paused = False 

并且它解决了这个问题


EDIT:要创建global变量,您必须在al函数之外定义它-即。

# ... code ...
import tkinter as tk

paused = False

def delete2():
# ... code ...
© www.soinside.com 2019 - 2024. All rights reserved.