python没有pygame_教程丨python 做一个简单的MP3
↑ 关注 + 星标 ,每天学Python新技能后台回复【大礼包】送你Python自学大礼
来源丨速学Python
https://mp.weixin.qq.com/s/C9doSoz0uHn2VAApBuGsNg
本节将教大家如何做一个简单的mp3,希望大家能有所收获,写的不足之处望大家谅解。
废话少说,直接上代码:
#!/usr/bin/env python# -*- coding: utf-8 -*-import pygameimport osfrom tkinter import *root = Tk()root.title('老婆专用播放器')root.geometry('800x600')pygame.init()music_path = r'C:\Users\zlcao\Music'current_play = 'R3hab - Skydrop (Radio Edit).mp3'music_name = StringVar()def play(): music_name.set(current_play) pygame.mixer.music.load(os.path.join(music_path, current_play)) pygame.mixer.music.play()Label(root, textvariable=music_name, font=('宋体', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)Button(root, text="播放", command=play).place(relx=0, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="暂停", command=lambda: pygame.mixer.music.pause()).place(relx=0.2, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="恢复", command=lambda: pygame.mixer.music.unpause()).place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="停止", command=lambda: pygame.mixer.music.stop()).place(relx=0.6, rely=0.5, relwidth=0.2, relheight=0.1)Button(root, text="重播", command=lambda: pygame.mixer.music.rewind()).place(relx=0.8, rely=0.5, relwidth=0.2, relheight=0.1)root.mainloop()
代码运行效果
先吐槽一下,代码没有粘贴出应有的效果,不知道是不是我使用的姿势不对。
首先我们使用pygame库来支持音频处理,pygame是python的一个游戏库,有兴趣的童鞋可以了解一下。
pygame.init() 意思是初始化所有导入的pygame模块
music_name = StringVar() 这句话声明了一个StringVar对象,他配合Label, Button的textvarable属性来实现变量更新,界面显示字符更新的功能。
pygame.mixer.music.load(os.path.join(music_path, current_play))
加载一个音频文件
pygame.mixer.music.play()
播放加载的音频文件
Label(root, textvariable=music_name, font=('宋体', 14), justify='center', bg='#ADD8E6').place(relx=0, rely=0.1, relwidth=1, relheight=0.3)
加载一个Label控件,该label控件的文字受StingVar类型的变量music_name 控制,可以通过music_name.set() 来改变label显示的文字。font=('宋体', 14) 指定label控件的字体为宋体,字体大小为14号。justify属性用来设置label控件的对齐方式,bg 是background的缩写,指定label控件的背景色,如果要设置字体颜色,可以使用fg(foreground),用法同bg一样。
place是tk 的一种布局方式, tkinter共有三种布局方式,pack, grid, place
relx和rely是相对父控件的位置。0是最左边,0.5是正中间,1是最右边
relwidth, relheight是相对父控件的大小。例如 relwidth=0.1相当于父控件宽度的0.1倍。
lambda是匿名函数,如果一个函数不想命名又没有复杂的功能的情况下,可以使用匿名函 数,可以让代码更为简洁。如何理解lambda呢,我举个例子。
比如func = lambda x: x+1 等同于
def func(x): return(x+1)
x是入参,x+1是函数体里的执行语句并返回结果。
有些人可能会说,这些我都懂了,我如何能丰富我的界面功能了,这个也太简陋了
low
这里我搜集了一些给大家提供一些参考
pygame.mixer.music.load() —— 载入一个音乐文件用于播放pygame.mixer.music.play() —— 开始播放音乐流pygame.mixer.music.rewind() —— 重新开始播放音乐pygame.mixer.music.stop() —— 结束音乐播放pygame.mixer.music.pause() —— 暂停音乐播放pygame.mixer.music.unpause() —— 恢复音乐播放pygame.mixer.music.fadeout() —— 淡出的效果结束音乐播放pygame.mixer.music.set_volume() —— 设置音量pygame.mixer.music.get_volume() —— 获取音量pygame.mixer.music.get_busy() —— 检查是否正在播放音乐pygame.mixer.music.set_pos() —— 设置播放的位置pygame.mixer.music.get_pos() —— 获取播放的位置pygame.mixer.music.queue() —— 将一个音乐文件放入队列中,并排在当前播放的音乐之后pygame.mixer.music.set_endevent() —— 当播放结束时发出一个事件pygame.mixer.music.get_endevent() —— 获取播放结束时发送的事件
大家可以在我这个程序的基础上继续完善和改进,可以添加上一首下一首功能,也可以添加播放列表(treeview去做),感兴趣的童鞋可以加我讨论,一定知无不言言无不尽。最后通过pyinstaller打包成exe就好了,具体打包方法大家可以自行探索,另外希望大家多多支持。
------end------
推荐阅读
再见,VS Code !你好,GitHub!
这款网络排查工具,堪称神器!
我的天!思科前员工删库跑路,损失达 1600 多万
高中生写LOL外挂1年狂赚500万,落网前刚买百万保时捷...
神器DeskGo!
破解TA朋友圈“仅三天可见”
如何掌握Python,一举拿下大厂的高薪offer呢?
推荐我的微信号
来围观我的朋友圈,我的经验分享,技术更新,不定期送书,坑位有限,速速扫码添加
备注:开发方向_昵称_城市,另送你10本Python电子书,
在看点这里好文分享给更多人↓↓
python没有pygame_教程丨python 做一个简单的MP3相关推荐
- python爬虫入门教程(二):开始一个简单的爬虫
2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...
- extjs 在textfield后面加一个button_用python 做一个简单的MP3
本节将教大家如何做一个简单的mp3,希望大家能有所收获,写的不足之处望大家谅解. 废话少说,直接上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- i ...
- python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...
- python 搭建登陆系统,用Python连接操作MySQL数据库,做一个简单的用户登录注册系统...
我们可以很容易地用Python实现一个用户登录系统,相信这即使是对编程新手来说也是小菜一碟. 作为Python的小萌新,今天我想记录下来的是如何实现一个连接了MySQL数据库的用户登录注册系统,它的效 ...
- Python开发——做一个简单的【表白墙】网站
前言 大家早好.午好.晚好吖 ❤ ~ 今天我们要用Python做Web开发,做一个简单的[表白墙]网站. 众所周知表白墙的功能普遍更多的是发布找人,失物招领, 还是一个大家可以跟自己喜欢的人公开表白的 ...
- 【Python】如何用python做一个简单的输入输出交互界面?
看到知乎上有人在问,如何使用Python做一个简单的输入输出交互界面? 交互界面就涉及到GUI编程. Python有很多GUI框架,功能大同小异. 其中比较出名的有「PyQT」.**wxPython. ...
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...
- python字节码执行函数_做一个字节码追踪器,从内部理解 Python 的执行过程
最近我在研究 Python 的执行模型.我对 Python 内部的东西挺好奇,比如:类似 YIELDVALUE 和 YIELDFROM 此类操作码的实现:列表表达式.生成器表达式以及一些有趣的Pyth ...
- 用pygame做一个简单的python小游戏---贪吃蛇
用pygame做一个简单的python小游戏-贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/artic ...
- 用pygame做一个简单的python小游戏---七彩同心圆
用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便加强一下pygame库的学习. 玩法:每次点击鼠标时,会以鼠标 ...
最新文章
- c++语言中,vector容器与list容器的区别和联系?_百度知道
- Jupyter notebook与Spyder集成
- 无忧技术带您预览DFS(分布式文件系统)管理控制台
- 加强IIS安全机制 建立高安全性能Web服务器
- 虚拟机中mysql-cobar安装_cobar配置安装
- SAP Spartacus delivery mode页面Cannot find control with的错误消息
- 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了(总结了一张思维图)...
- 史上最详细Windows版本搭建安装React Native环境配置
- Redis文档阅读笔记-Pub/Sub官方解析
- sql server的密码采用自带什么密码技术存储_【技术分享】浅谈MYSQL 8.0新特性
- 网易财报暗藏玄机,不经意间已编织出电商大网
- 每次发工资条,同事都要随意传看,怎么解决这个问题?
- python成功之路,Day1-发展历史
- 大数据分析有几种方法
- (第十一周)规格说明书练习作业——吉林市一日游
- CVE-2020-10148: SolarWinds 远程代码执行漏洞通告
- maven [INFO] No proxies configured [INFO] No proxy was configured, downloading directly
- 发送邮件被退回,提示: Helo command rejected: Invalid name 错误
- 江苏工匠杯_easyphp_wp
- 博取仪器3D产品配置
热门文章
- 蓝桥杯官网 试题 PREV-278 历届真题 双向排序【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法
- python数据分析论文结构_基于python数据挖掘论文_数据挖掘期末论文
- 斯蒂夫乔布斯传札记:第九波
- 动软代码生成器连不上高版本(8.0+)的解决方法
- ZTEBA601.android5.1,中兴Blade A601线刷刷机教程_中兴BA601线刷包_救砖刷机包
- 华为主题包hwt下载_华为主题开发工具
- Android文字图像识别并翻译的简单实现
- 【游戏引擎Easy2D】第一个引擎程序
- 浪潮服务器风扇转速调节(已解决)
- 数据库系统原理课程设计