ios URLSessionDataTask 使用数据恢复

ios URLSessionDataTask use resume with Data

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

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

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

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

我注意到它没有类似 downloadTask(withResumeData:) 的构造函数(URLSessionDownloadTask 的构造函数,它的想法几乎相同,但它没有 func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) 函数:D)。 现在我怎样才能将这两者结合起来? 谢谢你,抱歉这么久 post

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

时将下载的部分偏移添加为header

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