Danke für die schnelle Antwort.
Delphi-Quellcode:
(* PlayButtonClick || Wiedergabe der Aufnahme *)
procedure TRecordForm.PlayExecute(Sender: TObject);
var EndSync: HSYNC;
begin
case BASS_ChannelIsActive(chan)
of
BASS_Active_Stopped:
begin
BASS_ChannelPlay(chan, True);
EndSync := Bass_ChannelSetSync(chan, Bass_SYNC_END, 0, @SyncProc,
nil);
ToggleStatus(1);
end;
BASS_Active_Playing:
begin
BASS_ChannelPause(chan);
ToggleStatus(2);
end;
BASS_Active_Paused:
begin
BASS_ChannelPlay(chan, False);
ToggleStatus(1);
end;
end;
// case
end;
// procedure PlayExecute
procedure SyncProc(
Handle: HSync; Channel, Data: DWORD; User: DWORD);
stdcall;
begin
PostMessage(RecordForm.Handle, um_MusicEnd, 0, 0);
end;
procedure TRecordForm.MusicEnd(
var Msg: TMessage);
begin
// hier wird reingesprungen wenn der Stream endet
// der mit ..
MessageDlg('
Dies ist ein Test.');
// vorher in deiner Play Function initialisiert wurde (**** nicht hier ****)
// hier sollte dann dein Code stehen was du tun willst wenn der stream beendet ist.
end;
So sieht das jetzt bei mir aus, allerdings kommt beim Compilieren die Fehlermeldung, dass eine Variable erforderlich ist und der Debugger springt auf folgende Zeile:
EndSync := Bass_ChannelSetSync(chan, Bass_SYNC_END, 0, @SyncProc, nil);
Hab ich da was verkehrt gemacht?