python实现mp3文件播放的具体实现代码
作者:ApocalypseScarecrow
前段时间在搞一个基于python的语音助手,其中需要用到python播放音频的功能,下面这篇文章主要给大家介绍了关于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() # 停止播放
总结
到此这篇关于python实现mp3文件播放的文章就介绍到这了,更多相关python实现mp3文件播放内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!