本节将教大家如何做一个简单的mp3,希望大家能有所收获,写的不足之处望大家谅解。
废话少说,直接上代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygame
import os
from tkinter import *
root = Tk()
root.title('老婆专用播放器')
root.geometry('800x600')
pygame.init()
music_path = r'C:UserszlcaoMusic'
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是函数体里的执行语句并返回结果。
有些人可能会说,这些我都懂了,我如何能丰富我的界面功能了,这个也太简陋了

在这里插入图片描述
这里我搜集了一些给大家提供一些参考
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就好了,具体打包方法大家可以自行探索。

extjs 在textfield后面加一个button_用python 做一个简单的MP3相关推荐

  1. python做一个系统-用python做一个系统监控程序

    #coding:utf8 from email.mime.text import MIMEText import smtplib,psutil,time,os,datetime destination ...

  2. python写520_用Python做一个520表白神器,值得收藏

    本文最后给出了打包好的软件,无需安装Python环境和各种依赖,直接下载软件,解压后,双击exe文件即可使用. 先来看一下具体的效果. 运行程序. 用Python做一个520表白神器,值得收藏 点击「 ...

  3. python怎么写游戏脚本_用PYTHON做一个简单的游戏脚本(基础,详细)

    引言 这段时间迷上了玩点点点的小游戏,但是某些重复的环节着实无聊,就想着能不能用PYTHON做一个游戏脚本,不过为了熟悉需要做脚本的各个模块,于是打算在4399上找一个比较像的游戏做个脚本练练手,后来 ...

  4. 用PYTHON做一个简单的游戏脚本(基础,详细)

    引言 这段时间迷上了玩点点点的小游戏,但是某些重复的环节着实无聊,就想着能不能用PYTHON做一个游戏脚本,不过为了熟悉需要做脚本的各个模块,于是打算在4399上找一个比较像的游戏做个脚本练练手,后来 ...

  5. python随手记自动记账_菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记

    原标题:菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记 每个月都有各种各样的开销,不当家不知道柴米贵呀!柴米油盐酱醋茶样样都要开销,吃的穿的,各种开销,每个月都没有啥结余,小编月初是富人,月底 ...

  6. 用python做一个简单GUI小软件

    用python做一个简单软件 前言 这是一个课设,用python做一个扫描王软件 我主要做的GUI部分,记录分享一下.也是第一次用python做小软件,python的方便果然是名不虚传 遇到问题 1. ...

  7. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

  8. 用python制作二维码_用python做一个可视化生成二维码的工具

    用python做一个可视化生成二维码的工具 环境 pip install gooey pip install MyQR 源代码 from gooey import GooeyParser,Gooey ...

  9. python显示圆周率的值是多少_用python做一个有趣的实验,看你的生日是否出现在圆周率中...

    原标题:用python做一个有趣的实验,看你的生日是否出现在圆周率中 前言: 看到圆周率这个词,突然冒出一个灵感怎么知道我的生日在不在圆周率的中又或者在第几位呢?带着这个想法去网上找了一堆数据,最后找 ...

最新文章

  1. nginx中的try_files指令解释
  2. Linux内核访问外设I O资源的方式
  3. Linux 安装json神器 jq
  4. SQ小组KTV点歌系统简介
  5. html页面tableview,用JS写的一个TableView控件代码
  6. 焦作师范高等专科学校计算机,焦作师范高等专科学校计算机房管理规定
  7. 决策树ID3与C4.5
  8. 小程序nginx做反向代理_NGINX作为节点或Angular应用程序的反向代理
  9. 看完Mate 10拍下的精美空中照片后,你是否也想坐次飞机试拍下?
  10. thinkphp 使用 kindEditor
  11. CuteFTP Pro 8.3.4 最新破解绿色版
  12. 配色三部曲-你真懂这些色彩术语吗?
  13. Ultra Fast Deep Lane Detection with Hybrid Anchor Driven Ordinal Classification论文解读
  14. python可能实现办公自动化吗,让工作化繁为简:用Python实现办公自动化
  15. 两层板如何做阻抗控制呢
  16. 程序人生:我,颓废3年,怒加薪26K:成年人最顶级的自律,是逆着人性做事
  17. ss3ex集成Beet记录日志
  18. vue2、vue3中自定义v-model的使用和区别
  19. 辰迈智慧完美收官防灾减灾与应急救援展
  20. 仙人掌之歌——投石问路(3)

热门文章

  1. python列表是顺序表还是链表_Python数据结构与算法(链表使用详解)
  2. java正则表达式 后顾,正则表达式:从Copy到手写
  3. docker-compose部署Minio
  4. teleport 组件的作用_新发现!新型焊带助组件输出功率增加2.1%
  5. 鸿蒙智慧屏桌面,全球首发国产鸿蒙操作系统,荣耀智慧屏现场亲测
  6. powerbuilder提示不是下拉窗口_制作简易工资查询模板,下拉菜单选择姓名即可显示...
  7. Java8 List<对象> 转 Set、Map(高级)、排序、分组、统计
  8. java查看当前活动的线程数量
  9. 服务器资源占用监控(jp@gc - PerfMon Metrics Collector)
  10. Kotlin入门(18)利用单例对象获取时间