今天使用python的pygame等模块制作了一个简单的音乐播放器,实现了很多好玩的功能,在这里和大家一起分享!这是笔者的第二篇博客,也是正式的完成一个小项目,希望获得大家的支持~

播放器可以实现的功能:

暂停、继续播放、调整声音大小、上一曲&下一曲调整、无限制追加音乐(但需要下载音乐文件到本地)、直接根据曲库展示的歌曲序号进行点歌

项目python代码:

from time import sleep # 这里可以不用,sleep表示先不执行代码段的时间
import pygame
import os
#导入pygame模块
import time
#导入时间模块
pygame.mixer.init()
#初始化音频部分
def musiclujing():
#将曲目的路径存放在列表中path = []name = []musicfolderpath = r"../happy_birthday/资源/music"  #文件夹目录files= os.listdir(musicfolderpath)  #得到文件夹下的所有文件名称for file in files: #遍历文件夹if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开temppath = musicfolderpath + "/" + filepath.append(temppath)name.append(file)return path,namedef welcome():print('''*************************************************       欢迎来到微笑的萝卜出品的专属音乐播放器    **                lly出品,必属精品              *************************************************''')sleep(3)pygame.mixer.music.load(musicpath[0])  #载入待播放的音乐文件,需要提前下载到本地文件pygame.mixer.music.play(loops=2)           #开始播放音乐流,默认无操作下循环次数为2次pygame.mixer.music.set_volume(0.3)def musicselect(path, name):i = 0j = 0.3while 1:print('''*************************************************   从键盘上键入以下字符可以执行对应命令,大小写均可:   *A/a:暂停     Q/q:播放                S/s:下一曲   W/w:上一曲           E/e:增大音量  D/d:减少音量          空格:退出程序                 *        直接输入数字: 直接播放对应序号的歌曲        *------------------------------------------------               ''')print("                    曲库的歌曲列表为:")for r in range(len(name)):print("                    ",end = "")print(str(r) + ":" + name[r])print("        ************************************************")print("当前正在播放的是:",name[i])n = input('请输入下一步操作哦:')if n == "q" or n == "Q":print('继续播放音乐')#使用文件名作为参数载入音乐 ,音乐可以是ogg、mp3等格式。载入的音乐不会全部放到内容中,而是以流的形式播放的,即在播放的时候才会一点点从文件中读取。#播放载入的音乐。该函数立即返回,音乐播放在后台进行。pygame.mixer.music.unpause()elif n == "a" or n == "A":#暂停播放pygame.mixer.music.pause()elif n == "s" or n == "S":i += 1pygame.mixer.music.load(path[i])pygame.mixer.music.set_endevent(pygame.constants.USEREVENT)  # 音乐结束事件:可供大家继续编辑,本文中没有用到哦pygame.mixer.music.play(loops=2)elif n == "w" or n == "W":i -= 1pygame.mixer.music.load(path[i])pygame.mixer.music.set_endevent(pygame.constants.USEREVENT)  # 音乐结束事件pygame.mixer.music.play(loops = 2)elif n == "e" or n == "E":j += 0.1pygame.mixer.music.set_volume(j)elif n == "d" or n == "D":j -= 0.1pygame.mixer.music.set_volume(j)elif n == " ":print("程序结束!")return 1else:try:n = int(n)i = npygame.mixer.music.load(path[i])pygame.mixer.music.set_endevent(pygame.constants.USEREVENT)  # 音乐结束事件pygame.mixer.music.play(loops=2)except:print("输入的指令无效,请重新输入!若要退出,请输入空格后确定")continue# -------- 主循环 -----------#设置这里以保证如果音乐播放完毕,则自动播放下一首音乐musicpath, musicname = musiclujing()
welcome()
musicselect(musicpath, musicname)

注释:

# pygame.mixer.music.set_endevent 这一语句本文中并无实际意义,目的是想为那些在此音乐播放器上继续改进的同学提供参考的使用位置,可忽略不写~

项目运行效果截图:

笔者把此项目单独打包成了exe(用了pyinstaller库~),执行效果如下:

大功告成!

完整实例项目:使用python自制音乐播放器~相关推荐

  1. 基于python的音频播放器_基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...

  2. 【Java项目实战】在线音乐播放器(从需求到产品完整解析)

    准备工作必看:[Java项目实战]在线音乐播放器(前期准备) 核心功能 登录.注册 上传音乐 删除某一个音乐信息 删除选中的音乐信息 查询音乐(包含查找指定/模糊匹配的音乐) 添加音乐到"喜 ...

  3. 用Python制作音乐播放器(下,含完整源代码)

    哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个"下",是因为我们以前已经 ...

  4. 安卓实训项目:基于储存卡音乐播放器实训报告5.0

    安卓实训项目:基于储存卡音乐播放器实训报告5.0 (一)功能要求 在基于存储卡音乐播放器V0.4基础上,作如下修改: 1.创建应用程序常量接口保存广播频道常量 2.在音乐播放器应用程序类里添加两个属性 ...

  5. python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子

    本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球, ...

  6. python本地音乐播放器+附源文件地址

    python本地音乐播放器 因为现在听歌都要版权,所以我喜欢把音乐下载下来听.但一直没找到喜欢的本地音乐播放器,我也只会一些python皮毛,所以有了自己写一个python本地音乐播放器的想法,经过摸 ...

  7. python可视化音乐播放器(pyqt5+多平台下载)

    1.主要功能 实现一个python可视化音乐播放器,用的是pyqt5,主要是三个平台获取,一个是网易云音乐,一个是酷我音乐,一个是酷狗音乐者三个平台获取音乐,能够进行下载,然后进行播放,具备网页获取的 ...

  8. 用Python制作音乐播放器(上)

    用Python制作简单的音乐播放器 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 音乐播放器,大家应该不陌生吧!今天我们一起来学习如何用python制作音乐播放器.之所开头有一个" ...

  9. [MAUI 项目实战] 手势控制音乐播放器(一): 概述与架构

    这是一篇系列博文.请关注我,学习更多.NET MAUI开发知识! [MAUI 项目实战] 手势控制音乐播放器(一): 概述与架构 [MAUI 项目实战] 手势控制音乐播放器(二): 手势交互 [MAU ...

最新文章

  1. 外部NORFlash是第一个以硬件为基础的信任
  2. java原始模型模式_java设计模式--原始模型模式
  3. ArcGis For Flex 之 QueryTask地理坐标展现【原创】
  4. 判断两个字符串是否是变形词
  5. django restful 请求_利用 Django REST framework 构建 RESTful Web API
  6. wxWidgets随笔(5)-utf8中文(1)
  7. 视频编码中封装格式RMVB,AVI,264
  8. MIPI CSI-2学习
  9. java面试题29 牛客 以下关于集合类ArrayList、LinkedList、HashMap描述
  10. easyUI 日期控件修改...
  11. 的标题形状工具在哪里_自媒体如何搜集素材?标题、文章、图片素材收集3大途径!...
  12. USACO-Section2.1 Healthy Holsteins (深度优先搜索)
  13. krpano使用总结-地图路线
  14. 记一次library cache lock/library cache pin导致的函数编译hang住分析及处理过程
  15. bzoj 2733: [HNOI2012]永无乡(线段树启发式合并)
  16. 超精细写实的3D人物模型,这可不是照片!
  17. 微信小程序 收起键盘 wx.hideKeyboard()
  18. Sumatra PDF阅读器——快捷键与配置
  19. alt在html不显示信息,html – Firefox不显示来自缓存的图像只有alt文本
  20. 图文详解!java开发面试简历模板java

热门文章

  1. SLAM面试总结...
  2. vbot 基于php7,PHP开发微信机器人vbot框架之配置
  3. [无线网络]为什么WiMAX没有普及
  4. 哪个抢票软件抢票成功率高?
  5. [021量化交易] python 绘画K线 MACD RSI 成交量 指标
  6. 软件测试人员必备Linux命令
  7. 51Talk 测试实习生 电话面试记录
  8. 2016 年 31 款轻量高效的开源 JavaScript 插件和库
  9. Linux 生成密文
  10. 助眠好物分享,睡眠不好的人一定要了解的东西