方法一:playsound module

playsound module是一个可以跨平台使用的库,不需要其他依赖的库,直接利用pip install playsound安装就行。

1
2
from playsound import playsound
playsound('mysong.mp3')

只需要输入上面两行代码就可以实现,可以用来播放mp3和wav文件等,但有时会出现找不到文件的错误,并跳出执行环境,从网上查了很多,有的是说文件名出现空格的缘故,通过以下方式处理,运行时依然出问题。

1
2
3
speakpath = "mysong.mp3"
speakpath = speakpath.replace(" ", "%20")
playsound(speakpath)

方法二:play_mp3

看了看是2020年10月份新出的第三方库,比较简单,两行代码;调用前需要通过Pip install Play_mp3安装。

1
2
import Play_mp3
Play_mp3.play(filename-here)

我目前暂时在使用这种方式来播放MP3的文件。

方法三:pydub

可以通过pip安装,pydub还能调用底层的PyAudio和ffmpeg库。

1
2
3
4
5
6
from pydub import AudioSebment

from pydub.playback import play
song = AudioSegment.from_wav(‘mysong.wav’)

play(song)

方法四:snack sound kit

可以播放WAV、AU、AIFF、MP3、CSL、SD、SMP和NIST/Sphere类型的文件,可以通过 apt install python3-tksnack 安装,这个库需要Tkinker做支撑,也就是说要使用它得先安装Tkinter。

1
2
3
4
5
6
7
from Tkinker import *
import tkSnack
root = Tk()
tkSnack.installzeSnack(root)
snd = tkSnack.Sound()
snd.read(‘mysong.mp3’)
snd.play(blocking = 1)

方法五:本地播放器

可以使用电脑自身的播放器软件播放音频文件,在windows上需要指定默认的播放器即可,在Linux等上面可以通过终端安装播放软件,但是效果感知不好。

1
2
3
4
5
import os

file = ‘mysong.mp3’

os.system(‘mpg123’+ file)

循环播放:pygame

1
2
3
4
5
6
7
8
9
10
11
import pygame

file = r'data/mp3/warring.mp3' # 要播放的歌曲本地地址
pygame.mixer.init() # mixer的初始化
music = pygame.mixer.music.load(file) # 载入一个音乐文件用于播放

while True:
# 检查音乐流播放,有返回True,没有返回False
# 如果没有音乐流则选择播放
if pygame.mixer.music.get_busy() == False: # 检查是否正在播放音乐
pygame.mixer.music.play() # 开始播放音乐流