问题

在我用 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()
方法 描述
delete(from_, to) 删除从 from_ 到 to 项;
若没有指定 to,则删除 from_ 项
insert(index, values) 在 index 出插入 values。values 可为列表
selection_clear(from_, to) 清除从 from_ 到 to 项的选中状态;
若没有指定 to,则清除 from_ 项的选中状态
selection_set(from_, to) 设置 from_ 到 to 项的状态为选中;
若没有指定 to,则设置 from_ 项的状态为选中
yview_moveto(index) 列表滚动到 index 的位置,0.0 为最上面,1.0 为最底部

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

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 播放网络音乐

点击上面超链接可以查看对应讲解和代码。
这是一些解决播放器问题的,用于播放器中一些复杂部分的讲解。

作者博客:https://blog.csdn.net/weixin_48448842
点个赞支持一下作者谢谢!

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

  1. Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51448597 项目源码(打赏5积分请点这边):http://download.csdn ...

  2. 简单几步实现网络音乐播放器(Python爬虫版百度FM)

    Python入门之爬取百度音乐 先说一下为什么会有这篇文章,首先肯定是有这个需求了,本人出差在外地,这里的网速卡到爆,根本支撑不了在线听歌的要求,所以就想下载到本地来慢慢听.这可是python的绝活, ...

  3. iOS开发之网络音乐播放器(SC音乐)(二)

    iOS开发之网络音乐播放器(SC音乐)(二) 前言 iOS开发之网络音乐播放器(SC音乐)(一)已经介绍完播放控制.音乐数据获取解析.歌词显示等.本文在上文的基础上介绍锁屏播放设置,后台播放设置,手势 ...

  4. 基于android的网络音乐播放器-添加viewpager和fragment实现滑动切换多个界面(二)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  5. 全网首个tk网络音乐播放器!支持歌词滚动!你看我吊不?

    这是一个用 Python 的 tkinter 库做的一个网络音乐播放器.我不说它的 UI 设计的有多好看,但是它的功能绝对是全站首个!坚持看到底,你不点赞算我输! 成果展示 程序截图 前期准备 程序结 ...

  6. 用Python制作音乐播放器(下,含完整源代码)

    哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个"下",是因为我们以前已经 ...

  7. 基于python的音频播放器_基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...

  8. 基于QT的网络音乐播放器(一)

    自学Qt已经有一段时间了,但是始终感觉自己还是很弱(其实并不是感觉自己很弱,是自己本来就很弱,哈哈).自己也照着书上敲了几个例子,但觉得还是要写点东西才能真正运用起来.所以,前段时间就写了个很简单的音 ...

  9. python本地音乐播放器+附源文件地址

    python本地音乐播放器 因为现在听歌都要版权,所以我喜欢把音乐下载下来听.但一直没找到喜欢的本地音乐播放器,我也只会一些python皮毛,所以有了自己写一个python本地音乐播放器的想法,经过摸 ...

  10. 用Python制作音乐播放器(上)

    用Python制作简单的音乐播放器 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个" ...

最新文章

  1. 李沐:五年工作反思!
  2. mysql数据类型不写(),MYSQL 数据类型
  3. python 实现分步累加_Python网页爬取分步指南
  4. 王道考研 计算机网络19 传输层 传输层的寻址与端口 TCP UDP
  5. 【Siddhi】Siddhi的语法关键字
  6. 用R语言绘制动态地图,代码奉上!(REmap包详解)
  7. 初中生物教师资格证经验贴
  8. 保护板测试仪上位机软件,蓄电池性能测试仪放电部分与上位机软件设计
  9. 线性代数笔记1.1n阶行列式
  10. 机器学习——《西瓜书》
  11. 天津大学计算机学院博士招生目录,天津大学计算机科学与技术学院考博招生人数和专业.pdf...
  12. ​天天干着打杂的活,你做好突破自我的觉悟了吗?
  13. 一篇文章搞懂Typescript
  14. Vue+Openlayer中测距测面和绘制点线面组件-LjMeasureDraw4326和LjMeasureDraw3857
  15. java httpresponse headres属性,http响应头首部Content-Length
  16. 深度理解特斯拉自动驾驶解决方案 3:规划与控制
  17. (13)UVM 史上最全TLM单向/双向/多向通信介绍
  18. OpenCore Gen-X :一键制作黑苹果OpenCore EFI文件
  19. python中使用qrcode库生成二维码时,填充logo变成黑白色的解决方法。
  20. 德赛西威IPU03域控制器方案介绍

热门文章

  1. Windows 使用技巧之WinZIP密码破解
  2. html 转换 swf文件怎么打开,修改网页中的FlashSWF文件的方法
  3. 网上出现反绿坝网站,邀请网友签名以抵制绿坝
  4. Java中的JUnit单元测试
  5. Windows下Redis-Cluster伪集群搭建
  6. HPlaserjet1020打印机无法识别
  7. win7 、2008 提示Error 1606 Could Not Access Network Location %SystemDrive%/inetpub/wwwroot/ 的错误解决方法...
  8. 电脑图标变成白纸如何恢复
  9. 我心中的你是春天的样子
  10. djangobook的旧版本代码,关于数据库