Пытаюсь воспроизвести звук с помощью модуля playsound
.Проблема в том, что это работает, только если в имени файла нет китайских символов.Но я хочу воспроизвести звук с китайскими иероглифами в имени файла.
Я подумал, что могу избежать этой проблемы, переименовав файл в tmp.wav
, а затем воспроизведя tmp.wav
.Теперь у меня проблема, что это работает только один раз.После этого возникает следующая ошибка:
сообщение об ошибке: строка 752, в play_now os.remove ('tmp' + wav_ext) PermissionError: [WinError 32] Процесс не может получить доступ к файлу, поскольку он находится в процессеиспользуется другим процессом: 'tmp.wav'
Я предполагаю, что playsound
не закрывает файл после его завершения воспроизведения.Это так?
Я попытался заменить False
на True
, а также добавить некоторое время сна.Конечно, я подождал, пока не убедился, что звук закончился.
import playsound as ps
import os
def play_now(event, song):
print(song)
if len(song)>0:
wav_ext = '.'+song.split('.')[-1]
if os.path.isfile('tmp'+wav_ext):
os.remove('tmp'+wav_ext)
os.rename(song,'tmp'+wav_ext)
ps.playsound('tmp'+wav_ext, False)