音乐播放器应用程序,到目前为止还没有很多,但是将音乐播放器代码编写到数据库中,然后将其添加到数据库中。按钮似乎没有响应,但是所有显示在画布上的按钮都不确定是否出现缩进错误。如果运行代码,请确保已保存一个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()
如果有错误"paused not defined"
,则将其定义为默认值作为全局变量
paused = False
并且它解决了这个问题
EDIT:要创建global变量,您必须在al函数之外定义它-即。
# ... code ...
import tkinter as tk
paused = False
def delete2():
# ... code ...