Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: bassenc recording

  Alt 2. Sep 2014, 05:32
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?
  Mit Zitat antworten Zitat