我尝试过以下几种方法:
func setupAssetDownload() {
// Create new background session configuration.
let configuration = URLSessionConfiguration.background(withIdentifier: "123124123152")
// Create a new AVAssetDownloadURLSession with background configuration, delegate, and queue
let downloadSession = AVAssetDownloadURLSession(configuration: configuration,
assetDownloadDelegate: self,
delegateQueue: OperationQueue.main)
let url = URL(string: "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8")// HLS Asset URL
let asset = AVURLAsset(url: url!)
// Create new AVAssetDownloadTask for the desired asset
let downloadTask = downloadSession.makeAssetDownloadTask(asset: asset,
assetTitle: "assetTitle",
assetArtworkData: nil,
options: nil)
// Start task and begin download
print(downloadTask.debugDescription)
downloadTask?.resume()
}并实现了
func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL) {
print("didFinishDownloadingTo \(location.relativePath)")
playOfflineAsset()
}但是委托方法didFinishDownloadingTo从未被调用过。
还添加了didCompleteWithError委派,但没有成功。我的类符合AVAssetDownloadDelegate。
发布于 2018-08-23 14:12:29
AVAssetDownloadURLSession总是与真实的设备only..So一起工作,在你的情况下,它似乎你是在模拟器上尝试过的。
请使用Real device
https://stackoverflow.com/questions/51240658
复制相似问题