网络编程
位置:首页>> 网络编程>> Python编程>> python实现mp3文件播放的具体实现代码

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
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com