伪网易云的简易音乐播放器总体设计
1.1GUI 排版布局设计(pyqt5)
大概包括搜索框,图片显示框,进度条框等部件,以及搜索栏、最近播放、喜爱的歌、歌词显示、本地音乐播放 5 个子列表显示页面。
1.2 关键字搜索音乐列表爬虫
爬取初始页面 HTML 并对网站 js 动态传递的 url 和 data 进行捕获
1.3 音乐播放
在列表中双击歌曲进行对爬取信息的播放、图片显示、歌词显示,并且动态响应 GUI 界面实时更新(包括播放模式、当前歌曲、进度条),采用多线程并发进行
1.4 附加功能
- 暂停与启动功能
- 音量增与音量减功能
- 上一首与下一首(包括自动下一首与手动手动)功能
- 音乐列表播放模式(列表循环,随机播放,单曲循环)
- 添加到“我喜欢”列表按钮以及该列表的保存与下次开启初始化
- 读取本地歌曲,添加本地歌曲目录
- 音乐下载、全部下载与全部清空
- 右键列表菜单(包括“将该歌曲添加到我喜欢”和“将该歌曲从列表中删除”)
1.5 基础流程
如图所示:
2.1GUI 排版布局设计
主要通过 pyqt5 模块进行页面布局
- 上侧栏主要包括关键字搜索和音乐来源选择
- 中间主体包括左右侧栏,左侧用来显示播放音乐封面图,右侧用来进行音乐列表显示
- 底部主要来显示当前播放音乐,播放进度条,音量控制,上一首/下一首,暂停/开始,播放方式等附加功能
运行过程主要在初始化,调用 MainUi 构造函数进行布局显示,调用 startThread 类进行初始化加载上次保存的数据
2.2 关键字搜索音乐列表爬虫
1.从 http://music.9q4.cn 等网站根据输入内容进行爬取,调用 PAThread 线程,通过 post 提交输入数据并且截获响应数据将爬取的各条曲目信息以 JSON 格式存储到列表中,方便进行数据解析和处理。
2.爬取数据解析处理:通过 WorkThread 类,start()进行对已存储的 JSON 数据 进行分类(不同来源或不同格式)解析:
- 图片格式处理:提取图片 url 下载并缓存
- 歌曲 url 提取,.mp3 文件存储准备 load 并播放
- 歌词按行提取与存储(这里所有数据处理都需要根据列表进行分类:搜索栏,最近播放,我喜欢,本地)
2.3 音乐播放
音乐播放主要通过 WorkThread()线程类进行
- 双击歌曲,通过 pyqt5 的 doubleclick 方法进行信号发送,从而发送信号到 change_xxx 槽(用来收到 doubleclick 信号并调用 bofang 方法)
- 通过 pyqt5 的信号与槽机制传递信息 ,并执行相应的 change 方法,通过 change 槽再调用 bofang 方法,完成爬虫线程
- Bofang 方法定义了 WorkThread 类并且连接 display 槽,当该类 emit 消息时,display 槽执行操作,类似于 js 的触发事件(即双击后爬取完毕发送播放信息与 display 显示信息)
WorkThread()的信号连接到 display 槽,当 WorkThread()爬取加载完成后会 emit()信号,此时连接的槽 display()完成加载图片,加载歌词,更新进度条等等
2.4 附加功能(核心方法是 pyqt 信号触发槽)
- 暂停与启动功能
- 音量增与音量减功能
- 上一首与下一首(包括自动下一首与手动手动)功能
- 音乐列表播放模式(列表循环,随机播放,单曲循环) 改变 play 变量
- 添加到“我喜欢”列表:按钮方式与右键方式以及该列表的保存与下次开启初始化 :startThread 线程在 GUI 初始化 init()时进行 start()
- 添加本地歌曲目录 add 方法,系统 call(explorer…)
- 音乐下载、全部下载与全部清空(列表操作):下载采用再次调用爬虫得到的音频.mp3 的 url 进行 stream 方式下载并保存本地
清空列表即将对应 table 下的存储列表清空,并且将页面部件的 text 内容 clear
- 右键列表菜单(包括“将该歌曲添加到我喜欢”和“将该歌曲从列表中删除”):主要通过 pyqt 的 Qmenu 对象添加 Action 方法
参考文献
- 大理人民广播电台播放管理系统的设计与实现(山东大学·牛成)
- 大理人民广播电台播放管理系统的设计与实现(山东大学·牛成)
- 在线音乐电子商务平台的设计与实现(电子科技大学·张丽)
- 面向智能耳机的音乐服务平台的设计与实现(北京交通大学·刘新韵)
- 大理人民广播电台播放管理系统的设计与实现(山东大学·牛成)
- 在线音乐管理系统设计与实现(华中科技大学·白爱)
- 音乐教学信息化管理设计(电子科技大学·张红梅)
- 基于宽带网络的视频点播系统(吉林大学·纪砚秋)
- 个性化音乐推荐系统的设计与实现(吉林大学·王云竹)
- 融合HMM及歌曲特征标签的混合推荐算法研究(江西师范大学·李春俊)
- 基于机器学习优化用户音乐喜好个性化推荐的研究(广东工业大学·黄梓炜)
- 面向智能耳机的音乐服务平台的设计与实现(北京交通大学·刘新韵)
- 基于SSH的在线视频网站设计与实现(大连理工大学·朱锋)
- 罗定中学音乐远程教育学习系统的设计与实现(电子科技大学·梁玉萍)
- 基于机器学习优化用户音乐喜好个性化推荐的研究(广东工业大学·黄梓炜)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计驿站 ,原文地址:https://m.bishedaima.com/yuanma/35981.html