• 大小: 12.26MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-07-02
  • 语言: Python
  • 标签: python  zgh  

资源简介

python音乐播放器,绝对原创,可以显示动态歌词,可以作为python作业

资源截图

代码片段和文件信息

import os
import time
from tkinter import scrolledtext 
from tkinter import filedialog
from tkinter import *
import os.path
import pygame
import tkinter.messagebox
wd=Tk()
wd.title(“我的音乐播放器“)
wd.geometry(“600x600“)
scr=scrolledtext.ScrolledText(wdwidth=40height=30)     
scr.place(x=300y=0)

def dongtaifeci(pathq):

    global dictLrc
    dictLrc = {}   #创建字典类型,全局变量
    #打印歌词,按照时间顺序,
    def lrcTime(lrc):
        dictLrc = lrc       #将形参赋值给实参
        listLrc = sorted(dictLrc)  #将字典的key值(时间)按大小排序
        timeLen = len(listLrc)#读取出列表数量,即打印时循环多少次
        timeFree = 0 #定义暂停时间
        count = 0 
        for i in listLrc:  #循环列表中的值,也就是字典中的key,
            timeFree = i -count  #得出暂停时间 
            time.sleep(timeFree) #暂停
            #print(dictLrc[i]) #打印出歌词
            #scr.delete(1.0 END)#先清空旧歌词
            scr.insert(ENDdictLrc[i]+‘\n‘)#再加入新歌词
            wd.update()
            count = i   #将上一个时间赋值给count,下一次循环继续使用

    #将时间转换为秒
    def revertTime(time):#传入的为字符串格式的
        time1 = time
        timeList = time1.split(“:“)#以:将时间拆分为分 和 秒
        return  round(float(timeList[0]) * 60 + float(timeList[1])2) #返回时间为秒,保留两位小数

    #从文件家中读取歌词
    def getLrc(path):
        rf = open(path“r“errors = “ignore“)
        getlrc = rf.read()
        rf.close()
        return getlrc  #返回为字符串

    #拆分应该转换成字典类型,以时间为key,歌词为value
    def splitStr(getstr):#接收的为字符串
        global  dictLrc   #创建字典类型
        getStr = getstr
        count = 0  #获取该单词需要输出几次
        for i in getStr:   #以][  ]  [  进行拆分
            if i ==“[“:
                count +=1 
        #注意替换顺序不能变,先替换“][“在替换单个的,否则可能出现两个**   
        getStr = getStr.replace(“][““*“)
        getStr = getStr.replace(“[““*“)
        getStr = getStr.replace(“]““*“)
        lineLrc = getStr.split(“*“)
        for i in range(1count+1):          #循环多次,得到多个key值
            #将时间转换成秒的格式
            LrcTimes = revertTime(lineLrc[i]) #调用转换时间的函数,此时key为秒
            dictLrc[LrcTimes] = lineLrc[-1]    #将列表最后一个歌词复制给字典key

    #打印歌词函数
    def printLrc(lrc):
        lrc1 = lrc
        for i in lrc1:   # i 为字符串歌词
            splitStr(i)  #调用拆分函数

    lrc = getLrc(pathq)#字符串类型
    listLrc = lrc.split(“\n“)#以换行符将字符串拆分成列表
    printLrc(listLrc)
    lrcTime(dictLrc)



###################模块开始###################################
#声明变量部分#声明变量部分#声明变量部分#声明变量部分#声明变量部分

#歌曲名字      变量
varlabelmusicname=StringVar()
varlabelmusicname.set(“歌曲名字“)

#音量大小数字  变量
varlabelVoice=StringVar()
varlabelVoice.set(“音量大小 0.0“)

#声明变量部分#声明变量部分#声明变量部分#声明变量部分#声明变量部分
###################模块结束###################################

#其他函数#其他函数#其他函数#其他函数#其他函数#其他函数#其他函数


#找到MP3 返回一个列表
def find(pathx=[]s=‘.mp3‘):
    wd.update()
    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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11102  2018-11-22 22:31  歌词滚动\newMusicPlay.py

     文件       1630  2018-11-22 22:05  歌词滚动\测试歌曲\Five Hundred Miles.lrc

     文件    8285730  2018-11-21 22:05  歌词滚动\测试歌曲\Five Hundred Miles.mp3

     文件        664  2018-11-22 21:29  歌词滚动\测试歌曲\张瑶 - 遇见.lrc

     文件    2426631  2017-11-14 08:32  歌词滚动\测试歌曲\张瑶 - 遇见.mp3

     文件       1643  2018-11-22 22:07  歌词滚动\测试歌曲\魏晨-疯人愿.lrc

     文件    2217844  2018-03-16 19:38  歌词滚动\测试歌曲\魏晨-疯人愿.mp3

     目录          0  2019-01-06 15:52  歌词滚动\测试歌曲

     目录          0  2019-01-06 15:52  歌词滚动

----------- ---------  ---------- -----  ----

             12945244                    9


评论

共有 条评论