7

AVPlayerリモートサーバーからオーディオを再生するため に使用しています。

MPMoviePlayerController映画を再生するときのように、バッファリングの進行状況と「再生時間」の進行状況を示すプログレスバーを表示したいと思います。

AVPlayerこの情報を表示するUIコンポーネントはありますか?そうでない場合、どうすればこの情報(バッファリング状態)を取得できますか?

ありがとう

4

1 に答える 1

20

AVPlayerには、この情報を表示するUIコンポーネントがありますか?

いいえ、AVPlayer用のUIコンポーネントはありません。

そうでない場合、どうすればこの情報(バッファリング状態)を取得できますか?

あなたはオブザーバーでなければなりませんAVPlayerItem.loadedTimeRanges

[yourPlayerItem addObserver:self forKeyPath:@"loadedTimeRanges" options:NSKeyValueObservingOptionNew context:nil];

次にKVOを使用して視聴します

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
                    change:(NSDictionary *)change context:(void *)context {
    if(object == player.currentItem && [keyPath isEqualToString:@"loadedTimeRanges"]){
        NSArray *timeRanges = (NSArray*)[change objectForKey:NSKeyValueChangeNewKey];
        if (timeRanges && [timeRanges count]) {
            CMTimeRange timerange=[[timeRanges objectAtIndex:0]CMTimeRangeValue];
        }
    }
 }

timerange.durationあなたが期待するものです。

また、バッファの進行状況を手動で描画する必要があります。

ここで参照します

于 2012-12-11T10:20:59.413 に答える