Media player giriş, çıkış sürelerini belirleme...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Media player giriş, çıkış sürelerini belirleme...
Selam,
FireMonkey, Media play da bir videonun giriş ve çıkışlarını edit içine girmiş olduğum sürelere göre oynatmak istiyorum, fakat bununla ilgili hiçbir kaynak bulamadım, bu konu hakkında kaynak veya bilgisi olan arkadaşlar yardımcı olabilir misiniz...
FireMonkey, Media play da bir videonun giriş ve çıkışlarını edit içine girmiş olduğum sürelere göre oynatmak istiyorum, fakat bununla ilgili hiçbir kaynak bulamadım, bu konu hakkında kaynak veya bilgisi olan arkadaşlar yardımcı olabilir misiniz...
Re: Media player giriş, çıkış sürelerini belirleme...
Olay FireMonkey olunca sıkılabilirsin ama bit Timer koyup, her timer interval değerinde MediaPlayer'in CurrentTime değerini okumalısın.
Değerlendirmeni zaten okuduktan sonra yapacaksın.
Değerlendirmeni zaten okuduktan sonra yapacaksın.
Re: Media player giriş, çıkış sürelerini belirleme...
mrmarman yazdı:Olay FireMonkey olunca sıkılabilirsin ama bit Timer koyup, her timer interval değerinde MediaPlayer'in CurrentTime değerini okumalısın.
Değerlendirmeni zaten okuduktan sonra yapacaksın.
Sayın mrmarman, farkındayım "FireMonkey" konusunda,

Re: Media player giriş, çıkış sürelerini belirleme...
Bir ilüzyon deneyebilirsin. Ben bu trükleri severim sonuç vereceğini değerlendiriyorum.
Aynı yerde üst üste iki tane MediaPlayer koy.
Birisi yürütülürken diğerini hazır hale getir. Süresi dolanı arkaya atıp sırası geleni öne getir.
Senin için bir örnek uyguladım..

veya

Hatta bir kaç saniye önce başlatırsan öne arkaya getirme işlemini width, height değişikliği yaparak sanki bir geçiş efektine de imkan sağlayabilirsin.
Aynı yerde üst üste iki tane MediaPlayer koy.
Birisi yürütülürken diğerini hazır hale getir. Süresi dolanı arkaya atıp sırası geleni öne getir.
Senin için bir örnek uyguladım..

veya

Hatta bir kaç saniye önce başlatırsan öne arkaya getirme işlemini width, height değişikliği yaparak sanki bir geçiş efektine de imkan sağlayabilirsin.
Re: Media player giriş, çıkış sürelerini belirleme...
mrmarman yazdı:Bir ilüzyon deneyebilirsin. Ben bu trükleri severim sonuç vereceğini değerlendiriyorum.
Aynı yerde üst üste iki tane MediaPlayer koy.
Birisi yürütülürken diğerini hazır hale getir. Süresi dolanı arkaya atıp sırası geleni öne getir.
Hatta bir kaç saniye önce başlatırsan öne arkaya getirme işlemini width, height değişikliği yaparak sanki bir geçiş efektine de imkan sağlayabilirsin.
Güzel bir örnek hocam, benimde aklımda iki adet player kullanmak var da ilüzyon konusunda "yetersizim" playerlar bir birini nasıl tetikleyecek

Re: Media player giriş, çıkış sürelerini belirleme...
Timer içinde süre sonuna geleni sen bileceksin , sona geldiğinde diğerine geçişi de dolayısıyla sen tetiklemiş olacaksın.
Re: Media player giriş, çıkış sürelerini belirleme...
mrmarman yazdı:Timer içinde süre sonuna geleni sen bileceksin , sona geldiğinde diğerine geçişi de dolayısıyla sen tetiklemiş olacaksın.
Hocam videoyu istediğim süreden başlatma konusunda işin içinden çıkamadım, yardımcı olabilir misiniz...
Kod: Tümünü seç
procedure TForm2.PlayClick(Sender: TObject);
begin
with XPlayer do
begin
Media.CurrentTime := StrToInt(Edit1.Text);
Play;
end;
Re: Media player giriş, çıkış sürelerini belirleme...
Edit1.Text'de ne var ?
Elindeki malzeme :
- MediaPlayer1.Media.Duration (100 ns.) nanoSaniye'lik dilimler üzerinden skalalandırılmışdır. bkz. FMX.Media.TMediaPlayer.Duration
- Bunu saniyeye dönüştürmek için 10000000 rakamına bölmen lazım ki bu bölünecek rakam MediaTimeScale olarak CONST ifade halinde hazır bekliyor. Kullanımı MediaPlayer1.Media.Duration div MediaTimeScale şeklinde tam sayı bölüm elde edersin. Bu değer sana saniye cinsinden videonun toplam uzunluğunu verir.
- Şu aşamada Edit1.Text içinde saniye cinsinden bir konumlama yapacaksan yukarıdaki bilgi ışığında ns. değerine dönüştürmen gerekiyor ve dolayısı ile saniye değerini MediaTimeScale ile çarpman ve MediaPlayer1.CurrentTime içine öyle atama yapman gerekiyor.
Özetle ne türde zaman biriminden değerin olacaksa atama yapmadan önce (100 NanoSaniye) mertebesine dönüştürmen lazım.
- Kafa karışıklığı olmasın istersen işlem basit (sn) cinsinden süreyi bul, MediaTimeScale ile çarp al sana CurrentTime değeri
Buraya kadar anlamadığın varsa yine sorarsın.
Elindeki malzeme :
- MediaPlayer1.Media.Duration (100 ns.) nanoSaniye'lik dilimler üzerinden skalalandırılmışdır. bkz. FMX.Media.TMediaPlayer.Duration
- Bunu saniyeye dönüştürmek için 10000000 rakamına bölmen lazım ki bu bölünecek rakam MediaTimeScale olarak CONST ifade halinde hazır bekliyor. Kullanımı MediaPlayer1.Media.Duration div MediaTimeScale şeklinde tam sayı bölüm elde edersin. Bu değer sana saniye cinsinden videonun toplam uzunluğunu verir.
- Şu aşamada Edit1.Text içinde saniye cinsinden bir konumlama yapacaksan yukarıdaki bilgi ışığında ns. değerine dönüştürmen gerekiyor ve dolayısı ile saniye değerini MediaTimeScale ile çarpman ve MediaPlayer1.CurrentTime içine öyle atama yapman gerekiyor.

- Kafa karışıklığı olmasın istersen işlem basit (sn) cinsinden süreyi bul, MediaTimeScale ile çarp al sana CurrentTime değeri
Buraya kadar anlamadığın varsa yine sorarsın.
Re: Media player giriş, çıkış sürelerini belirleme...
mrmarman yazdı:Bir ilüzyon deneyebilirsin. Ben bu trükleri severim sonuç vereceğini değerlendiriyorum.
Aynı yerde üst üste iki tane MediaPlayer koy.
Birisi yürütülürken diğerini hazır hale getir. Süresi dolanı arkaya atıp sırası geleni öne getir.
Senin için bir örnek uyguladım..
veya
Hatta bir kaç saniye önce başlatırsan öne arkaya getirme işlemini width, height değişikliği yaparak sanki bir geçiş efektine de imkan sağlayabilirsin.
Hocam nerede hata yapıyorum anlamadım. Timer ile XPlayer süresi dolunca YPlayer devreye girmesi lazım fakat bir türlü geçişi sağlayamadım.
Kod: Tümünü seç
procedure TForm2.AutoPlayTimer(Sender: TObject);
begin
if XPlayer.CurrentTime = XPlayer.Duration then
begin
MediaPlayerMonitor.MediaPlayer := YPlayer;
YPlayer.FileName := YPlayerYol;
YPlayer.CurrentTime := 0;
YPlayer.Play;
YPlayerSure.Enabled := True;
Durum := 'YPlayer';
XPlayer.Stop;
XPlayerSure.Enabled := False;
Memo1.Lines.Add('YPlayer');
end
else
begin
if YPlayer.CurrentTime = YPlayer.Duration then
begin
MediaPlayerMonitor.MediaPlayer := XPlayer;
XPlayer.FileName := XPlayerYol;
XPlayer.CurrentTime := 0;
XPlayer.Play;
XPlayerSure.Enabled := True;
Durum := 'XPlayer';
YPlayer.Stop;
YPlayerSure.Enabled := False;
Memo1.Lines.Add('XPlayer');
end;
end;
end;