python实现mp3文件播放的具体实现代码
作者:ApocalypseScarecrow 发布时间:2023-02-03 13:37:52
标签:python,播放,mp3
本文使用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


猜你喜欢
- 需求背景:进行分值计算。如下图,如果只是一两个还好说,写写判断,但是如果有几十个,几百个,会不会惨不忍睹。而且,下面的还是三种情况。例如:解
- 图片版PDF无法复制,转化成文字版的PDF后使用更方便. 我们需要用到python3.6,pypdf2,ghostscript,Python
- 如下所示:#抽象 (函数)# 1、callable 判断一个对象是否可以被调用x = 1def y(): &nbs
- 一、上传表单的HTML代码 <form action="UpLoad.php" method="post
- 在页面中的链接除了常规的方式以外,如果使用javascript,还有很多种方式,下面是一些使用javascript,打开链接的几种方式:1.
- # -*- coding: utf8 -*- #! python print(repr("测试报警,xxxx是大猪头".
- 第一步:下载mysql驱动cmd进入创建好的django项目目录:使用命令pip install mysqlclient等待安装
- 1、字符串前加 u例:u"我是含有中文字符组成的字符串。"作用:后面字符串以 Unicode 格式 进行编码,一般用在中
- 首先了解下session的机制客户端(浏览器中) cookie 作为键值,匹配服务器端的一个数据。然后客户端每次在 HTTP 请求里面带着那
- PHP mysqli_set_charset()函数设置默认客户端字符集:<?php// 假定数据库用户名:root,密码:12345
- 简介因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。但是对于最开始在浏览器中运行的javascript
- 1 递归函数的特点特点一个函数 内部 调用自己函数内部可以调用其他函数,当然在函数内部也可以调用自己代码特点函数内部的 代码 是相同的,只是
- 为什么使用事务 当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。 显示设置事务 代码如下:beg
- 前言使用 Pandas 的between 、cut、qcut 和 value_count离散化数值变量。分箱是一种常见的数据预处理技术有时也
- 本文实例为大家分享了Python/Django后端使用PIL Image生成头像缩略图的具体代码,供大家参考,具体内容如下import os
- YEAR() 函数返回一个整数值,它表示指定日期的年份,一般使用为:Year(时间),如:YEAR('2023-03-14
- 本文实例讲述了Thinkphp5.0框架视图view的循环标签用法。分享给大家供大家参考,具体如下:volist标签:<!-- 使用v
- 首先要下载:Graphviz - Graph Visualization Software安装完成后将安装目录的bin 路径加到系统路径中,
- 本篇博客会介绍如何使用python在excel和csv里实现vlookup函数的功能,首先需要简单了解一下python如何操作excel1.
- RPCHandler 和 R * roxy 的基本思路是很比较简单的。 如果一个客户端想要调用一个远程函数,比如 foo(1, 2, z=3