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

Unn*_*ati 8 iphone objective-c ios avassetwriter

我在iOS应用程序上工作,我正在从图像创建视频.我AVAssetWriter用来实现这一目标.一切正常.但当应用程序进入后台并切换回来时,视频写入失败.AVAssetWriterfinishWritingWithCompletionHandler当我切换回应用程序是没有得到调用.

当应用程序在渲染期间进入背景时,可能是AVAssetWriter的副本失败,但我没有得到任何帮助.

对此有何看法?

谢谢

Jav*_*edo 9

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

我通过要求操作系统授予应用后台任务权限(在有限的时间内)来修复我的应用程序.这个答案可能也会帮助你 在后台任务中生成iOS视频

    @property (nonatomic,assign) UIBackgroundTaskIdentifier __block backgroundRenderingID;

    UIApplication *app = [UIApplication sharedApplication];

    _backgroundRenderingID = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:_backgroundRenderingID];
        _backgroundRenderingID = UIBackgroundTaskInvalid;
    }];
Run Code Online (Sandbox Code Playgroud)

一旦完成,别忘了放手!

[[UIApplication sharedApplication] endBackgroundTask:_backgroundRenderingID];
Run Code Online (Sandbox Code Playgroud)