Beknackte Soundwiedergabe

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beknackte Soundwiedergabe

Beitrag 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. :)
Zuletzt geändert von Vermilion am 18.06.2009 19:45, insgesamt 2-mal geändert.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Error 404 ;-)
(\/) (°,,,°) (\/)
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag 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"... <)
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Antworten