如何删除正在播放的.wav文件?



我想使用此代码构建一个有声书,但在制作音频文件'my.wav'后,我想在每次自动收听音频后删除它,但它返回错误:PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'my.wav'.

我代码:

from pygame import mixer
import os
import pyttsx3

engine=pyttsx3.init()
engine.setProperty('rate',165)
engine.save_to_file('my name is unkown','my.wav')
engine.runAndWait()
mixer.init()
mixer.music.load('my.wav')
mixer.music.play()
os.remove('my.wav')

我想你在试图删除文件之前错过了这行代码。

mixer.music.stop()

您可以使用mixer.music.get_busy()检查音乐是否仍在播放,如果没有,然后使用mixer.music.unload()释放文件,然后删除它:

mixer.init()
mixer.music.load('my.wav')
mixer.music.play()
# wait until the playing is completed
while mixer.music.get_busy(): pass
# unload the loaded music file
mixer.music.unload()
os.remove('my.wav')

最新更新