Mam problem z zatrzymaniem odtwarzanego utworu, to raz.
Dwa to potrzebny mi parametr w stylu "ASYNC", które nie będzie zawieszał programu, gdy utwór jest dłuższy niż kilkadziesiąt sekund.

uses
 Bass;

private
  procedure OdtworzDzwiek(const Plik: string);

procedure TForm1.OdtworzDzwiek(const Plik: string);
var
 Han: Cardinal;
begin
 if FileExists(ExtractFilePath(Application.ExeName) + 'bass.dll') then
   begin
    BASS_Init(1, 44100, 0, Handle, nil);
    BASS_Start;

    Han := BASS_StreamCreateFile(False, pChar(Plik), 0, 0, 0);

    if BASS_ChannelIsActive(Han) = BASS_ACTIVE_PLAYING then BASS_ChannelStop(Han);
    case BASS_ChannelIsActive(Han) of
      BASS_ACTIVE_PLAYING: BASS_ChannelStop(Han); // <---- tutaj powinno nastąpić zatrzymanie
      BASS_ACTIVE_STOPPED: BASS_ChannelPlay(Han, True);
    end;
   end;
end;

Czy nieuniknione będzie zastosowanie globalnej zmiennej ?
I czy jest parametr w stylu "ASYNC" (asynchronicznego odtwarzania).

Dzięki z góry