BASS

0

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 ?

0

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

0

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 :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1