Pygame muss man .wav Datei irgendwo einfügen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

Ich habe versucht mit pygame eine Audiodatei einzufügen. Muss ich die Datei noch in den python Odner oder irgendwas in der Art verschieben?
Schonmal danke im voraus.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Duardo hat geschrieben:Ich habe versucht mit pygame eine Audiodatei einzufügen. Muss ich die Datei noch in den python Odner oder irgendwas in der Art verschieben?
Nein, musst du nicht. Auch dein eigener Programmcode sollte nicht im Ordner der Python-Installation liegen.

Vielleicht zeigst du mal deinen Code damit wir das konkrete Problem erkennen können. Ich vermute ja, dass du versuchst die Datei im falschen Ordner zu öffnen.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

@/me:

Code: Alles auswählen

import pygame

pygame.init()

sound=pygame.mixer.Sound("test.wav")
sound.play()
Ist aber sehr simpel gehalten, hab erst heute mit pygame angefangen.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Duardo
Wie komplex hättest Du Dir das denn vorgestellt?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Das funktioniert exakt dann, wenn die Datei test.wav im dem Verzeichnis liegt aus dem heraus du das Programm aufrufst. Es wäre wohl besser, wenn du den Pfad zur Datei komplett angibst. Um das flexibel zu halten bieten sich ein paar Standardfunktionen an. Man muss nur wissen, dass in einem Python-Programm __file__ den Pfad zur aktuellen Datei enthält.

Lass mal Folgendes in einem Skript laufen, dann siehst du was gemeint ist.

Code: Alles auswählen

print(__file__)
Mit den passenden Bordmitteln von Python bekommst du auch den Pfad.

Code: Alles auswählen

import os
pathname = os.path.dirname(__file__)
print(pathname)
Wenn jetzt deine Sounddatei im gleichen Verzeichnis liegt wie das Programm, dann kannst du den Pfad dorthin einfach zusammensetzen.

Code: Alles auswählen

import os
pathname = os.path.dirname(__file__)
filename = os.path.join(pathname, 'test.wav')
print(filename)
Befindet sich die Datei in einem Unterordner namens sounds, dann ist es auch nicht schwieriger.

Code: Alles auswählen

import os
pathname = os.path.dirname(__file__)
filename = os.path.join(pathname, 'sounds', 'test.wav')
print(filename)

Es ist übrigens sehr hilfreich, wenn du nicht einfach ein "geht nicht" in den Raum wirfst, sondern auch beschreibst, was du erwartest was passieren sollte, was stattdessen passiert ist und welche Fehlermeldung du gegebenenfalls bekommen hast.
BlackJack

Bezüglich der fehlenden Problembeschreibung vermute ich einfach mal das nix zu hören ist weil das Programm sofort wieder beendet wird, weil das abspielen von Sound/Musik natürlich asynchron passiert, sonst könnte man ja nicht gleichzeitig ein Spiel am laufen halten.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

@/me: Also ich habe die .wavdatei jetzt in das reingepackt was in deinem ersten Code rauskam. Wenn ich das jetzt aber ausführe höre ich immer noch nichts.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

BlackJack hat dir die Lösung schon verraten.
Das Leben ist wie ein Tennisball.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Duardo hat geschrieben:Wenn ich das jetzt aber ausführe höre ich immer noch nichts.
Dann setz doch testweise mal Folgendes ans Ende deines Codes:

Code: Alles auswählen

import time
time.sleep(5)
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

Hm, Ich höre immer noch nichts.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

"Funktioniert nicht" ist keine Fehlerbeschreibung. Was passiert denn?
Das Leben ist wie ein Tennisball.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

EyDu hat geschrieben:"Funktioniert nicht" ist keine Fehlerbeschreibung. Was passiert denn?
Es passiert nichts. Ich sehe nichts und ich höre nichts.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

Es hat doch funktioniert. Ich hab das mit einem Button gemacht und plötzlich gings. Danke an alle für die Hilfe. :D

Code: Alles auswählen

import pygame
from Tkinter import *
     
pygame.init()

def sound():
    sound=pygame.mixer.Sound("test.wav")
    sound.play()

button=Button(text="Knopf", command=sound)
button.pack()

mainloop()

Antworten