私はAVAssetWriter
画像セットからビデオをエンコードするために使用します:
[assetWriter finishWriting];
このメソッドは、iOS 6 で警告を生成します。
[assetWriter finishWritingWithCompletionHandler:<#^(void)handler#>];
これは、iOS 6でそれを適用する方法です。誰かがそれを適用するのを手伝ってくれますか
私はAVAssetWriter
画像セットからビデオをエンコードするために使用します:
[assetWriter finishWriting];
このメソッドは、iOS 6 で警告を生成します。
[assetWriter finishWritingWithCompletionHandler:<#^(void)handler#>];
これは、iOS 6でそれを適用する方法です。誰かがそれを適用するのを手伝ってくれますか
終了したかどうかを確認する必要はありません。完了ハンドラーはブロックです。書き込みが終了すると、システムから呼び出されます。それを試してみてください。
[assetWriter finishWritingWithCompletionHandler:^(){
NSLog (@"finished writing");
}];
これはライターのスタートコードです
NSURL *movieURL = [NSURL fileURLWithPath:myPathDocs1];
NSError *movieError = nil;
[assetWriter release];
assetWriter = [[AVAssetWriter alloc] initWithURL:movieURL
fileType: AVFileTypeQuickTimeMovie
error: &movieError];
NSDictionary *assetWriterInputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
AVVideoCodecH264, AVVideoCodecKey,
[NSNumber numberWithInt:FRAME_WIDTH], AVVideoWidthKey,
[NSNumber numberWithInt:FRAME_HEIGHT], AVVideoHeightKey,
nil];
assetWriterInput = [AVAssetWriterInput assetWriterInputWithMediaType: AVMediaTypeVideo
outputSettings:assetWriterInputSettings];
assetWriterInput.expectsMediaDataInRealTime = YES;
[assetWriter addInput:assetWriterInput];
[assetWriterPixelBufferAdaptor release];
assetWriterPixelBufferAdaptor = [[AVAssetWriterInputPixelBufferAdaptor alloc]
initWithAssetWriterInput:assetWriterInput
sourcePixelBufferAttributes:nil];
[assetWriter startWriting];
firstFrameWallClockTime = CFAbsoluteTimeGetCurrent();
[assetWriter startSessionAtSourceTime: CMTimeMake(0, TIME_SCALE)];
// start writing samples to it
[assetWriterTimer release];
assetWriterTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f/60.0f
target:self
selector:@selector (writeSample:)
userInfo:nil
repeats:YES] ;
これはライターの停止コードです
if (isRecording) {
isRecording = NO;
[_session stopRunning];
[assetWriterTimer invalidate];
assetWriterTimer = nil;
[assetWriter finishWritingWithCompletionHandler:^(){
NSLog (@"finished writing");
}];
[self loadOvelay];
}