Wie ktoś może jak za pomocą BASS'a odczytywać długość utworu obecnie odtwarzanego i jak za pomocą TRACKBAR'a pokazywać i ustawiac pozycje na utworze ?
W dziale download w delphi w kodach zrodlowych masz przyklad SDAP Jest to playerek zrobiony wlasnie na BASSie wiec sobie zobacz jak to tam jest zrobione
Ja powiem tyle, że nie polecam TTrackBar'a chyba, że sprytnie zablokuejsz OnChange. Sprawa taka, że przewinięcie utworu do wybranej przez suwak pozycji wstawisz pod OnChange - bo inaczej się nie da, no i niby ok, ale pamiętać trzeba o tym, że jak ustawiasz suwak na pozycję obecnie odtwarzaną (programowo np. pod TTimera czy coś) to także jest generowane zdarzenie OnChange - efekt - praktycznie stoisz w miejscu. Jak tylko chcesz przesunąć programowo suwak żeby ukazać postęp przy odtwarzaniu to generowane przy tym zdarzenie OnChange powoduje, że utwór ustawia się z powrotem w to samo miejsce.... Pedros dobrze prawi, ale w SDAPie raczej pomocy nie znajdziesz. Najpierw zadeklaruj globalnie
Obey: Boolean;
Następnie pod jakimś timerkiem pobieranie pozycji utworka
Obey:=True;
TrackBar.Position:=Engine.GetPositionInBytes div 10000;
Obey:=False;
Sama procedurka dla OnChange trackbara...
procedure TFMain.TrackBarChange(Sender: TObject);
begin
if Obey then Exit;
Engine.SetPositionInBytes(TrackBar.Position*10000);
end;
function TBASSEngine.GetPositionInBytes: Cardinal;
begin
Result := BASS_ChannelGetPosition(Handle);
end;
procedure TBASSEngine.SetPositionInBytes(Position: Cardinal);
begin
BASS_ChannelSetPosition(Handle,Position);
end;
To tak w skrócie :]