ios URLSessionDataTask将resume用于Data

时间:2017-10-17 14:59:35

标签: ios nsurlsessiondownloadtask nsurlsessiondatatask urlsession

我正在使用URLSessionDataTask下载视频并播放它们(我需要缓存,所以我正在使用

func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data)

手动处理数据并将其提供给AVAssetResourceLoader)。

为了进行磁盘缓存,我必须将下载的数据保存到磁盘(终止应用程序时),这样当用户再次打开应用程序时,我可以继续下载数据。

我注意到它没有像downloadTask(withResumeData:)之类的构造函数(URLSessionDownloadTask的构造函数,它几乎同样的想法,但它没有func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data)功能:D)。 现在我该如何将这两者结合起来? 谢谢你,对不起这篇长篇文章感到抱歉

1 个答案:

答案 0 :(得分:0)

您应该在请求中使用Range标头。但是,只有当服务器通过Accept-Ranges响应标头通知您它接受范围请求时,才可以使用它。 因此,如果服务器支持从偏移量加载您需要在创建URLRequest

时将下载的部分偏移量添加为标题

有关详细信息,请参阅HTTP RFC 2616中的Range header specification