Einige hier verwenden die Bass Library.
Habe mir die Mühe gemacht meinen Code nochmals zu analysieren inklusive eingeschalteter Bereichs Prüfung.
Das Problem ist folgendes.
BASS_ChannelGetData und andere Funktionen verursachen ERangeError's (manchmal) weil hier DWord unsigned (LongWord 0 bis 4294967295.) verwendet wird.
Treten also minus werte auf dann kracht es.
Die Library von Bass verschickt aber mit seinem Archiv die
API Definiert wie folgt.
function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD;
Zitat:
But note, that BASS uses signed values, e.g. BASS_ChannelGetData() might return -1 in certain cases - see the docs.
Nun frage ich mich warum definiert man so eine Funktion bewusst falsch obwohl man ganz genau weis das hier signiert Werte als Rückgabe geliefert werden.
Also muss ich die Bereichsprüfung ausgeschaltet lassen oder gibt es vergleichbare signierte Data Typen für DWord?
Wenn nicht ist diese Library ohne ausgeschalteter Bereichsprüfung
bzw. ohne jedes einzelne Sample vorher auf negative werte zu analysieren nicht verwendbar mit Delphi.
gruss