我正在开发从图像创建视频的 iOS 应用程序。我正在使用AVAssetWriter
来实现这一点。一切正常。但是当应用程序进入后台并切换回来时,视频写入失败。当我切换回应用程序时,AVAssetWriter
's没有被调用。finishWritingWithCompletionHandler
当应用程序在渲染期间进入后台时,可能是AVAssetWriter 失败的副本,但我没有从那里得到任何帮助。
有什么想法吗?
谢谢
我正在开发从图像创建视频的 iOS 应用程序。我正在使用AVAssetWriter
来实现这一点。一切正常。但是当应用程序进入后台并切换回来时,视频写入失败。当我切换回应用程序时,AVAssetWriter
's没有被调用。finishWritingWithCompletionHandler
当应用程序在渲染期间进入后台时,可能是AVAssetWriter 失败的副本,但我没有从那里得到任何帮助。
有什么想法吗?
谢谢
此答案基于您希望视频在后台继续渲染的假设。
我通过要求操作系统授予应用程序后台任务权限(在有限的时间内)在我的应用程序中解决了这个问题。这个答案也可以帮助你 iOS在后台任务中生成视频
@property (nonatomic,assign) UIBackgroundTaskIdentifier __block backgroundRenderingID;
UIApplication *app = [UIApplication sharedApplication];
_backgroundRenderingID = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:_backgroundRenderingID];
_backgroundRenderingID = UIBackgroundTaskInvalid;
}];
完成后别忘了放手!
[[UIApplication sharedApplication] endBackgroundTask:_backgroundRenderingID];