在 iOS 应用程序中更新下载的 HLS 文件的最佳方法是什么?
What is the best way to update downloaded HLS files in iOS app?
我正在开发 iOS 应用程序。我实现了下载 HLS 视频文件的逻辑。我使用 AVAssetDownloadURLSession
、AVAggregateAssetDownloadTask
、URLSessionConfiguration.background
。
如果服务器上更新了 HLS 文件,我需要实施更新 HLS 文件的逻辑。 NSURLRequest.CachePolicy 可以做到这一点吗?还是有其他方法可以做到这一点?
感谢任何帮助。
会话配置:
private let assetSessionConfiguration: URLSessionConfiguration = {
let configurationIdentifier = Bundle.main.bundleIdentifier ?? "identifier"
let configuration = URLSessionConfiguration.background(withIdentifier: configurationIdentifier)
configuration.networkServiceType = .video
configuration.requestCachePolicy = .useProtocolCachePolicy
if #available(iOS 13.0, *) {
configuration.allowsExpensiveNetworkAccess = true
}
if #available(iOS 13.0, *) {
let memoryMBAmount = 10
let diskMBAmount = 2048
configuration.urlCache = URLCache(memoryCapacity: memoryMBAmount * 1024 * 1024, diskCapacity: diskMBAmount * 1024 * 1024, directory: CustomURL)
} else {
configuration.urlCache = URLCache.shared
}
return configuration
}()
一种方法是在您的主播放列表响应中设置 cache-control
HTTP header。
我正在开发 iOS 应用程序。我实现了下载 HLS 视频文件的逻辑。我使用 AVAssetDownloadURLSession
、AVAggregateAssetDownloadTask
、URLSessionConfiguration.background
。
如果服务器上更新了 HLS 文件,我需要实施更新 HLS 文件的逻辑。 NSURLRequest.CachePolicy 可以做到这一点吗?还是有其他方法可以做到这一点? 感谢任何帮助。
会话配置:
private let assetSessionConfiguration: URLSessionConfiguration = {
let configurationIdentifier = Bundle.main.bundleIdentifier ?? "identifier"
let configuration = URLSessionConfiguration.background(withIdentifier: configurationIdentifier)
configuration.networkServiceType = .video
configuration.requestCachePolicy = .useProtocolCachePolicy
if #available(iOS 13.0, *) {
configuration.allowsExpensiveNetworkAccess = true
}
if #available(iOS 13.0, *) {
let memoryMBAmount = 10
let diskMBAmount = 2048
configuration.urlCache = URLCache(memoryCapacity: memoryMBAmount * 1024 * 1024, diskCapacity: diskMBAmount * 1024 * 1024, directory: CustomURL)
} else {
configuration.urlCache = URLCache.shared
}
return configuration
}()
一种方法是在您的主播放列表响应中设置 cache-control
HTTP header。