winsound !?

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
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Sonntag 20. November 2005, 18:35

Hallo,
Mit nachstehenden Zeilen lade ich ein WAV-File und spiele es über den angegebenen Pfad wieder ab. Welche Rolle spielt f ?
Wenn f kein String ist, der die Daten des WAV-Files enthält, was ist f dann ?
Jedenfalls bekomme ich eine Fehlermeldung, wenn ich "f" statt "path" in winsound eingebe:

Code: Alles auswählen

import wave,winsound

path = "E:/Testwav.wav"
f = wave.open (path,"r")

winsound.PlaySound(path,winsound.SND_PURGE) #spielt korrekt ab
winsound.PlaySound(f,winsound.SND_PURGE)      # Fehlermeldung
Die Methoden getnframes() und getsampwidth() liefern widerum korrekt ab:

Code: Alles auswählen

len = f.getnframes ()     #12752
wd  = f.getsampwidth ()   #2
:roll:

Edit (Leonidas): Code in Python-Tags gesetzt.
BlackJack

Montag 21. November 2005, 01:10

snakeseven hat geschrieben:Hallo,
Mit nachstehenden Zeilen lade ich ein WAV-File und spiele es über den angegebenen Pfad wieder ab. Welche Rolle spielt f ?
Zum Abspielen gar keine. Die beiden Module sind für unterschiedliche Zwecke. `winsound` um die Sound-API von Windows anzusprechen, z.B. WAV-Dateien abspielen und `wave` zum lesen und schreiben von WAV-Dateien. Das `wave` Modul gibt es unter allen Plattftormen, `winsound` natürlich nur unter Windows.
Wenn f kein String ist, der die Daten des WAV-Files enthält, was ist f dann ?
Ein `wave`-Objekt mit Methoden zum ermitteln der Kanalanzahl, Samplegrösse etc. und zum lesen oder schreiben von Sampledaten. Das braucht man, wenn man WAV-Daten lesen, analysieren oder selbst erzeugen möchte.
Jedenfalls bekomme ich eine Fehlermeldung, wenn ich "f" statt "path" in winsound eingebe:

import wave,winsound

path = "E:/Testwav.wav"
f = wave.open (path,"r")

winsound.PlaySound(path,winsound.SND_PURGE) #spielt korrekt ab
winsound.PlaySound(f,winsound.SND_PURGE) # Fehlermeldung
Wenn Du Probleme mit Fehlermeldungen beschreibst, dann ist es sehr hilfreich, wenn Du die Fehlermeldung mitlieferst. Am besten 1:1 in das Forum kopieren. Solche "Backtraces" sind meistens sehr informativ.

In diesem Fall liegt's einfach daran das `PlaySound` nichts mit den `wave`-Objekten anfangen kann.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Montag 21. November 2005, 15:36

Danke dir,
habe jetzt tk-snack installiert und die Soundsachen laufen ohne Zicken einfach und direkt. Kann ich nur empfehlen !

http://www.speech.kth.se/snack/
Antworten