1

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

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

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

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

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

4

1 回答 1

1

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

有关详细信息,请参阅 HTTP RFC 2616 中的Range 标头规范

于 2017-10-18T14:18:08.487 回答