我正在尝试进行屏幕捕获并将其写为视频文件。
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'
答案 0 :(得分:1)
你在某处调用[assetWriter startWriting]吗?
这个错误基本上意味着作者现在不是真正写作,所以它不能真正停止写作。如果你确实看到了AVWriter's status codes的意思,那么你会看到2是完成写作的时候。
enum {
AVAssetWriterStatusUnknown = 0,
AVAssetWriterStatusWriting,
AVAssetWriterStatusCompleted,
AVAssetWriterStatusFailed,
AVAssetWriterStatusCancelled
};