#---------------------------------------------------------------------------------------------
import tkinter as tk
from tkinter import *
import tkinter.filedialog
import pygame
import os
from threading import *
import threading
import time
from PIL import ImageTk, Image
#----------------------一、音乐文本读取--------------------
filePath = 'G:\\3.Google网页下载文件存放处\音乐\歌曲\周杰伦\\'
SongName=os.listdir(filePath)
SongPath =[filePath+i for i in SongName]
Number=0
volume=0.3
Switch=True
#----------------------二、功能区--------------------------------------
def fun1( ):
global Number
Number=Number+1
if Number>len(SongPath)-1:
Number=0
pygame.mixer.music.load(SongPath[Number])
pygame.mixer.music.play(-1)
entry_var.set(SongName[Number])
pass
def fun2():
global Number
global Switch
pygame.mixer.music.set_volume(volume)
if Switch==True:
pygame.mixer.music.unpause()
Switch=False
else:
pygame.mixer.music.pause()
Switch=True
pass
def fun3():
global Number
Number=Number-1
if Number<0:
Number=len(SongPath)-1
pygame.mixer.music.load(SongPath[Number])
pygame.mixer.music.play(-1)
entry_var.set(SongName[Number])
pass
def fun4():
global volume
volume+=0.1
if volume>1:
volume=1
pygame.mixer.music.set_volume(volume)
def fun5():
global volume
volume-=0.1
if volume<0:
volume=0
pygame.mixer.music.set_volume(volume)
#------------------计时器的制作--------------------------
def os(time) :
if time<10:
return "0"+str(time)
else:
return str(time)
def clock(seconds):
if seconds>=60:
minutes=seconds//60
seconds=seconds-minutes*60
return os(minutes)+":"+os(seconds)
else:
return "00:"+os(seconds)
#--------------------------------------------------------
class Current_time(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
pass
def clock(seconds):
if seconds>=60:
minutes=seconds//60
seconds=seconds-minutes*60
return os(minutes)+":"+os(seconds)
else:
return "00:"+os(seconds)
def run(self):
while 1:
playtime=pygame.mixer.music.get_pos()
seconds=int(playtime)//1000
current_time=clock(seconds)
entry_var1.set(current_time)
time.sleep(1)
#-----------------------三、面板区-----------------------------------------
#---------------一、窗口---------------------
root=tk.Tk()
root.title('音乐播放器')
root["height"]=150
root["width"]=300
root.resizable(0,0)
#1.文本框
lal=tk.Label(root,text="欢迎使用音乐播放器") #在root中创建标签
lal.place(x=50,y=15,width=200,height=50) #向root放置标签
#---------------二、显示正在播放的歌曲--------------------------
entry_var = tk.StringVar()
entry_var.set('欢迎使用')
en1=tk.Entry(root,textvariable=entry_var,justify=CENTER,state=NORMAL)
en1.place(x=50,y=70,width=200,height=15)
entry_var1 = tk.StringVar()
entry_var1.set('00:00')
en2=tk.Entry(root,textvariable=entry_var1,justify=CENTER)
en2.place(x=10,y=5,width=80,height=15)
#---------------三、音量调节----------------------------
b3=tk.Button(root,text="+",command=fun4)
b3.place(x=50,y=90)
b3=tk.Button(root,text="-",command=fun5)
b3.place(x=65,y=90)
#---------------四、切换歌曲|暂停播放----------------------------------
#1.上一曲按钮
b1=tk.Button(root,text="上一曲",command=fun1)
b1.place(x=80,y=90)
#2.播放按钮
b1=tk.Button(root,text="播放|暂停",command=fun2) #定义:按钮名称+按钮功能
b1.place(x=130,y=90) #定义:按钮大小+按钮位置
#3.下一曲按钮
b3=tk.Button(root,text="下一曲",command=fun3)
b3.place(x=195,y=90)
pygame.mixer.init()
t=Current_time()
t.start()
root.mainloop()
用python制作简易的音乐播放器(GUI界面制作+OS文件操作+面向对象+多线程)
最新推荐文章于 2024-06-11 22:38:16 发布