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