2012-04-04 8 views
0

Ich versuche, ein Lied mit Pygame zu spielen und es spielt nicht das Lied.pygame funktioniert nicht

Mein Code:

import pygame,time 
pygame.init() 
print "Mixer settings", pygame.mixer.get_init() 
print "Mixer channels", pygame.mixer.get_num_channels() 
pygame.mixer.music.set_volume(1.0) 
pygame.mixer.music.load('C:/1.mp3') 
print "Play" 
pygame.mixer.music.play(0) 
while pygame.mixer.music.get_busy(): 
    print "Playing", pygame.mixer.music.get_pos() 
time.sleep(1) 
print "Done" 

I-Ausgang bin immer als

Mixer settings (22050, -16, 2) 
Mixer channels 8 
Play 
Done 

Antwort

1

Ihr Code funktioniert für mich, auf Lubuntu 11.10 läuft Python 2.7.2, mit einem MP3 ich von einem Youtube-Clip umgewandelt. Hast du überprüft, dass die mp3 nicht null Länge ist? Hast du eine WAV-Datei ausprobiert?

Fehlen andere Erklärungen, denke ich, dass es denkbar ist, dass pygame.mixer.music.get_busy() könnte falsch zurückgeben, wenn der play(0) Aufruf ist nicht mit dem Start seiner Prozess oder Thread beendet. Dadurch würde Ihr Code die while-Schleife überspringen, "Fertig" drucken und beenden, das Musik-Player-Objekt löschen und die Wiedergabe beenden, bevor Sie etwas hören. Wenn dies das Problem ist, könnten Sie so etwas wie dies nach play(0) und vor print Done versuchen:

pygame.mixer.music.set_endevent(pygame.USEREVENT) 
finishedPlaying = False 

while not finishedPlaying: 
    for event in pygame.event.get(): 
     if event.type == pygame.USEREVENT: 
      finishedPlaying = True 
      break # only because we don't care about any other events 
    print "Playing", pygame.mixer.music.get_pos() # will print -1 on the last iteration 
0

in den Kommentaren der pygame.mixer.music.play ich dieses gefunden:

November 18, 2010 7:30pm - Anonymous 
Work Exmpl: 

pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096) 
sound = pygame.mixer.Sound('Time_to_coffee.wav').play() 

auch scheint es, dass Ihre s ending 0 als die Anzahl der Male, die Sie es wiederholen möchten Dank Iskar Jarak, -1 ist unendlich.

http://www.pygame.org/docs/ref/music.html#pygame.mixer.music.play

+0

Dank für die Lösung. Ich habe es versucht. Aber es spielt immer noch nicht das Lied. – chom

+0

"Beachten Sie, dass MP3-Unterstützung begrenzt ist. Auf einigen Systemen kann ein nicht unterstütztes Format das Programm zum Absturz bringen, z. B. Debian Linux. Verwenden Sie stattdessen OGG." – apple16

+1

"Es scheint auch, dass Sie 0 senden, wie oft Sie es abspielen möchten, -1 ist unendlich." Das ist falsch - das Argument ist die Anzahl der Wiederholungen. 0 sollte das Lied einmal spielen. –