python实现mp3文件播放的代码分析
本文使用pygame实现播放mp3,文中用到pygame及mutagen库,安装:
pip install pygame
pip install mutagen
以下代码实现mp3播放类,包含功能如下:
设置mp3文件
mp3长度
暂停播放
继续播放
停止播放
调整播放进度
获取播放进度
一切尽在不言中,以下为具体实现代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 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如下:
1 2 3 4 5 6 7 8 9 10 | 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() # 停止播放
|
本文地址:http://9zoku.com/wlbc/467.html
版权声明:本文内容来自互联网,该文版权归原作者所有。本站仅提供信息存储空间服务,不拥有文章所有权,不承担相关法律责任。若对本内容有异议或投诉请与管理员联系 5604882#qq.com(请将#换成@)。
版权声明:本文内容来自互联网,该文版权归原作者所有。本站仅提供信息存储空间服务,不拥有文章所有权,不承担相关法律责任。若对本内容有异议或投诉请与管理员联系 5604882#qq.com(请将#换成@)。