【发布时间】:2017-05-01 13:44:31
【问题描述】:
用avplayer播放视频,听loadedTimeRanges属性,播放10分钟左右的视频,avplayer总是预加载视频,感觉很费钱,有没有办法限制预加载区域的大小?比如一半时间预加载视频?
【问题讨论】:
标签: ios avplayer avplayeritem
用avplayer播放视频,听loadedTimeRanges属性,播放10分钟左右的视频,avplayer总是预加载视频,感觉很费钱,有没有办法限制预加载区域的大小?比如一半时间预加载视频?
【问题讨论】:
标签: ios avplayer avplayeritem
我认为您正在寻找 AVPlayerItem 的 preferredForwardBufferedDuration 属性。
每个苹果:
此属性以秒为单位定义首选的转发缓冲区持续时间。如果设置为 0,播放器将为大多数用例选择适当的缓冲级别。将此属性设置为较低的值会增加播放停止和重新缓冲的机会,而将其设置为较高的值会增加对系统资源的需求。
【讨论】:
如果您使用resourceLoaderdelegate,您可以控制在播放之前预加载/下载的内容的确切数量。
这里的代码示例是一个好的开始 - AVPlayer stalling on large video files using resource loader delegate
基本上,您必须维护一组pendingRequests 并通过启动URLSession dataTask 一次一个地处理它们,直到您下载了足够的要预加载的内容。
干杯。
【讨论】: