python播放音频文件及playsound模块解除占用的3种方法
pip install playsound
播放mp3文件
from playsound import playsound
import os
def play_mp3(audio_path):
"""
播放 mp3
:param audio_path: mp3 路径
:return:
"""
playsound(audio_path)
# 删除文件(因为playsound一直占用mp3,不删除,循环就报错。)
os.remove(audio_path)
if __name__ == '__main__':
audio_path = 'audio.mp3'
play_mp3(audio_path)
使用playsound模块遇到的问题
这个模块的问题,就是无法解除占用。如果播放完后想重新播放或者进行修改就会提示拒绝访问。
例如:
当循环执行的时候
结果提示错误,因为auido.mp3文件被playsound模块占用了
python下playsound模块解除占用的3种方法
1 修改源代码:
from playsound import playsound
import os
playsound('audio.mp3')
os.remove('audio.mp3')#删除文件,防止被占用
2 修改playsound模块
在python安装目录下的
~\Python36\Lib\site-packages
找到playsound.py
用IDE打开
找到这里
增加代码 winCommand(‘close’, alias)
就ok了!
3 另一种修改playsound模块
我用windows+python,所以在playsound里的winCommand里添加上边绿框的代码
while True:
if winCommand('status', alias, 'mode').decode() == 'stopped':
winCommand('close', alias)
break
一定在“winCommand('play', alias, 'from 0 to', durationInMS.decode())”位置后添加代码。实测没问题。