1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python 网络音乐播放器(二):tkinter 实现歌词同步滚动

python 网络音乐播放器(二):tkinter 实现歌词同步滚动

时间:2020-11-14 06:14:38

相关推荐

python 网络音乐播放器(二):tkinter 实现歌词同步滚动

问题

在我用 tkinter 做网络音乐播放器时,想实现滚动歌词的效果。如下图所示:

解决方案

我们采用 tkinter 的 Listbox 来实现滚动歌词效果。

lrc_list = Listbox(lrc_frame, relief='flat',# 无边框font=('微软雅黑', 12),# 设置字体highlightthickness=0,# 无高亮边框selectmode='single',# 单选bg='SystemButtonFace',# 背景色fg='#303030',# 歌词颜色selectbackground='SystemButtonFace',# 选中的背景颜色selectforeground='orange'# 选中的歌词颜色)lrc_list.grid()

为了让歌词在中间显示,我们再载入歌词时在歌词列表前插入两个空格,这样,歌词就会出现在第三行。

def load_lrc():lrc_list.delete(0, 'end')# 清除列表lrc_list.insert('end', *['', '', *self.words])

通过设置选中状态实现同步歌词高亮。

def timer(self):# 获取当前歌词索引index = get_index()# 清除列表所有项的选中状态lrc_list.selection_clear(0, 'end')# 设置选中。因为列表前加了两项空格,因此,实际歌词的位置是索引位置 +2lrc_list.selection_set(index + 2)# 计算索引跟总长度的比值index = index / len(words)index = index if index >= 0 else 0# 歌词列表滚动到指定位置lrc_list.yview_moveto(index)

音乐播放器

顺便说一下,我的 tkinter 做的音乐播放器 完成了。它支持:

酷我音乐搜索、下载进度条查看、控制滚动歌词(本文)

问题解决:

pygame 播放网络音乐

点击上面超链接可以查看对应讲解和代码。

这是一些解决播放器问题的,用于播放器中一些复杂部分的讲解。

作者博客:/weixin_48448842

点个赞支持一下作者谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。