我试图缓存一个HLS视频流(不是实时的),而用户正在观看它。为此,我们设置了一个类似于苹果推荐的AvAssetDownloadTask:
此方法工作良好,因为我们可以同时将url资产从下载任务传递到下载和流。
我们希望这个下载暂时缓存到应用程序的视频下载部分,除了我们想要删除部分数据之外,这几乎是本机与NSUrlSessionTask委托一起工作的。
如果下载完成,我们将收到最终的下载位置,并可以添加过期时间或稍后手动删除该文件。但是,如果下载只是部分完成,我就无法找到删除部分下载视频的方法。
我希望取消任务并使其失效将清理部分下载,但情况似乎并非如此,更多的是苹果在上面链接中的状态:In the case where a download is canceled, and there is no intention of resuming it, your app is responsible for deleting the portion of the asset already downloaded to a user’s device.。
然而,没有任何关于如何实现这一目标的建议。似乎删除这部分下载应该是容易访问的,但还没有找到实现这一目标的方法。
手动迭代视频下载目录似乎也没有显示这些部分下载,但它们在我们应用程序的主要iOS设置的“下载视频”部分中是可见的。
想知道是否有人已经解决了这个问题,或者有关于如何完成这个问题的建议。
发布于 2018-05-22 22:46:45
找到答案,而不是挂起下载任务,它需要取消,一旦我们希望完成部分缓存下载,这将触发。
- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didFinishDownloadingToURL:(NSURL *)location {
其中提供了最终的网址。
https://stackoverflow.com/questions/50477331
复制相似问题