Ich habe folgendes Code-Schnipsel:
Code: Alles auswählen
initSound()
LoadSound(0, "audio.wav")
PlaySound(0)
Debug GetSoundFrequency(0)
Delay(5000)
- 16-bit signed integer
- PCM
- 48000 Hz
- Stereo
Meine Soundkarte ist systemweit (PulseAudio) auf 44100 Hz eingestellt (hat andere Gründe und es gibt sicher mehrere User, die diese Einstellung verändert haben).
Nun wird meine audio.wav in der Linux-Version meines Programmes zu langsam abgespielt (nämlich als 44100 Hz). Da fehlt das Resampling von 48000 Hz auf 44100 Hz, damit es passt. Stattdessen wird langgezogen.
In allen anderen Playern wird die Datei korrekt abgespielt und unter Windows habe ich das Problem auch nicht.
Was muss ich tun, damit die Geschwindigkeit stimmt? Ich vermute mal, es gibt nicht ohne Grund SetSoundFrequency().
Damit die Samplerate nachträglich auf 48000 Hz setzen, bewirkt gar nichts.
Ist hier mit "SoundFrequency" überhaupt die Sample-Rate gemeint (ich finde die Doku an dieser Stelle zu ungenau und Soundfrequenz ist auch nicht Sample-Rate)? Weil, wenn ich den Wert verringere, läuft es um einen gewissen (mir unbekannten) Faktor schneller statt langsamer und diese Einstellung ist nur in groben Stufen möglich.
GetSoundFrequency() liefert in meinem Fall -17536 (negativ Sollte dann eigentlich rückwärts laufen ).