Mitpygame Musik abspielen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Lou Cyphr3
User
Beiträge: 59
Registriert: Donnerstag 6. Juli 2017, 00:04

Hallo hab gerade mal einen Test laufen lassen um aus nem pythonscript Musik auf einen Screen abspielen zulassen.

Code: Alles auswählen

import pygame

pygame.init()
screen = pygame.display.set_mode((640,600))
pygame.mixer.music.load('datei.wav')

pygame.mixer.music.play(-1,0.0)
circle = pygame.draw.circle(screen, (50,30,90),(90,30),16,5)

screen.blit(screen,circle)

while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
            

pygame.display.update()


läuft auch soweit, bekomm aber folgende Fehlermeldung.

[codebox=text file=Unbenannt.txt]Traceback (most recent call last):
File "musiktest.py", line 15, in <module>
for event in pygame.event.get():
pygame.error: video system not initialized[/code]

Warum?
Cours, camarade, le vieux monde est derrière toi!
Benutzeravatar
_Inducer_
User
Beiträge: 3
Registriert: Donnerstag 26. Oktober 2017, 07:37
Wohnort: Osthessen

Meiner Meinung nach musst du erstmal das "pygame.display.update()" in die while Schleife bringen, damit das Bild auch immer wieder aktualisiert wird. Bei dir wird der Kreis nur angezeigt wenn die Schleife verlassen wird.
Da beginnt das nächste Problem, du schließt pygame mit dem pygame.quit() Befehl und danach wird der pygame.update() Befehl ausgeführt, obwohl kein pygame mehr da ist.

Teste es mal so:

Code: Alles auswählen

import pygame
pygame.init()
screen = pygame.display.set_mode((640,600))
#pygame.mixer.music.load('datei.wav')
#pygame.mixer.music.play(-1,0.0)
circle = pygame.draw.circle(screen, (50,30,90),(90,30),16,5)
running = True
while running:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            running = False
    pygame.display.update()
pygame.quit()
Lou Cyphr3
User
Beiträge: 59
Registriert: Donnerstag 6. Juli 2017, 00:04

Leider auch nicht. Mit deinem Skript ist zwar im screen ein kleiner Kreis zusehen, aber er öffnet nur eine Sekunde und gibt die gleiche Fehlermeldung aus.
Cours, camarade, le vieux monde est derrière toi!
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie startest du das? Kommandozeile oder über eine IDE?
Lou Cyphr3
User
Beiträge: 59
Registriert: Donnerstag 6. Juli 2017, 00:04

Über das Terminal.
Cours, camarade, le vieux monde est derrière toi!
Antworten