如何在Windows上使用pygame多次编写和播放相同的.mp3文件?

时间:2017-04-24 03:11:40

标签: python pygame

在Linux上,以下示例正常工作:

import pygame
from gtts import gTTS

pygame.mixer.init()

t = 'temp.mp3'
for i in range(5):
    gTTS(str(i)).save(t)
    pygame.mixer.music.load(t)
    pygame.mixer.munic.play()

这将播放0-4的数字。

在Windows上,相同的代码将导致错误:

PermissionError: [Errno 13] Permission denied: 'temp3.mp3'

i==1时。也就是说,它在第二个循环中崩溃了。崩溃发生在gTTS.save内:

with open(savefile, 'wb') as f: 
    self.write_to_fp(f)

作为一种解决方法,我也尝试过:

with tempfile.TemporaryFile() as t:
    gTTS(str(i)).save(t)
    pygame.mixer.music.load(t)
    pygame.mixer.munic.play()

但得到错误

error: Couldn't read from RWops     

值得注意的是,这是一个每次都失败的最小例子。在我的完整代码中,我经常不经常编写和播放,这是成功的,我可以在同一个脚本中多次从temp.py播放。只有当我尝试多次写入和读取背靠背时,才会出现此问题。

0 个答案:

没有答案