一旦App进入后台,AVAssetWriter就会失败

时间:2013-05-03 07:26:40

标签: iphone ios objective-c avassetwriter

我正在开发iOS应用程序,我正在从图像创建视频。我正在使用AVAssetWriter来实现这一目标。一切正常。但当应用程序进入后台并切换回来时,视频写入失败。当我切换回应用时,AVAssetWriter的{​​{1}}没有被调用。

可能是AVAssetWriter fails when Application enters Background during Rendering的副本,但我没有得到任何帮助。

对此有何想法?

由于

1 个答案:

答案 0 :(得分:9)

此答案基于您希望视频在后台继续渲染的假设。

我通过要求操作系统授予应用后台任务权限(在有限的时间内)来修复此问题。这个答案对你也有帮助 iOS generating a video in the background task

    @property (nonatomic,assign) UIBackgroundTaskIdentifier __block backgroundRenderingID;

    UIApplication *app = [UIApplication sharedApplication];

    _backgroundRenderingID = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:_backgroundRenderingID];
        _backgroundRenderingID = UIBackgroundTaskInvalid;
    }];

一旦完成,别忘了放手!

[[UIApplication sharedApplication] endBackgroundTask:_backgroundRenderingID];