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相关推荐

  1. MusicPlayer音乐播放器Android

    MusicPlayer音乐播放器Android [音频采集] 你可以使用手机进行现场录音,实现步骤如下: 第一步:在功能清单文件AndroidManifest.xml中添加音频刻录权限: <us ...

  2. 调音台docker教程_威联通Docker教程 篇二:三分钟安装精美的音乐播放器 MusicPlayer!Container Station系列教程!...

    威联通Docker教程 篇二:三分钟安装精美的音乐播放器 MusicPlayer!Container Station系列教程! 2020-04-15 11:01:02 67点赞 529收藏 47评论 ...

  3. ios android mid音频文件,ios – 使用MusicPlayer和Music Sequence播放midi文件

    我使用以下代码成功地让iOS使用soundfont示例播放.mid(midi)文件: -(void) playMusic:(NSString*) name { NSString *presetURLP ...

  4. 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!

    前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...

  5. musicplayer(3)

    今日更新内容: 音量条,歌曲封面,窗口标题 main.py: import sys import time import pygame from pygame.locals import * impo ...

  6. android MusicPlayer 音乐播放器 Lrc歌词控件的实现

    MusicPlayer Lrc歌词控件的实现 最近在做一个音乐播放器,关于其中歌词控件,上网查过了一些资料,然后进行修改,也算完整的实现了其功能.先看看实现后的效果. 实现的原理实际上是自定义一个Vi ...

  7. 制作Java告白exe应用程序(跑马灯+MusicPlayer)超简单

    java超级小白,大佬勿喷 本文章适用于java小小白 一.制作准备 jdk1.8.IntelliJ IDEA .java运行环境.以及创作所需要的jar包(百度网盘 请输入提取码)提取码:1123: ...

  8. VC下自制一个MusicPlayer:调用activemovie控件

    步骤如下: 1.打开vc6.0,用AppWizard新建一个project(是exe那个) 2.选择"基于对话框"(第三个选项) 3.一路确定,进入下面的界面:你可以拖动各种控件了 ...

  9. Android小玩意儿-- 从头开发一个正经的MusicPlayer(三)

    MusicService已经能够接收广播,通过广播接收的内容来做出相应的MediaPlayer对象的处理,包括播放,暂停,停止等,并当MediaPlayer对象的生命周期发生变化的时候,同样通过发送广 ...

最新文章

  1. sega+model+3+android,世嘉MODEL2经典老游戏移植登场 追加联网对战
  2. mysql所有的编码_MySQL 批量修改数据表编码及字符集
  3. 第4代白盒測试方法介绍--理论篇
  4. 算法训练 Torry的困惑
  5. SQLServer学习笔记系列4
  6. sqlite3使用简介(内含解决sqlite内存的方法)
  7. java 8 兼容_甲骨文限制 Java 9 到 Java 8 的向后兼容性
  8. 计算机网络管理员中级第一套理论,计算机网络管理员第一套(中级)理论.doc
  9. 正则表达式中原子的5种类型
  10. 世界范围内糖化血红蛋白报告的3种建议形式
  11. asp.net get set用法
  12. 爱快iKuai软路由系统远程升级(从2.5.10系统升级至3.X系列)教程(图文详解)
  13. 漫画:面试过程的神回复
  14. 其实IPv6,并不是那么完美
  15. Ch6 深度前馈神经网络
  16. PDF写出:使用fop输出为pdf格式文件的Demo
  17. idea 配置 tomcat session 无法活化
  18. python学习笔记之pyinstaller failed to execute script问题
  19. 微信小程序运行及更新机制
  20. 维基解密披露CIA Grasshopper远程木马套件 Windows预安装环境、Carberp财务恶意软件的计算机驻留方法都用上了...

热门文章

  1. 关于仿射变换矩阵的一点理解
  2. 海纳企业网站管理系统HituxCms2.1代码审计GETSHELL+注入
  3. 【建议收藏】Redis学习笔记
  4. JavaScript 19. 正则表达式
  5. 【Python】DataFrame中的xs用法
  6. anaconda的python环境变量_装了anaconda之后如何设置anaconda、python环境变量
  7. 【清单革命】程序员节快乐,愿我们奔赴在各自的热爱里(1024随笔)
  8. [有感]_这段日子以及那些做好没做好的事
  9. oracle怎么自动备份数据,ORACLE数据库自动备份_详细步骤
  10. MindMeld中文文档--35.与对话管理合作