Sorry dass ich den alten Beitrag nochmal hochhole. Aber ich hab grad ein ähnliches Problem.
Nur dass der Code hier nicht (mehr?) funktioniert. Ich habe die RecTest-Demo von BassEnc genommen, dort die entsprechende ENCODEPROC-Callback-Prozedur hinzugefügt und einen Breakpoint reingesetzt. Der Breakpoint wird zwar als aktiv angezeigt, die Aufnahme läuft (keine Fehlermeldungen), ich kann sie auch wieder abspielen, aber die Callback-Funktion wird nie aufgerufen. Die RecordingCallback jedoch immer und Result ist dort auch immer True.
Delphi-Quellcode:
// **** Wird immer aufgerufen, Result immer True
function RecordingCallback(channel: HRECORD; buffer: Pointer; length, user: DWORD): Boolean;
stdcall;
begin
Result := Bool(BASS_Encode_IsActive(channel));
// continue recording if encoder is alive
end;
// **** Wird nie aufgerufen
// ENCODEPROC = procedure(handle:DWORD; channel:DWORD; buffer:Pointer; length:DWORD; user:Pointer); {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF};
procedure RecordingStatusProc(
handle:DWORD; channel:DWORD; buffer:Pointer; length:DWORD; user:Pointer);
stdcall;
begin
ShowMessage('
Test');
end;
// ...
rchan := BASS_RecordStart(44100, 2, BASS_RECORD_PAUSE, @RecordingCallback, 0);
if rchan = 0
then
// ...
if (BASS_Encode_Start(rchan, commands[encoder], BASS_ENCODE_AUTOFREE
{$IFDEF UNICODE} or BASS_UNICODE
{$ENDIF}, @RecordingStatusProc, 0) = 0)
then
// ...
Jemand eine Idee?