AVAssetDownloadDelegate方法在后台没有被调用
创始人
2024-11-12 20:00:20
0

当应用程序运行在后台时,下载会在一个单独的进程中运行,因此AVAssetDownloadDelegate方法不会被自动调用。要解决这个问题,需要在调用startSession方法之前向assetDownloadTask对象添加一个后台URL会话配置,并在AppDelegate中设置会话委托。示例代码如下:

//获取后台下载的会话ID let backgroundConfiguration = URLSessionConfiguration.background(withIdentifier: "com.myapp.backgroundDownload")

//创建AVAssetDownloadURLSession对象 let assetDownloadURLSession = AVAssetDownloadURLSession(configuration: backgroundConfiguration, assetDownloadDelegate: self, delegateQueue: OperationQueue.main)

//创建assetDownloadTask对象 let assetDownloadTask = assetDownloadURLSession.makeAssetDownloadTask(asset: asset, assetTitle: "Asset Title", assetArtworkData: nil, options: options)

//在AppDelegate中设置会话委托 func application(_ application: UIApplication, handleEventsForBackgroundURLSession identifier: String, completionHandler: @escaping () -> Void) { if identifier == "com.myapp.backgroundDownload" { assetDownloadSessionCompletionHandler = completionHandler } }

//在下载完成时调用completionHandler func urlSessionDidFinishEvents(forBackgroundURLSession session: URLSession) { if let completionHandler = assetDownloadSessionCompletionHandler { assetDownloadSessionCompletionHandler = nil completionHandler() } }

这样,在后台下载完成后,会话委托将自动调用,并调用应用程序委托中的相应方法。

相关内容

热门资讯

今日焦点!789大菠萝攻略!一... 今日焦点!789大菠萝攻略!一贯确实有辅助软件(有挂功能)1、789大菠萝攻略免费辅助多个强度级别选...
玩家爆料!乐玩游戏辅助工具!竟... 玩家爆料!乐玩游戏辅助工具!竟然是真的有辅助攻略(发现有挂)1、乐玩游戏辅助工具公共底牌简单,乐玩游...
科技揭秘!新超凡软件辅助!确实... 科技揭秘!新超凡软件辅助!确实真的是有辅助软件(有挂猫腻)运新超凡软件辅助辅助工具,进入游戏界面。进...
一分钟了解!吉安中至小程序微信... 一分钟了解!吉安中至小程序微信辅助!一贯存在有辅助器(真实有挂)1)吉安中至小程序微信辅助辅助插件:...
免费测试版!杭州边锋辅助软件!... 免费测试版!杭州边锋辅助软件!竟然存在有辅助神器(有挂秘笈)1)杭州边锋辅助软件免费钻石:进一步探索...
大神推荐!情怀江湖手游辅助!一... 大神推荐!情怀江湖手游辅助!一贯是有辅助脚本(有挂技术)1、该软件可以轻松地帮助玩家将情怀江湖手游辅...
必备教程!wepoker专用辅... 必备教程!wepoker专用辅助!确实真的有辅助app(真的有挂)1、游戏颠覆性的策略玩法,独创攻略...
大家学习交流!开心泉州小程序辅... 大家学习交流!开心泉州小程序辅助免费下载!一直真的是有辅助工具(有挂攻略)开心泉州小程序辅助免费下载...
事发当天!欢乐达人暗堡破解!原... 事发当天!欢乐达人暗堡破解!原来确实有辅助app(有挂解密)1、欢乐达人暗堡破解模拟器是什么优化,欢...
据玩家消息!途游四川小程序规律... 据玩家消息!途游四川小程序规律!总是是有辅助挂(有挂实锤)1、首先打开途游四川小程序规律辅助器下载最...