Seite 1 von 1

winsound !?

Verfasst: Sonntag 20. November 2005, 18:35
von snakeseven
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.

Re: winsound !?

Verfasst: Montag 21. November 2005, 01:10
von BlackJack
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.

Verfasst: Montag 21. November 2005, 15:36
von snakeseven
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/