reproduce read playsound play example bindings python pygame

python - read - cómo jugar mp3 con pygame



reproduce audio python (4)

La función de reproducción inicia la reproducción de música, pero regresa inmediatamente. Luego, su programa llega a su fin y el objeto del pygame se destruye automáticamente, lo que hace que la música se detenga.

Como ha comentado, reproduce la música si la espera antes de salir, porque entonces el objeto del pygame no se destruye hasta que termina el ciclo while.

while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)

import pygame file = ''some.mp3'' pygame.init() pygame.mixer.init() pygame.mixer.music.load(file) pygame.mixer.music.play()

El proceso terminó con el código de salida 0. pero no reproduce nada, ¿cómo puede resolver el problema?


Prueba esto,

#!/usr/bin/env python import pygame from Tkinter import * file = ''Your MP3 here'' root = Tk() pygame.init() pygame.mixer.init() pygame.mixer.music.load(file) pygame.mixer.music.play() root.mainloop()

necesitarás instalar Tkinter, sin embargo, con suerte funcionará y no necesitarás configurar manualmente el tiempo. Si esto funcionó, por favor avíseme, lo probé en mi computadora pero a veces las cosas simplemente no funcionan. Trataré de ayudarte si puedo.


La música se detiene porque es un evento asincrónico, lo que significa que continuará con el guión. luego, el guión se detiene instantáneamente, sin darle a la música la oportunidad de comenzar. como se dijo antes, podrías usar

while pygame.mixer.music.get_busy(): pygame.time.Clock().tick(10)

sin embargo, aún mejor es pygame.event.wait() , ya que esperará a que finalicen todos los eventos asincrónicos.


Encontré una buena solución de thepythongamebook.com :

pygame.mixer.pre_init(44100, -16, 2, 2048) # setup mixer to avoid sound lag pygame.init() pygame.mixer.init() pygame.mixer.music.load(''music_01.mp3'') pygame.mixer.music.play(-1)