获取视频缓存进度

- (void)addNotificationCenters {
//注册观察者监听是否完成播放
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(moviePlayDidEnd)name:AVPlayerItemDidPlayToEndTimeNotificationobject:nil];
//监控状态属性,注意AVPlayer也有一个status属性,通过监控它的status也可以获得播放状态
[self.playV.playItemaddObserver:selfforKeyPath:@"status"options:NSKeyValueObservingOptionNewcontext:nil];
//监控网络加载情况属性
[self.playV.playItemaddObserver:selfforKeyPath:@"loadedTimeRanges"options:NSKeyValueObservingOptionNewcontext:nil];
}
//监听执行的方法(缓冲进度)
- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context {
AVPlayerItem*playerItem = object;
if([keyPathisEqualToString:@"loadedTimeRanges"]) {
NSArray*loadedTimeRanges = [[self.playV.playercurrentItem]loadedTimeRanges];
CMTimeRangetimeRange = [loadedTimeRanges.firstObjectCMTimeRangeValue];//获取缓冲区域
floatstartSeconds =CMTimeGetSeconds(timeRange.start);
floatdurationSeconds =CMTimeGetSeconds(timeRange.duration);
NSTimeIntervalresult = startSeconds + durationSeconds;//计算缓冲总进度
NSLog(@"当前缓冲%.2f", result);
}
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容