【发布时间】:2016-03-23 17:49:27
【问题描述】:
当应用程序在后台时,我无法让 AVAssetExportSession 工作。
我的应用程序启用了后台模式“后台获取”。
当这个 UIApplicationDelegate 方法被调用时
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
被称为我使用 AVAssetExportSession 导出一个 AVAsset,使用方法:
exportAsynchronouslyWithCompletionHandler
然后我收到此错误:
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSUnderlyingError=0x147dae560 {Error Domain=NSOSStatusErrorDomain Code=-16980 "(null)"}, NSLocalizedFailureReason=An unknown error occurred (-16980), NSLocalizedDescription=The operation could not be completed}
但是,当我有背景模式“音频、Airplay 和画中画”时,导出工作正常。
这很好,但是我们的提交被拒绝了,因为我们没有在后台播放任何音频。
还有其他方法可以在后台导出视频吗?
干杯,红
复制步骤 我创建了一个示例项目来展示这个问题。
下载地址:http://up.red.to/WKo1MMstzD
- 在设备上运行应用程序
- 接受权限
- 按主页按钮
- 在 Xcode 中,转到调试 -> 模拟后台刷新
- 查看错误(在控制台中打印并显示为本地通知)
【问题讨论】:
-
嗨@Red,您找到解决问题的方法了吗?
-
嗨@Red,您是否找到了解决他或错误根本原因的方法?我们的应用也因此被拒绝。
-
@DennisA 嘿!不幸的是,我没有。我们决定只在应用重新打开时执行导出。我们确实考虑过添加一项功能,让我们有理由使用“音频、Airplay 和画中画”权限,但最终没有这样做。
标签: ios background avassetexportsession