Einzelnen Beitrag anzeigen

Ducksoul

Registriert seit: 19. Apr 2006
Ort: Ilmenau
87 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Ende von Aufnahme erkennen 'bass.dll'

  Alt 26. Aug 2008, 13:09
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?
Franz
  Mit Zitat antworten Zitat