python实现mp3文件播放的具体实现代码
作者:ApocalypseScarecrow 时间:2023-02-03 13:37:52
本文使用pygame实现播放mp3,文中用到pygame及mutagen库,安装:
pip install pygame
pip install mutagen
以下代码实现mp3播放类,包含功能如下:
设置mp3文件
mp3长度
暂停播放
继续播放
停止播放
调整播放进度
获取播放进度
一切尽在不言中,以下为具体实现代码
import pygame
import os
class MP3Player(object):
def __init__(self, file):
self.file = file
from mutagen.mp3 import MP3
self.length = MP3(self.file).info.length
self.begin = 0.0
self.play_mp3(self.file)
def get_pos(self):
"""
获取当前播放进度
:return:
"""
game_pos = pygame.mixer.music.get_pos()
if game_pos == -1:
return -1
return self.begin + game_pos / 1000
def set_pos(self, value):
"""
设置播放进度
:param value: 秒
:return:
"""
if value >= self.length:
dst = self.length
else:
dst = value
self.play_mp3(self.file, dst)
def play_mp3(self, mp3_file, pos=0.0):
"""
播放mp3
:param mp3_file:
:param pos:
:return:
"""
if os.path.exists(mp3_file):
pygame.mixer.init()
pygame.mixer.music.load(mp3_file)
pygame.mixer.music.play(start=pos)
self.begin = pos
@staticmethod
def pause_mp3():
"""
暂停播放
:return:
"""
pygame.mixer.music.pause()
@staticmethod
def unpause_mp3():
"""
继续播放
:return:
"""
pygame.mixer.music.unpause()
@staticmethod
def stop_mp3():
"""
停止播放 并 释放MP3文件
:return:
"""
pygame.mixer.music.stop()
pygame.mixer.music.unload()
直接实例化,使用demo如下:
import time
mp3 = MP3Player("光辉岁月.mp3")
print(mp3.length) # 打印mp3时长
mp3.set_pop(88) # 设置进度至88秒处
time.sleep(10)
mp3.pause_mp3 # 暂停播放
time.sleep(10)
mp3.unpause_mp3() # 恢复播放
time.sleep(10)
mp3.stop() # 停止播放
来源:https://blog.csdn.net/tww124849980/article/details/124891072
标签:python,播放,mp3
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Mysql巧用join优化sql的方法详解
2024-01-16 01:19:34
Python单元测试与测试用例简析
2021-07-18 10:18:59
vuejs实现ready函数加载完之后执行某个函数的方法
2024-05-29 22:48:43
python编写计算器功能
2022-10-29 14:07:33
![](https://img.aspxhome.com/file/2023/1/87951_0s.jpg)
win7下mysql6.x出现中文乱码的完美解决方法
2024-01-17 03:36:45
SQL Server 置疑、可疑、正在恢复等情况分析
2012-01-05 18:51:59
利用Python如何实现K-means聚类算法
2023-09-16 09:17:38
![](https://img.aspxhome.com/file/2023/6/105436_0s.gif)
vue跳转后不记录历史记录的问题
2023-07-02 17:03:38
详解用Python为直方图绘制拟合曲线的两种方法
2021-06-15 23:58:08
![](https://img.aspxhome.com/file/2023/0/67350_0s.jpg)
TensorFlow内存管理bfc算法实例
2023-09-08 21:42:24
![](https://img.aspxhome.com/file/2023/1/130591_0s.jpg)
利用keras使用神经网络预测销量操作
2022-02-25 05:48:31
python smtplib发送多个email联系人的实现
2023-07-24 18:39:43
![](https://img.aspxhome.com/file/2023/0/130760_0s.png)
详解python开发环境搭建
2023-09-17 21:37:25
![](https://img.aspxhome.com/file/2023/5/109365_0s.png)
ASP真正随机不重复查询代码
2010-01-02 20:40:00
Centos5.x下升级python到python2.7版本教程
2023-04-15 13:50:07
php正则过滤html标签、空格、换行符的代码(附说明)
2023-07-22 07:58:01
python数字图像处理之基本图形的绘制
2021-10-21 05:29:42
![](https://img.aspxhome.com/file/2023/8/121498_0s.png)
Python实战使用XPath采集数据示例解析
2022-02-25 09:00:24
![](https://img.aspxhome.com/file/2023/4/72024_0s.png)
探究MySQL中索引和提交频率对InnoDB表写入速度的影响
2024-01-26 08:03:22
![](https://img.aspxhome.com/file/2023/0/124840_0s.png)
Python基于os.environ从windows获取环境变量
2022-09-18 01:42:45