无法阻止assetWriter完成写作

时间:2013-10-15 10:11:50

标签: video crash save screen-capture avassetwriter

我正在尝试进行屏幕捕获并将其写为视频文件。

assetWriterTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
                                                    target:self
                                                  selector:@selector (writeSample:)
                                                  userInfo:nil
                                                   repeats:YES] ;

-(void) writeSample: (NSTimer*) _timer
{
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
           //capture and save image to video
        });
}

要停止录制,我写

-(void) stopRecording 
{

[assetWriterTimer invalidate];
assetWriterTimer = nil;
[assetWriterTimer release];

[assetWriter finishWritingWithCompletionHandler:^(){
    NSLog (@"finished writing completion handler");
}];

NSLog (@"finished writing");
}

但是,我主要得到此错误并且应用程序崩溃。我应该怎么做?
- [AVAssetWriter finishWriting]状态为2'

时无法调用方法

1 个答案:

答案 0 :(得分:1)

你在某处调用[assetWriter startWriting]吗?

这个错误基本上意味着作者现在不是真正写作,所以它不能真正停止写作。如果你确实看到了AVWriter's status codes的意思,那么你会看到2是完成写作的时候。

enum {
 AVAssetWriterStatusUnknown = 0,
 AVAssetWriterStatusWriting,
 AVAssetWriterStatusCompleted,
 AVAssetWriterStatusFailed,
 AVAssetWriterStatusCancelled
};