2012-05-16 29 views
5

Uygulamamda seekToTime kullanıyorum ve düzgün çalışıyor. Ama bunun hakkında daha fazla bilgiye sahip olmak istiyorum. Yani, eğer 1 dakikalık bir video akış dosyası var ise, şimdi ikinci 15'ten ikinci 45'e kadar çalmak istiyorum (ilk 15 saniye ve son 15 saniye oynamayacaktır).AVPlayer seektoTime iPhone

Bunu nasıl yapabilirim?

SearchToTime kullanımı ile 15'inci saniyeden bir video oynatabileceğimi ancak 45. saniyede nasıl durduracağımı ve videonun belirtilen süre boyunca oynadığı yöntemle farkedebileceğimi biliyorum.

CMTime timer = CMTimeMake(15, 1); 
[player seekToTime:timer]; 

Yukarıdaki kod akışı dosyasının 15 saniyeye beni alır ama nasıl 45 saniye üzerinde durdurmak için ve çok haberdar olsun?

Çok arandım, ancak bilgi alamadım.

Teşekkür

DÜZENLEME:

@codeghost öne sürdüğü gibi, basitçe forwardPlaybackEndTime kullanın.

Sadece kullanabilirsiniz:

yourAVPlayerItem.forwardPlaybackEndTime = CMTimeMake(10, 1); 
İşte

10 oynayacak AVPlayerItem kadar zamandır.

+0

iletiyorPlaybackEndTime sizin için çalışıyor mu? – onmyway133

+0

Evet, işe yaradı, bazı mantık yürütmek zorundaydı ve benim gereksinimime göre çalışmaya başladı –

+0

http://stackoverflow.com/questions/25717819/forwardplaybackendtime-does-not-work sorusuna bir göz atabilir misiniz? Oyuncu hala sonuna kadar – onmyway133

cevap

7

AVPlayerItem'inizde forwardPlaybackEndTime özelliğini ayarlayın.

+0

oynuyor codeghost, Kodumda nasıl kullanabilirim, örneğin/forward ile ilgili herhangi bir referans bağlantınız var mı? Bu forwardPlaybackEndTime –

+2

Xcode'ta Playback sistemi kılavuzuna göz atın, ancak tek yapmanız gereken Bunu ayarlamak, örneğin "playerItem.forwardPlaybackEndTime = CMTimeMake (45, 1);". AVPlayerItem ile bir AVQueuePlayer oluşturun ve bugün olduğunuz gibi oynatın. – codeghost

+0

Teşekkürler kardeşim :) sen benim günümü kurtardın –

0

ben AVPlayer bunun için bir şey yap-olup olmadığını biliyor, ama ne yapardım bir fonksiyonu inşa etmek ve onu çağırır yoktur:

[self performSelector:@selector(stopPlaying) withObject:nil afterDelay:45]; 


-(void)stopPlaying{ 
    [player pause]; 
} 

bu 45 saniye sonra çalmaya duracak ve elbette 45 yerine istediğiniz sayıda saniye koyabilirsiniz.

+0

Bu oyuncunun durdurulması için başka bir yoldur, ama codeghost forwardPlaybackEndTime önerdiği gibi, bunu nasıl arıyordum kodda kullanmak için, ancak şu ana kadar herhangi bir kod parçacığı veya örneği yok. Apple'ın belgeleri AVFoundation ile ilgili zayıf. Anlaması çok zor –

0

Bu amaçla [AVPlayer addPeriodicTimeObserverForInterval:queue:usingBlock:]'u kullanabilirsiniz.

Periyodik olarak AVPlayer.currentTime numaralı telefonu alın ve duraklat veya tam zamanında durdurun.