資源簡介
python音樂播放器,絕對原創,可以顯示歌詞,但不能動態滾動
代碼片段和文件信息
from?tkinter?import?scrolledtext?
from?tkinter?import?filedialog
from?tkinter?import?*
import?os
import?os.path
import?pygame
import?tkinter.messagebox
wd=Tk()
wd.title(“我的音樂播放器“)
wd.geometry(“600x600“)
###################模塊開始###################################
#聲明變量部分#聲明變量部分#聲明變量部分#聲明變量部分#聲明變量部分
#歌曲名字??????變量
varlabelmusicname=StringVar()
varlabelmusicname.set(“歌曲名字“)
#音量大小數字??變量
varlabelVoice=StringVar()
varlabelVoice.set(“音量大小?0.0“)
#聲明變量部分#聲明變量部分#聲明變量部分#聲明變量部分#聲明變量部分
###################模塊結束###################################
#其他函數#其他函數#其他函數#其他函數#其他函數#其他函數#其他函數
#找到MP3?返回一個列表
def?find(pathx=[]s=‘.mp3‘):??
????if?not?os.path.isdir(path):
????????return??
????for?i?in?os.listdir(path):
????????file=os.path.join(pathi)
????????
????????if?os.path.isdir(file):
????????????find(files)
????????????
????????elif?str(os.path.splitext(file)[1])==s:
????????????x.append(file)
????return?x
#選擇一個文件夾返回這個文件夾的路徑
def?ChoiceMusicMulu():
????global?musicpath
????#獲取某個文件夾下的音樂文件返回一個列表
????musicpath?=?filedialog.askdirectory()
????#musicpath=filedialog.askopenfilenames()#選中多個文件
????global?musiclist
????musiclist=find(musicpath)
????for?i?in?range(len(musiclist)):
????????geming=os.path.split(musiclist[i])#拆分出文件名
????????listboxgedan.insert(0str(geming[1]))#在listbox里面追加
#返回列表框選中的下標s?(從0開始)
def?xiabiao(suijing):
????indexs?=?listboxgedan.curselection()
????#indexs返回當前選中項的索引?返回一個只有一個元素元組(x)
????index=int(indexs[0])#取出x
????xiabiao=index#獲取下標
????#get返回制定索引的項值
????varlabelmusicname.set(str(listboxgedan.get(xiabiao)))
????return?xiabiao
#上一首
def?upPlay():
????try:
????????newxiabiao=xiabiao(1)-1
????????pygame.mixer.init()
????????geming=os.path.split(musiclist[len(musiclist)-newxiabiao-1])????
????????pygame.mixer.music.load(musicpath+‘/‘+str(geming[1]))
????????pygame.mixer.music.play(1)
????????listboxgedan.select_clear(xiabiao(1))
????????listboxgedan.select_set(newxiabiao)
????????varlabelmusicname.set(str(listboxgedan.get(newxiabiao)))
????????#顯示歌詞
????????with?open((str(musicpath+‘/‘+str(geming[1]))[:-3])+‘txt‘‘r‘)as?f:
????????????gc=f.read()
????????scr.delete(1.0?END)#先清空舊歌詞
????????scr.insert(ENDgc)#再加入新歌詞
????except?baseException?as?e:
????????tkinter.messagebox.askquestion(title=“錯誤“message=“請重新點擊歌曲“)
????????#只要有異常就彈出
#下一首
def?downPlay():
????try:
????????newxiabiao=xiabiao(1)+1
????????pygame.mixer.init()
????????geming=os.path.split(musiclist[len(musiclist)-newxiabiao-1])????
????????pygame.mixer.music.load(musicpath+‘/‘+str(geming[1]))
????????pygame.mixer.music.play(1)
????????
????????listboxgedan.select_clear(xiabiao(1))
????????listboxgedan.select_set(newxiabiao)
????????varlabelmusicname.set(str(listboxgedan.get(newxiabiao)))
????????#顯示歌詞
????????with?open((str(musicpath+‘/‘+str(geming[1]))[:-3])+‘txt‘‘r‘)as?f:
????????????gc=f.read()
????????scr.delete(1.0?END)#先清空舊歌詞
????????scr.insert(ENDgc)#再加入新歌詞
????except?base
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8079??2018-11-22?07:45??不能動態顯示歌詞版\newMusic20181121.py
?????文件????????130??2018-11-25?16:27??不能動態顯示歌詞版\周港輝的音樂播放器使用說明.txt
?????文件????2426631??2017-11-14?08:32??不能動態顯示歌詞版\測試音樂\張瑤?-?遇見.mp3
?????文件????????374??2018-11-11?22:32??不能動態顯示歌詞版\測試音樂\張瑤?-?遇見.txt
?????文件???10517970??2018-07-19?13:13??不能動態顯示歌詞版\測試音樂\林宥嘉?-?全世界誰傾聽你.mp3
?????文件????????889??2018-11-11?22:32??不能動態顯示歌詞版\測試音樂\林宥嘉?-?全世界誰傾聽你.txt
?????文件????2217844??2018-03-16?19:38??不能動態顯示歌詞版\測試音樂\魏晨-瘋人愿.mp3
?????文件???????1111??2018-11-11?22:31??不能動態顯示歌詞版\測試音樂\魏晨-瘋人愿.txt
?????目錄??????????0??2019-01-06?15:52??不能動態顯示歌詞版\測試音樂
?????目錄??????????0??2019-01-06?15:52??不能動態顯示歌詞版
-----------?---------??----------?-----??----
?????????????15173028????????????????????10
評論
共有 條評論