Hallo,
ich habe folgendes Problem: Ich habe eine Klasse geschrieben, die mir die Arbeit mit der Bass Komponente erleichtern soll. Jetzt habe ich versucht eine Callbackfunktion einzubinden, die aktiv wird, sobald ein Lied an einer bestimmte Stelle angekommen ist. Auf diese Art und Weise will ich Crossfading implementieren, ohne einen Timer, oder ähnliches benutzen zu müssen.
Nur habe ich jetzt das Problem, dass beim Aufruf der Callbackfunktion ein "
Access Violation" gemeldet wird.
Ich verstehe nicht, wieso das Passiert.
Hier mal der betreffende Quelltext...
Delphi-Quellcode:
procedure Tbassfader.SetFadeSync(strX : HSTREAM);
var max_laenge : float;
fade_start : QWord;
procedure CallbackSync(SyncHandle: HSYNC; Channel, data, user: DWORD); stdcall;
begin
PlayFadeFile(AutoFadeFile,AutoFadeTime);
end;
begin
max_laenge := BASS_ChannelBytes2Seconds(strX,BASS_StreamGetLength(strX));
fade_start := BASS_ChannelSeconds2Bytes(strX, max_laenge - (AutoFadeTime/1000));
BASS_ChannelSetSync(strX,BASS_SYNC_POS,fade_start,@CallbackSync,Dword(self));
end;
Sobald ich in der Callbackfunktion auf eine Variable zugreife oder eine Funktion ausführe, die ein Teil der Klasse ist, gibt es diese Fehlermeldung.
Vielen Dank schonmal für eure Hilfe