4

Web からストリーミング ビデオを再生するビデオ アプリを作成しており、そのために AV プレーヤーを使用しています。MPMoviePlayerController では、UISlider でバッファリングされたコンテンツの量を確認できます。AV Player を使用して同じことを表示し、事前にバッファリングされたコンテンツの量を変更できるようにしたいと考えています。

私の理想的な状況は、ユーザーが私のアプリを使用して映画ファイルをストリーミングしている場合です。再生ボタンを一時停止すると、YouTube ビデオを見ているときと同じように映画がバッファリングされ続けます。

助けてください !!

ありがとうございました。

4

1 に答える 1

7

プロパティを見ると、再生ヘッドの前にロードおよびバッファリングされたデータの量を確認できAVPlayerItem loadedTimeRangesます。

例えば

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

私のアプリの場合、次のことがわかります。

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

2 番目の値 ( 54.651) は、再生ヘッドの前に存在するバッファリングの量のようです。失速の場合、この値は再生が続くにつれて減少し、ほぼ 0 になります。

私が確認したのは、55 秒から 60 秒の事前バッファリングされたコンテンツだけです。この値を調べることしかできず、プレーヤーにそれ以上のデータをバッファリングさせることはできません。ただし、この値を使用して、バッファリングされたデータの量をユーザーに視覚的に示すことができます。

于 2012-10-17T04:29:37.063 に答える