0

I've tried the following:

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()
}

and implemented

func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL) {
    print("didFinishDownloadingTo \(location.relativePath)")
    playOfflineAsset()
}

but the delegate method didFinishDownloadingTo is never called.

Also added didCompleteWithError delegate with no success. My class is conforming to AVAssetDownloadDelegate.

Trebligul
  • 55
  • 7

1 Answers1

0

AVAssetDownloadURLSession always work with real device only..So in your case its seems like you are tried on simulator.

Please go with Real device

MAhipal Singh
  • 4,745
  • 1
  • 42
  • 57