基于Pygame(Python)的本地音乐播放器-界面重置

之前完成了一个较为简陋音乐播放器,这几天对其界面进行重置,让这个播放器界面稍微能高大上一点。新界面效果如下:
在这里插入图片描述

一、使用方法

界面上显示选择文件夹时指针放置该区域点击鼠标右键选择文件夹,选择成功后左键点击歌名暂停和播放,键盘左右键切换上一曲下一曲。

二、新增模块

2.1 歌词模块

歌词显示主要需要提前对歌词文件进行读取,然后将歌词与时间戳根据时间戳为Key键建立为字典,在之后需要的地方根据时间戳对字典值进行访问。


# 歌词载入字典文件
def getGeCi(path):
    global lrc_dict
    # 打开文件
    lrc_dict = {}
    if os.path.exists(path):
        file = open(path, "r")
        # 读取文件全部内容
        lrc_list = file.readlines()
        # '[01:48.00],[00:24.00],怀著冷却了的心窝飘远方'
        # 遍历所有元素,干掉方括号
        for i in lrc_list:
            # 取出方括号并切割歌词字符串
            lrc_word = i.replace("[", "]").strip().split("]")
            # 得到的结果: lrc_word = ['', '01:40.00', '', '00:16.00', '今天我寒夜里看雪飘过']
            for j in range(len(lrc_word)-1):
                if lrc_word[j] and lrc_word[j].find('.') > 0:
                    jj = lrc_word[j][0:lrc_word[j].find('.')]
                    lrc_dict[jj] = lrc_word[-1]
        file.close()
    else:
        lrc_dict = {}

显示时访问对应字典值:

            if len(lrc_dict) != 0:
                if str(lrc_dict.get(str_time)).strip() == "None":
                    pass
                else:
                    gecivar.set(lrc_dict.get(str_time))
            else:
                gecivar.set("该歌曲无歌词文件")

2.2 圆环显示

创建这个圆环显示的初衷是将歌曲的节奏根据圆环的大小来显示出来,但是实在是本人在这方面的知识很是匮乏,所以仅仅是虎头蛇尾的完成随机大小的圆环显示,和歌曲节奏没有任何关系,比较遗憾。但是此处还是贴出我完成此功能的代码。

# 自建画圆函数
def darwCircle(cv,i,color,bian):
    global mySize
    cv.create_oval(mySize/2-100-bian*i, mySize/2-100-bian*i, mySize/2+100+bian*i, mySize/2+100+bian*i,
                           outline = color,  # 边框颜色
                           width = bian  # 边框宽
    )
# 自建画圆线程
def musicDraw():
    global startFlag
    # 随机画圆
    while True:
        if startFlag:
            i = random.randint
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值