【发布时间】:2013-11-11 01:48:20
【问题描述】:
当我的应用程序进入后台时,我在将视频从 GPUImage videoCamera 保存到相机胶卷时遇到问题。该文件仅在应用程序返回前台/重新启动时保存到相机胶卷。毫无疑问,我会犯初学者代码错误,如果有人能指出这一点,将不胜感激。
- (void)applicationDidEnterBackground:(UIApplication *)application {
if (isRecording){
[self stopRecording];
};
if (self.isViewLoaded && self.view.window){
[videoCamera stopCameraCapture];
};
runSynchronouslyOnVideoProcessingQueue(^{
glFinish();
});
NSLog(@"applicationDidEnterBackground");
然后
-(void)stopRecording {
[filterBlend removeTarget:movieWriter];
videoCamera.audioEncodingTarget = nil;
[movieWriter finishRecording];
NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:@"file.mov"];
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:path] completionBlock:^(NSURL *assetURL, NSError *error) {
if (error) {
NSLog(@"Error %@", error);
} else {
NSLog(@"Success");
}
}];
isRecording = NO;
NSLog(@"Stop recording");
【问题讨论】:
-
-finishRecording是否在您的应用程序进入后台之前完成?如果在那之后抛出断点或日志语句,它什么时候完成?我会检查以确保-writeVideoAtPathToSavedPhotosAlbum:completionBlock:在您进入后台时启动,并且不会等到您返回前台。 -
感谢 Brad,这与您的诊断完全一样,再次感谢 GPUImage,它非常有用。
标签: gpuimage