KTVHTTPCache icon indicating copy to clipboard operation
KTVHTTPCache copied to clipboard

通过cacheCompleteFileURLWithURL 获取缓存地址失败,我实在AVPlayer的KVO里判断缓存时间和音乐时间一致的时候获取这个缓存地址,请问是我获取缓存的方法不对么?

Open Mingriweiji-github opened this issue 5 years ago • 4 comments

}else if keyPath == "loadedTimeRanges"{ //获取最新缓存区间 let loadTimeArray = playerItem.loadedTimeRanges let newTimeRange:CMTimeRange = loadTimeArray.first as! CMTimeRange let startSeconds = CMTimeGetSeconds(newTimeRange.start) let durationSeconds = CMTimeGetSeconds(newTimeRange.duration) let totalBuffer = startSeconds + durationSeconds print("总缓存时长\(totalBuffer),总时长\(durationSeconds) 已经播放时长\(self.nowTime ?? 0)") // if Float64(totalBuffer) > Float64(self.nowTime! + 20) {//缓存下面的3个视频} if Float64(totalBuffer) == Float64(durationSeconds) { self.downLoadURL = KTVHTTPCache.cacheCompleteFileURL(with: URL(string: (self.originalURL!))) print("out file music path:\(String(describing: self.downLoadURL))") } } }

Mingriweiji-github avatar Jun 19 '19 08:06 Mingriweiji-github

Mingriweiji-github avatar Jun 19 '19 08:06 Mingriweiji-github

解决了吗,我这边视频都播放缓存了几遍了,获取的还是空的

luolong123 avatar Oct 22 '20 11:10 luolong123

解决了吗,我这边视频都播放缓存了几遍了,获取的还是空的

KVO里拿到的缓存地址一般会快两秒,推测应该是缓存写入后的异步造成的时间差,你可以自己写缓存拿到缓存文件的地址相对比较准确。

Mingriweiji-github avatar Oct 26 '20 02:10 Mingriweiji-github

解决了吗,我这边视频都播放缓存了几遍了,获取的还是空的

KVO里拿到的缓存地址一般会快两秒,推测应该是缓存写入后的异步造成的时间差,你可以自己写缓存拿到缓存文件的地址相对比较准确。

不知道啥意思啊,这个缓存的视频想拿到链接直接保存到相册的,但是拿到的链接一直是空的。

luolong123 avatar Oct 30 '20 02:10 luolong123

  1. 当地址对应的视频资源被服务器释放后才会合成完整文件
  2. 资源占用中要保存可以用 KTVHCDataReader

libobjc avatar Jan 07 '24 09:01 libobjc