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

相关推荐

  • 基于SpringBoot框架的二手车交易系统

    这是一套采用Java编程语言,基于SpringBoot框架构建的二手车辆交易系统源代码,开发工具为Idea或Eclipse,采用了现代化的SpringBoot和Vue技术栈
    2024年05月23日
    7 1 3
  • 基于ssm+bootstrsp简单极易上手的小型图书系统

    基于 ssm+bootstrsp 简单极易上手的小型图书系统 效果图: 步骤 第一步 idea 下载 idea, 怎么下载安装配置 idea 第二步 创建项目 打开 idea —> File —> new —> project —> maven —> create from archetype —> maven-archetype-webapp —> 接下来一般默认即可 先放上项目结构图 第三步 配置 maven 依赖
    2024年05月14日
    3 1 1
  • 基于springboot实现的整合dubbo服务框架

    本文你将学到什么? 本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统, 这套微服务框架能干啥? 这套系统搭建完之后
    2024年05月14日
    1 1 1
  • 基于Python实现书店销售管理系统

    书店销售管理管理子系统 一,设 计 总 说 明 现在社会随着计算机技术迅速发展与技术的逐渐成熟,信息技术已经使人们的生活发生深刻的变化,生活中的各种服务系统也使人们在生活中的联系日常销售活动方式发生了很大的变化
    2024年05月14日
    6 1 1
  • 基于python + dlib实现人脸识别

    python 进行人脸识别 人脸识别的主要算法 其核心算法是 欧式距离算法使用该算法计算两张脸的面部特征差异,一般在 0,6 以下都可以被认为是同一张脸 人脸识别的主要步骤 获得人脸图片 将人脸图片转为 128D 的矩阵(这个也就是人脸特征的一种数字化表现) 保存人脸 128D 的特征到文件中 获取其他人脸转为 128D 特征通过欧式距离算法与我们保存的特征对比
    2024年05月14日
    2 1 1
  • 基于SSM的中医管理系统源码

    这是一个🔥🔥基于SSM的中医管理系统🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 中医管理系统开发技术栈为SSM项目,可以作为毕业设计课程设计作业使用SSM框架实现一个中医管理系统
    2024年05月23日
    7 1 3
  • 基于Python的信息检索课程设计

    基于Python的信息检索课程设计 sdu视点新闻 全站爬虫爬取+索引构建+搜索引擎查询练习程序 爬虫功能使用Python的scrapy库实现
    2024年05月14日
    2 1 1
  • 基于jsp+servlet+mysql的图书管理系统

    Book-management-jsp 基于jsp+servlet+mysql的图书管理系统 参考文献 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 高校图书管理系统的设计与实现(东北大学·黄鑫) 复旦大学数字图书馆个人图书管理系统的设计与实现(电子科技大学·陆卫国) 图书综合管理系统(吉林大学·王宇) 宁波职业技术学院图书管理系统分析与设计(云南大学·赵顺勇) 大同实验小学图书馆借还系统的设计与实现(电子科技大学·王洪宇) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 山西电大图书管理信息系统的设计与实现(北京工业大学·李莹) 医疗卫生图书网的设计与实现(电子科技大学·张占平) 基于Web的书刊进销存系统的设计与实现(大连理工大学·王宁) 基于JSP/Servlet的三层式网上书店的研究与实现(吉林大学·郭小雪) 基于RBAC的SSH架构下的图书管理应用研究(大连理工大学·姜楠) 基于B/S架构的网上书店系统的设计与实现(电子科技大学·陈云英) 基于
    2024年05月14日
    11 1 2
  • 基于Springboot和Redis实现的在线选课系统

    基于Springboot和Redis实现的在线选课系统 1,项目简介 1,1 介绍 毕业设计真的就是demo吗?作为工作前的最后一个校园项目,毕业设计应当尽可能的贴近企业实战
    2024年05月14日
    1 1 1
  • 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统

    Blog-master 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统 参考文献 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架的人力资源管理系统的设计与开发(电子科技大学·唐伟) 博客管理系统的设计与实现(吉林大学·赵岩) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于MVC设计模式的博客系统的设计与实现(大连理工大学·侯林) 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架模式的博客系统的设计与实现(西北师范大学·王刚成) 基于SSH2的轻博客系统的研究与实现(吉林大学·杨雪梅) 博客管理系统的设计与实现(吉林大学·赵岩) 基于OAuth2
    2024年05月14日
    4 1 1

发表回复

登录后才能评论