9

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

当应用程序在渲染期间进入后台时,可能是AVAssetWriter 失败的副本,但我没有从那里得到任何帮助。

有什么想法吗?

谢谢

4

1 回答 1

9

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

我通过要求操作系统授予应用程序后台任务权限(在有限的时间内)在我的应用程序中解决了这个问题。这个答案也可以帮助你 iOS在后台任务中生成视频

    @property (nonatomic,assign) UIBackgroundTaskIdentifier __block backgroundRenderingID;

    UIApplication *app = [UIApplication sharedApplication];

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

完成后别忘了放手!

[[UIApplication sharedApplication] endBackgroundTask:_backgroundRenderingID];
于 2013-05-03T10:07:13.037 回答