Python之简易音乐播放器设计

伪网易云的简易音乐播放器总体设计 1,1GUI 排版布局设计(pyqt5) 大概包括搜索框,图片显示框,进度条框等部件,以及搜索栏,最近播放,喜爱的歌,歌词显示

本文包含相关资料包-----> 点击直达获取<-------

伪网易云的简易音乐播放器总体设计

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

相关推荐

发表回复

登录后才能评论