Avplaer使用注意事项及坑

1.关于avplaer缓冲

项目需求播放的时候缓冲视频,暂停的时候停止缓冲。

通过NSTemporaryDirectory()打印查看缓存文件发现,如果一开始监听loadedTimeRanges会生成一个缓存文件,如果不监听的话是没有的,只有播放完整个视频才会出现个缓存文件。所以需要缓冲的时候只需监听loadedTimeRanges,不需要缓冲的时候移除监听。

注意监听和移除要一一配对,不然会引起崩溃

2.监听播放时间

- (void)addProgressObserver

{

__weak typeof(self) weakSelf = self;

_timeObser = [self.player addPeriodicTimeObserverForInterval:CMTimeMake(1.0, 1.0) queue:dispatch_get_main_queue() usingBlock:^(CMTime time)

{

[weakSelf updateCurrentTime:time];

[weakSelf updateSliderValue:time];

}];

}

不需要时记得移除监听,虽然不移除也没事,但是会占用大量内存资源

3.slider拖动进度时,change时需要移除监听时间,不然进度条会一直跳。拖动完成时

[_slider addTarget:self action:@selector(sliderBtnClick:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchCancel | UIControlEventTouchUpOutside];

如果只执行UIControlEventTouchUpInside,拖动太快会没有反应,执行了其他事件

slider缓冲的实现:

我是直接继承UISlider,然后添加的一个progressView。等有空了上传git,可以直接继承slider使用,简便方便快捷

暂时就这些,后续再补充

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容