2017-06-21 3 views
0

je tentais de faire un texte au programme GUI de la parole, voici le code pour TTSpygame.mixer.quit() ne fonctionne pas

b = a.get() 

blabla = b 
tts = gTTS(text=blabla, lang='en-us') 
try : 
    tts.save("F:/tesst.mp3") 
except : 
    pass 
pygame.init() 
pygame.display.set_mode((2, 1)) 
try: 
    pygame.mixer.music.load("F:/tesst.mp3") 
except : 
    pass 
mixer.music.play(0) 

clock = pygame.time.Clock() 
clock.tick(10) 
while pygame.mixer.music.get_busy(): 
    pygame.event.poll() 
    clock.tick(10) 
mixer.music.set_endevent() 
mixer.quit() 
os.remove("F:/tesst.mp3") 

j'obtenir le fichier indiquant l'erreur est déjà utilisé par un autre programme, donc je ne peux pas exécuter le programme de manière récursive. ici est l'erreur

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'F:/tesst.mp3'

Répondre

0

On dirait que vous n'êtes pas libérer le fichier après son chargement. Essayez avec un gestionnaire de contexte et de transmettre un objet de fichier au lieu d'un fichier à la méthode de charge:

... 

with open('F:/tesst.mp3', 'rb') as file_object: 
    pygame.mixer.music.load(file_object) 

mixer.music.play(0) 

... 

Une fois sorti du gestionnaire de contexte, la ressource sera publié.

+0

Ne fonctionne pas, je reçois l'erreur comme 'en parler pygame.mixer.music.load (fichier_objet) pygame.error: Impossible de lire à partir de RWops' –