2012-11-08 47 views
1

我使用AVAssetWriter编码从图像组视频第一弃用:finishWriting被弃用:在IOS 6.0

[assetWriter finishWriting]; 

,并且此方法在IOS产生一个警告信息6.

[assetWriter finishWritingWithCompletionHandler:<#^(void)handler#>]; 

这是怎样的方式我应该在iOS 6中应用它。任何人都可以帮助我应用它

回答

9

你不需要检查它是否完成。完成处理程序是一个块。写作完成后系统会调用它。尝试一下。

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

可以ü请与示例代码解释更 – mychar

+0

[assetWriter finishWritingWithCompletionHandler:^(){ } completionHandler:^(BOOL完成){如果(完成)NSLog(@“完成的写作”);} } ];你可以这样解释,这段代码有错误 – mychar

+0

[assetWriter finishWritingWithCompletionHandler:^(){ NSLog(@“finished writing”); }];这一个dosen't工作,我尝试it.It崩溃的应用程序,请帮助我 – mychar

1

这是作家开始代码

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]; 

    } 
相关问题