Kod: Tümünü seç
PasLibVlcPlayer1.SetVideoPosInMs(100000000000000);
PasLibVlcPlayer1.Play('C:\Users\Hido\Videos\Piyano.avi');
Kod: Tümünü seç
PasLibVlcPlayer1.SetVideoPosInMs(100000000000000);
PasLibVlcPlayer1.Play('C:\Users\Hido\Videos\Piyano.avi');
Selam, Açıkcası Trackbar dan bir şey anlamadımAliZairov yazdı:İyi akşamlar. Bileşenin örneklerinde mevcut bi bak istersen. TrackBar ile yapmış örnekde.
Kod: Tümünü seç
PasLibVlcPlayer1.SetVideoPosInMs(100000000000000);
PasLibVlcPlayer1.Play('C:\Users\Hido\Videos\Piyano.avi');
Pozisyon bilgisi olarak 100.000.000.000.000 ms. değerini geçmişsiniz; 100.000.000.000 sn. bu da 1.666.666.666 dk. 27.777.777 saat 1.157.407 gün gibi bir zaman dilimine tekabül ediyor. Sizce de burada bir sorun varmış gibi görünmüyor mu ? (PasLibVlc 'yi ve metodunu bilmiyorum ama fonksiyon isminden anladığım kadarı ile milisaniye parametresi bekliyor)Serhat yazdı:Benim yöntemde o zaman hata nerede?
Kod: Tümünü seç
PasLibVlcPlayer1.SetVideoPosInMs(100000000000000); PasLibVlcPlayer1.Play('C:\Users\Hido\Videos\Piyano.avi');
mrmarman yazdı:İşte burada ilgilenecek olduğun nokta trackbar'ın uzunluğunu (max) video uzunluğuna denk olduğu.
Dolayısı ile anlaşılması gereken husus, SetVideoPosInMs ile (0)'dan bu uzunluğa kadar vereceğin değer video üzerinde ileri geri konumlanmanı sağlayacaktır.
CanSeek() sonucu true ise video dosyası yüklü ve içinde yeni pozisyon set etmek için uygun anlamındadır.
Kod: Tümünü seç
Var
iPos, iUz : Cardinal;
begin
PasLibVlcPlayer1.Play( 'C:\Users\Hido\Videos\Piyano.avi');
while NOT (PasLibVlcPlayer1.GetState in [plvPlayer_Error, plvPlayer_Playing]) do
begin
Application.ProcessMessages;
Sleep(1);
end;
iPos := PasLibVlcPlayer1.GetVideoPosInMs;
iUz := PasLibVlcPlayer1.GetVideoLenInMs;
if PasLibVlcPlayer1.CanSeek()
then begin
ShowMessageFmt('Pos:%d, Max:%d, Gidilecek:%d', [ iPos, iUz, iUz div 2]);
PasLibVlcPlayer1.SetVideoPosInMs( iUz div 2 )
end
else ShowMessage( 'Player boş...');
end;
mrmarman yazdı:Kod: Tümünü seç
Var iPos, iUz : Cardinal; begin PasLibVlcPlayer1.Play( 'C:\Users\Hido\Videos\Piyano.avi'); while NOT (PasLibVlcPlayer1.GetState in [plvPlayer_Error, plvPlayer_Playing]) do begin Application.ProcessMessages; Sleep(1); end; iPos := PasLibVlcPlayer1.GetVideoPosInMs; iUz := PasLibVlcPlayer1.GetVideoLenInMs; if PasLibVlcPlayer1.CanSeek() then begin ShowMessageFmt('Pos:%d, Max:%d, Gidilecek:%d', [ iPos, iUz, iUz div 2]); PasLibVlcPlayer1.SetVideoPosInMs( iUz div 2 ) end else ShowMessage( 'Player boş...'); end;
Kod: Tümünü seç
procedure TMainForm.PlayClick(Sender: TObject);
begin
with PasLibVlcPlayer1 do
begin
Play(VideoAdresi);
while Not(GetState in [plvPlayer_Error, plvPlayer_Playing]) do
begin
Application.ProcessMessages;
Sleep(1);
end;
if CanSeek() then
begin
SetVideoPosInMs(TimeMilliSeconds(Videogiris));
end;
end;
Kod: Tümünü seç
procedure TMainForm.PauseClick(Sender: TObject);
begin
if PasLibVlcPlayer1.stateName= 'Playing' then
begin
PasLibVlcPlayer1.Pause();
VideoTrackBar.OnChange := VideoTrackBarChange;
end
else
begin
PasLibVlcPlayer1.Resume();
VideoTrackBar.OnChange := Nil;
end;
end;
end;
Kod: Tümünü seç
procedure TMainForm.TrackBarChange(Sender: TObject);
begin
if PasLibVlcPlayer1.CanSeek() then
begin
PasLibVlcPlayer1.SetVideoPosInMs(VideoTrackBar.Position);
end;
end;