2012-03-28 57 views
0

我使用這個方法來播放視頻使用AVPlayer:AVPlayer流狀態

 audioPlayer = [[AVPlayer playerWithURL:[NSURL URLWithString:url]] retain]; 
     avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:audioPlayer] retain]; 
     [avPlayerLayer setFrame:self.view.bounds]; 

     [audioPlayer play]; 

我尋找一種方式來獲得通知的每次在流過程中(像11%,10%,25% ,50%,60%......),我可以從AVPlayer得到這樣的東西嗎?

回答

1

看看文檔,則需要實現這個方法:

http://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVPlayer_Class/Reference/Reference.html#//apple_ref/occ/instm/AVPlayer/addPeriodicTimeObserverForInterval:queue:usingBlock

一個例子:

[mPlayer addPeriodicTimeObserverForInterval:CMTimeMake(1, 1) 
     queue:NULL 
     usingBlock:^(CMTime time){ 
      NSLog(@"%lld %d ",mPlayer.currentTime.value,mPlayer.currentTime.timescale); 
     } 
]; 

爲了讓你可以做視頻的總時間:

mPlayer.currentItem.duration 

以及您可以從項目中獲取currentTime:

mPlayer.currentItem.currentTime 

編輯

看看CurrentItem reference

你可能需要一些像方法:

+0

loadedTimeRanges OK,這是播放過程中的時間,但什麼我尋找的是從播放中快速下載的過程。 – MTA 2012-03-28 16:22:18

+0

好吧,我編輯答案,你可以得到有關該項目的信息。你可以從已經加載的數組中獲得數組,等等。 – ggrana 2012-03-28 16:29:11