Musicplayer
Musicplayer
Python 音乐播放器
功能:
首先可以实现本地音乐的播放,能够打开电脑端的文件,文件中进行多选,实现暂停、上一曲、下一曲的功能。在此基础上,完成随机播放列表和网络端下载的功能。
设计方法:
本次开发使用Python语言,利用它的代码量少,现成库多,开发效率高的特点,同时觉得Qt设计的界面更加美观,而它恰好有PyQt5库,而PyQt5是基于Qt开发的,拥有大多数Qt的功能。
首先我们需要一个音乐播放器的界面,可用来设计界面的python库有Tkinter,PyQt5等,这里选择了设计简单,学习成本较低的PyQt5,来设计UI,通过QtDesigner软件,可以很快的做出一个界面,大大减少了开发成本,提高了效率。
音乐播放器的内部设计分为两个部分:一、本地音乐的打开与播放,二、网络音乐的搜索下载。本地音乐打开与播放时,首先选择文件夹,难题是如何使用鼠标选择文件中的某些歌曲。音乐的播放通过pygame模块进行控制。在学习过程中发现可以用爬虫实现网络音乐的下载,故学习如何使用爬虫技术进行爬取歌曲的id,然后调用外链进行下载。
用到的Python库:
random用到random.randint():
random库是使用随机数的Python标准库,其中random.randint(a,b)随机生成一个(a,b)之间的整数,在本播放器中主要用于本地文件的随机播放。
threading:
多线程库,实现多个函数同时运行和爬虫,
time用到time.sleep():
数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。播放音乐时,需要用到此函数进行播放的延迟
os用到os.listdir() + os.path.basename():
返回指定路径下的文件和文件夹列表。
os.path.basename(),返回path最后的文件名。若path以/或\结尾,那么就会返回空值。
pygame:
Pygame是被设计用来写游戏的python模块集合,Pygame是在优秀的SDL库之上开发的功能性包。使用python可以导入pygame来开发具有全部特性的游戏和多媒体软件,Pygame是极度轻便的并且可以运行在几乎所有的平台和操作系统上。此次程序设计中主要用来对音乐的播放暂停等控制。
requests:
在使用Python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装,其优势:Python爬虫时,更建议用requests库。因为requests比urllib更为便捷,requests可以直接构造get,post请求并发起,而urllib.request只能先构造get,post请求,再发起。
PySide2:
PySide2是基于Qt的官方Python库,提供了对Qt 5.122+框架的访问,可用于Python图形化界面开发,Qt是一种强大的图形用户界面构造工具。此次课程设计主要使用Qt进行相关界面的完善。
cloudmusic:
一个实现网易云爬虫的库,可实现音乐id、音乐名字、评论、歌单的爬取,并返回相关信息,自带下载外链(.m4a格式)。
播放界面:
下载界面:
程序设计流程图:
函数关系图:
尚未解决的问题:
GitHub
Gitee
Musicplayer相关推荐
- MusicPlayer音乐播放器Android
MusicPlayer音乐播放器Android [音频采集] 你可以使用手机进行现场录音,实现步骤如下: 第一步:在功能清单文件AndroidManifest.xml中添加音频刻录权限: <us ...
- 调音台docker教程_威联通Docker教程 篇二:三分钟安装精美的音乐播放器 MusicPlayer!Container Station系列教程!...
威联通Docker教程 篇二:三分钟安装精美的音乐播放器 MusicPlayer!Container Station系列教程! 2020-04-15 11:01:02 67点赞 529收藏 47评论 ...
- ios android mid音频文件,ios – 使用MusicPlayer和Music Sequence播放midi文件
我使用以下代码成功地让iOS使用soundfont示例播放.mid(midi)文件: -(void) playMusic:(NSString*) name { NSString *presetURLP ...
- 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...
- musicplayer(3)
今日更新内容: 音量条,歌曲封面,窗口标题 main.py: import sys import time import pygame from pygame.locals import * impo ...
- android MusicPlayer 音乐播放器 Lrc歌词控件的实现
MusicPlayer Lrc歌词控件的实现 最近在做一个音乐播放器,关于其中歌词控件,上网查过了一些资料,然后进行修改,也算完整的实现了其功能.先看看实现后的效果. 实现的原理实际上是自定义一个Vi ...
- 制作Java告白exe应用程序(跑马灯+MusicPlayer)超简单
java超级小白,大佬勿喷 本文章适用于java小小白 一.制作准备 jdk1.8.IntelliJ IDEA .java运行环境.以及创作所需要的jar包(百度网盘 请输入提取码)提取码:1123: ...
- VC下自制一个MusicPlayer:调用activemovie控件
步骤如下: 1.打开vc6.0,用AppWizard新建一个project(是exe那个) 2.选择"基于对话框"(第三个选项) 3.一路确定,进入下面的界面:你可以拖动各种控件了 ...
- Android小玩意儿-- 从头开发一个正经的MusicPlayer(三)
MusicService已经能够接收广播,通过广播接收的内容来做出相应的MediaPlayer对象的处理,包括播放,暂停,停止等,并当MediaPlayer对象的生命周期发生变化的时候,同样通过发送广 ...
最新文章
- sega+model+3+android,世嘉MODEL2经典老游戏移植登场 追加联网对战
- mysql所有的编码_MySQL 批量修改数据表编码及字符集
- 第4代白盒測试方法介绍--理论篇
- 算法训练 Torry的困惑
- SQLServer学习笔记系列4
- sqlite3使用简介(内含解决sqlite内存的方法)
- java 8 兼容_甲骨文限制 Java 9 到 Java 8 的向后兼容性
- 计算机网络管理员中级第一套理论,计算机网络管理员第一套(中级)理论.doc
- 正则表达式中原子的5种类型
- 世界范围内糖化血红蛋白报告的3种建议形式
- asp.net get set用法
- 爱快iKuai软路由系统远程升级(从2.5.10系统升级至3.X系列)教程(图文详解)
- 漫画:面试过程的神回复
- 其实IPv6,并不是那么完美
- Ch6 深度前馈神经网络
- PDF写出:使用fop输出为pdf格式文件的Demo
- idea 配置 tomcat session 无法活化
- python学习笔记之pyinstaller failed to execute script问题
- 微信小程序运行及更新机制
- 维基解密披露CIA Grasshopper远程木马套件 Windows预安装环境、Carberp财务恶意软件的计算机驻留方法都用上了...
热门文章
- 关于仿射变换矩阵的一点理解
- 海纳企业网站管理系统HituxCms2.1代码审计GETSHELL+注入
- 【建议收藏】Redis学习笔记
- JavaScript 19. 正则表达式
- 【Python】DataFrame中的xs用法
- anaconda的python环境变量_装了anaconda之后如何设置anaconda、python环境变量
- 【清单革命】程序员节快乐,愿我们奔赴在各自的热爱里(1024随笔)
- [有感]_这段日子以及那些做好没做好的事
- oracle怎么自动备份数据,ORACLE数据库自动备份_详细步骤
- MindMeld中文文档--35.与对话管理合作