Seite 1 von 1

Beknackte Soundwiedergabe

Verfasst: 18.06.2009 15:20
von Vermilion
/:->

Das Thema gab es vor längerer Zeit schon mal in etwa, jedoch ohne irgendeine Lösung. Im englischen Forum ist sogar noch weniger dazu zu finden.

Wie der Titel diesen Threads schon sagt geht es um die wörtlich beknackte Soundausgabe von PureBasic. Ich meine, das habe ich früher auch schon bei OGG Vorbis Audio Dateien bemerkt.

Ich habe einen Sound. Der wird von meinem Programm geladen. Und dann wiedergegeben. Das Problem: PlaySound() veranlasst zu Beginn ein kurzes (immer etwas anderes) Knacken. Das Seltsame daran ist, es tritt nur bei FLAC Dateien (vielleicht OGG auch, habe ich jetzt nicht getestet). Die Dateien sind stereo, 44100Hz. Die Länge ist wohl kaum von Belang, da es bei den knapp einer Sekunde langen Tönen sowie dem 2 Minütigen auftritt. Winamp spielt sie einwandfrei ab, über die Missgeburt von Windows Media Player muss man nicht mal reden, VLC macht auch alles ohne Probleme.
Falls jemand auf die Idee kommt, ich solle mit Audacity die Amplituden des Sounds checken, kann ich schon vorwegnehmen, dass ich die Sounds selber in einer DAW erstellt habe, und die dort genug unter Maximalpegel bleiben.

Hat jemand eine Idee, wie sich das verhindern lässt?

Es ist recht "unschön", und Wave Dateien will ich nicht verwenden, da dieses Format uralt ist und unkomprimiert. Vorallem weil ich auch Audiodateien verwende, die mehr als nur ein kurzer Klick sind. Und großartig externe Bibliotheken einbinden wäre auch etwas doof wegen Plattformunabhängigkeit, schätze ich mal. :|



Wer es testen möchte, hier ein Beispielquelltext:

Code: Alles auswählen

If InitSound() = #False
	
	MessageRequester("Fehler", "Konnte DirectSound nicht initialisieren!")
	End
	
EndIf

UseFLACSoundDecoder()

If LoadSound(0, "Sounds/Music/Menu.flac") = #False
	
	MessageRequester("Fehler", "Konnte Sounddatei nicht laden!")
	End
	
EndIf

PlaySound(0)
MessageRequester("Sound", "Solange dieser Dialog angezeigt wird, wird der Sound wiedergeben.")
StopSound(0)
*Erfordert PureBasic 4.20 oder neuer, ansonsten muss alles auf OGG Vorbis umgestellt werden.

ZIP Archiv mit dem obigen Beispielquelltext und einem Kompilat davon sowie dem Sound:

http://www.thenameless.de/extern/pbflac.zip (4,58 MegaByte)

Wenn heruntergeladen und getestet, bitte berichten. :)

Verfasst: 18.06.2009 15:24
von KeyKon
Error 404 ;-)

Verfasst: 18.06.2009 15:35
von Vermilion
Jetzt funktioniert der Link.

HAHA! Ich glaube ich habe einen Bug entdeckt! Wenn man UseFLACSoundDecoder() und UseOGGSoundDecoder() gemeinsam verwenden will, lädt er keine OGG Sounds mehr!

So, das mal als Bug im englischen Forum gepostet. Der Sound ist auch nur bei FLAC so beknackt...

Naja, für mich hat sich das Thema erstmal erledigt, doch lieber OGG, wobei "verlustbehaftet"... <)