如何利用Python实现简易的音频播放器
作者:LeBron?Le 发布时间:2022-07-16 11:47:32
标签:Python,音频,播放器
1. 需要用到的Python库
pygame
tkinter
2. 简易UI设计
audio_player = Tk()
audio_player.title('Audio Player v1.0')
audio_player.geometry('100x100+570+200')
audio_player.maxsize(height=110, width=220)
audio_player.minsize(height=110, width=220)
3. 功能模块实现
3.1 选择音频文件进行播放
def selectFile():
file = filedialog.askopenfile(mode='r', filetypes=[('AudioFile', '*.mp3')])
global filePath
filePath = str(file).split("'")[1]
try:
playAudio()
except:
pass
3.2 控制音频播放、暂停
def changeText(text):
if text == 'play':
return 'pause'
if text == 'pause':
return 'play'
def playStop():
playBtn.config(text=changeText(playBtn.config('text')[4]))
if playBtn.config('text')[4] == 'pause':
mixer.music.unpause()
else:
if playBtn.config('text')[4] == 'play':
mixer.music.pause()
3.3 控制音频音量大小
这里可以定义一个全局变量x,初始化为值0.5。
def audioINC(y):
mixer.music.set_volume(y + 0.1)
global x
x += 0.1
def audioDEC(y):
mixer.music.set_volume(y - 0.1)
global x
x -= 0.1
3.4 播放器初始化等细节
def playAudio():
try:
mixer.init()
mixer.music.load(filePath)
mixer.music.set_volume(x)
playBtn.config(text='pause')
mixer.music.play()
except:
pass
4. 运行
frame = Frame(app)
frame.place(x=35, y=20)
openBtn = Button(frame, text='OpenFile', command=selectFile, width=8).grid(row=0, column=1)
audioDec = Button(frame, text='➖', command=lambda: audioDEC(x)).grid(row=1, column=0)
playBtn = Button(frame, text='...', command=playStop, width=8)
playBtn.grid(row=1, column=1)
audioInc = Button(frame, text='➕', command=lambda: audioINC(x)).grid(row=1, column=2)
restartBtn = Button(frame, text='Restart', command=playAudio, width=8).grid(row=2, column=1)
app.mainloop()
5. 简易音频播放器展示图
①点击“
OpenFile
”按钮可以打开本地音频文件②“➖”和“➕”分别控制音量的减小和增大
③点击"
Restart
"按钮可以重新播放当前选中的音频
6. 总结
本文仅仅是实现了一个简易的音频播放器,UI极其简陋,为了仅仅是实现音频播放的功能,仅供学习参考。
来源:https://blog.csdn.net/hutianle/article/details/123204633
0
投稿
猜你喜欢
- 现在我主要教大家如何去实战,做一个简易的知乎日报API 首先你要熟悉django的基本用法,会写模型,会写视图函数,会配置url。1.配置字
- 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于菜J学Py
- 一次性验证码,英文是 One Time Password,简写为 OTP,又称动态密码或单次有效密码,是指计算机系统或其他数字设备上只能使用
- 这篇文章主要介绍了Python for循环搭配else常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 今天模拟定义map函数.写着写着就发现Python可变长度参数的机制真是灵活而强大.假设有一个元组t,包含n个成员:t=(arg1,...,
- 今天冒出来一个想法,在仅知道数据库名的情况下,用asp得到数据库中的所有表名、所有表的字段名、以及所有字段中的内容。经过一段时间查询资料和修
- opencv > pilimport cv2 from PIL import Imageimg = cv2.imread("
- 在进行WEB标准网页设计时,必不可少的是写入大量的CSS语法,一般情况下我们可以通过Dreamweaver软件的“CSS样式”面板自动生成相
- gzip 是什么东东呢?百科跟我们说gzip是GNU zip的缩写,它是一个 GNU 自由软件的文件压缩程序。…gzip 的基础是 DEFL
- 写在前面我的 CUDA 版本是什么? 这个问题本身就是有问题的,因为没有搞清楚cuda的分类这里的 CUDA 说的是 Driver CUDA
- <?php function BigEndian2Int($byte_word, $signed = false) { $int_va
- 一、集合的基本信息集合:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。格式:set1 = set()或a={值1
- tensor内所有元素相乘a = torch.Tensor([1,2,3])print(torch.prod(a))输出 tens
- 本篇讲下如何使用纯python代码将excel 中的图表导出为图片。这里需要使用的模块有win32com、pythoncom模块。网上经查询
- List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作)
- 许多游戏玩家一定会对游戏中的动态鼠标指针有很深的印象,其实只要一句简单的CSS(层叠样式表),你也能在网页上实现这种效果。首先,你需要一个鼠
- 日常我们见的多的水印大都是做到图片里的,我依据html元素的css position定位作出这个 * 印,供大家参考<!DOCTYPE
- PHP getDocNamespaces() 函数实例返回 XML 文档的根节点中声明的命名空间:<?php $xml=<<
- 方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数
- 简介查看百度搜索中文文本聚类我失望的发现,网上竟然没有一个完整的关于Python实现的中文文本聚类(乃至搜索关键词python 中文文本聚类