NSURLSessiond 和 HLS 视频缓存 - 无法删除部分下载
NSURLSessions and HLS video cacheing - partial downloads can't be deleted
我正在尝试在用户观看时缓存 HLS 视频流(非直播)。为此,我们设置了一个 AvAssetDownloadTask,类似于苹果在这里推荐的方式:
这种方法很有效,因为我们可以将 url 资产从下载任务传递到同时下载和流式传输。
我们希望将此下载临时缓存到应用程序的视频下载部分,这几乎可以与 NSUrlSessionTask 委托一起本地工作,除非我们想删除部分数据。
如果下载完成,我们会收到最终下载位置,并且可以添加过期时间或稍后手动删除文件。但是,如果下载仅部分完成,我找不到删除部分下载视频的方法。
我希望取消并使任务无效会清理部分下载,但事实并非如此,在上面的 link 中还有更多苹果状态: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 设置的 'downloaded videos' 部分中可见。
想知道是否有其他人解决了这个问题或对如何完成有建议。
找到答案,而不是暂停下载任务,一旦我们希望完成部分缓存下载就需要取消它,然后会触发
- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didFinishDownloadingToURL:(NSURL *)location {
其中提供了最后的url。
我正在尝试在用户观看时缓存 HLS 视频流(非直播)。为此,我们设置了一个 AvAssetDownloadTask,类似于苹果在这里推荐的方式:
这种方法很有效,因为我们可以将 url 资产从下载任务传递到同时下载和流式传输。
我们希望将此下载临时缓存到应用程序的视频下载部分,这几乎可以与 NSUrlSessionTask 委托一起本地工作,除非我们想删除部分数据。
如果下载完成,我们会收到最终下载位置,并且可以添加过期时间或稍后手动删除文件。但是,如果下载仅部分完成,我找不到删除部分下载视频的方法。
我希望取消并使任务无效会清理部分下载,但事实并非如此,在上面的 link 中还有更多苹果状态: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 设置的 'downloaded videos' 部分中可见。
想知道是否有其他人解决了这个问题或对如何完成有建议。
找到答案,而不是暂停下载任务,一旦我们希望完成部分缓存下载就需要取消它,然后会触发
- (void)URLSession:(NSURLSession *)session assetDownloadTask:(AVAssetDownloadTask *)assetDownloadTask didFinishDownloadingToURL:(NSURL *)location {
其中提供了最后的url。