文中用到pygame及mutagen库,安装:
pip install pygame
pip install mutagen
以下为具体实现代码
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() # 停止播放
苹果芯片加持下PyTorch如何利用GPU和NPU?
NumPy保存和加载数据时如何处理None值?
遇到Python读取Excel测试用例时出现“list index out of range”错误,可以按照以下步骤解决:检查Excel文件内容:确保Excel文件中的数据完整且格式正确。错误常见于尝试访问不存在的列表索引,因此确认每一行都有足够的数据。查看代码逻辑:检查读取Excel文件的代码,特别是涉及到列表索引的部分。确保你访问的索引在列表的有效范围内。例如,如果列表长度为5,索引只能从0到4。调试代码:在可能出错的地方添加打印语句或使用调试器,查看变量的值和列表的长度,确保你在正确的位置访问正确的
微信扫码后小窗口变空白?解决方法在这里!
TCP端口占用:服务端程序退出后,端口为何依然被占用且如何解决?
初学者 Python 项目:使用 OpenCV 和 Mediapipe 构建增强现实绘图应用程序