我正在使用 AVPlayer
从远程服务器播放音频。
我想显示一个进度条,显示缓冲进度和“播放时间”进度,就像播放电影时 MPMoviePlayerController
所做的那样。
AVPlayer
是否有显示此信息的任何 UI 组件?如果没有,我如何获得此信息(缓冲状态)?
谢谢
最佳答案
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
是您所期望的。
而且你必须手动绘制缓冲区进度。
引用文献 here .
关于iphone - objective-c - 从远程服务器播放音频时显示缓冲进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13807278/