Pygame, los sonidos no se reproducen.

Estoy intentando reproducir archivos de sonido (.wav) con pygame, pero cuando lo inicio nunca escucho nada.
Este es el código:

import pygame pygame.init() pygame.mixer.init() sounda= pygame.mixer.Sound("desert_rustle.wav") sounda.play() 

También intenté usar canales pero el resultado es el mismo.

Related of "Pygame, los sonidos no se reproducen."

Tu código juega desert_rustle.wav bastante bien en mi máquina (Mac OSX 10.5, Python 2.6.4, pygame 1.9.1). ¿Qué versiones de SO, Python y pygame estás usando? ¿Puede escuchar el .wav OK por otros medios (por ejemplo, open en un terminal de Mac o start en una consola de Windows seguido del nombre de archivo / ruta al archivo .wav ) para garantizar que el archivo no esté dañado? Es difícil depurar su problema específico (que no es con el código que da) sin poder reproducirlo y sin tener todos estos detalles cruciales.

Para mí (en Windows 7, Python 2.7, PyGame 1.9) tengo que eliminar la llamada pygame.init () para que funcione o si pygame.init () se queda para crear al menos una pantalla en pygame.

Mi ejemplo

 import time, sys from pygame import mixer # pygame.init() mixer.init() sound = mixer.Sound(sys.argv[1]) sound.play() time.sleep(5) 

No tenía sonido al tocar el mezclador. Sonido, pero comenzó a funcionar después de que creé la ventana , este es un ejemplo mínimo, simplemente cambie su nombre de archivo, ejecute y presione la tecla ARRIBA para reproducir:

 WAVFILE = 'tom14.wav' import pygame from pygame import * import sys mixer.pre_init(frequency=44100, size=-16, channels=2, buffer=4096) pygame.init() print pygame.mixer.get_init() screen=pygame.display.set_mode((400,400),0,32) while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: if event.key==K_ESCAPE: pygame.quit() sys.exit() elif event.key==K_UP: s = pygame.mixer.Sound(WAVFILE) ch = s.play() while ch.get_busy(): pygame.time.delay(100) pygame.display.update() 

sounda.play () devuelve un objeto que es necesario para reproducir el sonido. Con él también puedes averiguar si el sonido todavía se está reproduciendo:

 channela = sounda.play() while channela.get_busy(): pygame.time.delay(100) 

Tuve el mismo problema con Windows 7. En mi caso, no estaba ejecutando el código como Administrador. No me preguntes por qué, pero al abrir una línea de comandos como administrador me la arregló.

Lo que necesitas hacer es algo como esto:

  import pygame import time pygame.init() pygame.mixer.init() sounda= pygame.mixer.Sound("desert_rustle.wav") sounda.play() time.sleep (20) 

La razón por la que le dije al progtwig que durmiera es porque quería una manera de mantenerlo funcionando sin tener que escribir mucho código. Tuve el mismo problema y el sonido no se reproducía porque el progtwig se cerró inmediatamente después de intentar reproducir la música.

En caso de que desee que el progtwig haga algo, simplemente escriba todo el código necesario pero asegúrese de que dure el tiempo suficiente para que el sonido se reproduzca por completo.

Creo que lo que necesitas es pygame.mixer.music:

 import pygame.mixer from time import sleep pygame.mixer.init() pygame.mixer.music.load(open("\windows\media\chimes.wav","rb")) pygame.mixer.music.play() while pygame.mixer.music.get_busy(): sleep(1) print "done" 
 import pygame, time pygame.mixer.init() pygame.init() sounda= pygame.mixer.Sound("beep.wav") sounda.play() 

pygame.init() va después de mixer.init() . Funciono para mi

Solo intente volver a guardar su archivo wav para asegurarse de que su información de frecuencia. O puedes grabar un sonido para asegurarte de su frecuencia, bits, tamaño y canales. (Yo uso este método para resolver este problema)

Sólo inténtalo:

 import pygame.mixer from time import sleep pygame.mixer.init() pygame.mixer.music.load(open("\windows\media\chimes.wav","rb")) print "" pygame.mixer.music.play() while pygame.mixer.music.get_busy(): sleep(1) print "done" 

Esto debería funcionar. Solo tiene que agregar print "" y el sonido habrá tenido tiempo de cargarse.

Me ha pasado algo así. Tal vez usted tiene el mismo problema? Intenta usar una ruta absoluta:

 import pygame pygame.init() pygame.mixer.init() sounda= pygame.mixer.Sound("/absolute_path/desert_rustle.wav") sounda.play() 

Donde obviamente se reemplaza abslute_path con su ruta absoluta real;)

buena suerte.

 import pygame pygame.init() sound = pygame.mixer.Sound("desert_rustle.wav") pygame.mixer.Sound.play(sound) 

Esto funcionará en python 3

5 años de respuesta tardía, pero espero poder ayudar a alguien … 🙂

En primer lugar, no necesitas la línea “pygame.init ()”. En segundo lugar, haga un bucle y reproduzca el sonido que está dentro, o de lo contrario se iniciará pygame.mixer, y detenga la reproducción de inmediato.

Conseguí que este código funcionara bien en mi Raspberry pi con Raspbian OS. Tenga en cuenta que utilicé un bucle while que continúa repitiendo el sonido forver.

 import pygame.mixer pygame.mixer.init() sounda = pygame.mixer.Sound("desert_rustle.wav") while True: sounda.play()