Seite 1 von 2

Verfasst: Samstag 24. November 2007, 15:50
von Beltistos
Hallo,
veers hat geschrieben:Ich behaupte jetzt einfach mal dass das time.sleep für Probleme sorgt, ersetze es doch einfach einmal Testweise durch ein while True: pass;
Leider nein, es rauscht auch mit der Endlosschleife oder dem pygame-wait.
Y0Gi hat geschrieben:Ich würde da als erstes die Lautstärke sowie eventuelle Einschränkungen der nutzbaren Bitraten, VBR sowie andere Eigenschaften der Musikdaten überprüfen.
An der Datei liegt es sicher nicht, die lässt sich zum Beispiel mit Amarok perfekt abspielen. Außerdem rauscht es auch bei allen anderen Dateien, die ich getestet habe.

Sonst noch irgendwelche Ideen? :cry:

Beltistos

Verfasst: Samstag 24. November 2007, 22:25
von Y0Gi
Kann/muss man die Audioeinstellungen in Pygame mit bestimmten Optionen initialisieren? Vielleicht wird dein Soundchip falsch erkannt oder so *an die Zeiten von SB 16/Pro/AWE, Gus und Adlib erinner*

Verfasst: Sonntag 25. November 2007, 09:55
von Imperator
Könnte es nicht auch an der Hardware selbst liegen?

Verfasst: Sonntag 25. November 2007, 10:24
von Beltistos
Problem gelößt! :D
In der pygame.mixer-Dokumentation steht Folgendes:
NOTE: there is currently a bug on some windows machines which makes sound play back 'scratchy'. There is not enough cpu in the sound thread to feed the buffer to the sound api. To get around this you can increase the buffer size. However this means that there is more of a delay between the time you ask to play the sound and when it gets played. Try calling this before the pygame.init or pygame.mixer.init calls. pygame.mixer.pre_init(44100,-16,2, 1024 * 3)
Wenn man pygame.mixer mit den angegebenen Werten initialisiert, rauscht es nicht mehr. Eigentlich läuft bei mir ja Linux, aber was soll's.
Danke an alle die mir geholfen haben!

Beltistos

Verfasst: Sonntag 25. November 2007, 12:10
von Imperator
Dann noch viel Spaß beim Coden mit Python!

Re: PyGame

Verfasst: Donnerstag 13. Dezember 2007, 23:06
von nkoehring
Beltistos hat geschrieben: Mein Code:

Code: Alles auswählen

import pygame
from pygame.mixer import music
import time

pygame.mixer.init()
music.load('/home/beltistos/Test.mp3')
music.play()
time.sleep(5)
music.stop()
pygame.mixer.quit()
Beltistos
Hi... ist schon ne Weile alt der Thread, aber ich wollte nur mal erwaehnen, dass es vielleicht besser ist einfach "pygame.mixer.music.get_busy()" abzufragen, anstatt eine Endlosschleife zu basteln:

Code: Alles auswählen

def playmusic(path):
    print "Mixer: init..."
    pygame.mixer.pre_init(44100,-16,2, 1024 * 3)
    pygame.mixer.init()
    print "Mixer: loading", os.path.basename(path)
    pygame.mixer.music.load(path)
    print "Mixer: play..."
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        pygame.time.wait(200)
    print "quitting mixer..."
    pygame.mixer.quit()
    print "quitting pygame..."
    pygame.quit()
    return True