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
0
投稿
猜你喜欢
- 1. resize函数说明 OpenCV提供了resize函数来改变图像的大小,函数原型如下:void resiz
- 一、文件操作1、文件的概念1.文件就是计算机暴露给用户操作硬盘的快捷方式2.计算机的文件,就是用来储存某种信息的数据3.在计算机中,文件是以
- Python 语句语句是 Python 解释器解析和处理的基本指令单元。通常解释器按顺序一个接一个的执行语句。在 REPL 会话中,语句在输
- 在填写表单的时候为了让用户有更好的体验,有时需要根据用户的输入出现提示共用户选择,我这个就是根据输入的内容,从数据库取出相关内容以供选择,这
- location是javascript里边管理地址栏的内置对象,比如location.href就管理页面的url,用location.hre
- 在我们写样式的时候,页面的CSS在经历几个版本的修改之后,可能有些样式已经用不到了,或许将某些样式更名了而原来的忘了删除,总之页面中可能存在
- jQuery 真是一个非常伟大的 javascript library,至少在我不会写 JS 的时候第一时间接触了它,虽然还有其他很多优秀的
- 如下所示:import picklewith open(filename, 'rb') as f: datadict = p
- 本文代码来之《数据分析与挖掘实战》,在此基础上补充完善了一下~代码是基于SVM的分类器Python实现,原文章节题目和code关系不大,或者
- 一、 在数据库排序查询优化上的差异。在讲解这个内容之前,为了读者能够清楚我讲的内容,我要先谈一个概念。命中率,它是指从内存中取得数据而不从磁
- 1、矩阵加法使用a = np.random.random((3,3))b = np.random.randint(0,9,(3,3))ad
- 一直希望自己对Web设计的色彩把握的更好些,所以手头上就备了一份图片版的配色表,对色彩的搭配有了很多的提高,今天发现了这套非常完整的Web版
- Python 中 list.sort() 是列表中非常常用的排序函数, key 参数可以对单个属性进行排序。但是想要实现类似 sql 中 o
- 本文实例讲述了asp.net C#实现解压缩文件的方法。一共给大家介绍了三段代码,一个是简单的解压缩单个zip文件,后一个可以解压批量的大量
- 本文实例为大家分享了python实现超市管理系统的具体代码,供大家参考,具体内容如下这个相比上个程序简单很多,首先他没有太过复杂的逻辑关系,
- 前段时间和哥们胡侃的时候还说腾讯抄的有水平,不过这次我溴了,腾讯房产被新浪乐居给幽默了一把。乐居:http://bj.house.sina.
- 前言我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案。在众多数据库中,MySQL数据库算是入门比较简单、语法比较简单,
- PHP str_split() 函数实例把字符串 "Hello" 分割到数组中:<?php print_r(str
- 本文实例为大家分享了python实现单机五子棋对战的具体代码,供大家参考,具体内容如下 引入pygame模块 # 1、引
- 一个功能的实现,可以用多种语句来实现,比如说:while语句、for语句、生成器、列表推导、内置函数等实现,然而他们的效率并不一样。写了一个