关于缓存视频
在缓存视频时,第一个视频可以缓存,第二和第三个视频在HcdVideoRequestTask中的self.taskArr始终会添加两次connection导致无法使视频从temp移到document,请问这个该怎么解决?
我也发现这个问题了,,第一个视频比较短,第三个比较长,所以这两个都没有缓存成功,这是一个奇葩的bug,我也正在找原因。
主要是HcdVideoRequestTask.h中的self.taskArr的count值在第二个视频的时候,不知道为什么会add了两个值。麻烦你看一下这是什么原因?第一个视频的count值就只为1。
因为这段代码的原因:
// 如果新的rang的起始位置比当前缓存的位置还大300k,则重新按照range请求数据
if (self.task.offset + self.task.downLoadingOffset + 1024 * 300 < range.location ||
// 如果往回拖也重新请求
range.location < self.task.offset) {
[self.task setUrl:interceptedURL offset:range.location];
}
每次[self.task setUrl:interceptedURL offset:range.location];调用,taskArr就会add一次
那请问这是什么原因导致的?我打断点跑了后发现正如你所说的,第一个视频就不会进这个方法,第二和第三个就会进,应该才开始播放时都不会进这个方法啊
在从头开始播放时,第二次进入了- (void)dealWithLoadingRequest:(AVAssetResourceLoadingRequest *)loadingRequest方法,获取的range.location不在为0,但是这时视频并没有开始播放,为什么range的位置不为0?
请问这个问题怎么解决?我也遇到了
我发现把这个1024 * 300 改大一点就可以了,请问改大了会有什么影响吗?