1

我正在編寫一個視頻應用程序,用於播放網絡中的流式視頻,並且我正在使用AV播放器進行操作。我的問題是如何找出多少視頻內容是預先緩衝的,在MPMoviePlayerController中,您可以看到UISlider上緩衝內容的數量。我想用AV播放器顯示相同的內容,並且能夠更改預緩衝內容的數量。當使用AV播放器進行HTTP實時流傳輸時,預先緩衝了多少視頻內容,並且可以更改該值

我的理想情況是 - 用戶使用我的應用程序流式傳輸電影文件,如果他暫停播放按鈕,電影會保持緩衝狀態,就像觀看YouTube視頻一樣。

請幫忙!!

謝謝。

+0

任何人都有線索,真的卡在這部分? – coderGirl

+0

你有沒有得到任何解決這個問題? –

回答

3

通過查看AVPlayerItem loadedTimeRanges屬性,可以看到在播放頭之前加載和緩衝的數據量。

例如

AVPlayer *player; 
NSArray *loadedTimeRanges = player.currentItem.loadedTimeRanges; 
NSLog(@"LoadedTimeRanges: %@", loadedTimeRanges); 

在我的應用程序的情況下,我可以看到:

LoadedTimeRanges: (
    "CMTimeRange: {{338070700809/1000000000 = 338.071}, {54651145016/1000000000 = 54.651, rounded}}" 
) 

其中第二值(54.651)似乎存在於播放頭的前緩衝的量。在失速的情況下,該值隨着回放持續而下降,直到達到大約0.

55到60秒的預緩衝內容是我見過的 - 你只能檢查這個值,不能強迫玩家緩衝更多的數據。但是,您可以使用此值以可視方式指示緩衝給用戶的數據量。

+0

你知道嗎?如果播放一段視頻,然後又回到播放的重做者或緩存的所有數據保留在內存中? –

相關問題