首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >finishWriting已弃用:在iOS 6.0中首次弃用

finishWriting已弃用:在iOS 6.0中首次弃用
EN

Stack Overflow用户
提问于 2012-11-08 18:40:47
回答 2查看 6.1K关注 0票数 1

我使用AVAssetWriter对图像集中的视频进行编码:

代码语言:javascript
复制
[assetWriter finishWriting];

此方法会在iOS 6中生成警告。

代码语言:javascript
复制
[assetWriter finishWritingWithCompletionHandler:<#^(void)handler#>];

这就是我应该如何在iOS 6中应用它。有人能帮助我应用它吗

EN

回答 2

Stack Overflow用户

发布于 2012-11-08 19:21:10

你不需要检查它是否完成了。完成处理程序是一个块。当写入完成时,它将被系统调用。试试看。

代码语言:javascript
复制
[assetWriter finishWritingWithCompletionHandler:^(){
    NSLog (@"finished writing");
}];
票数 10
EN

Stack Overflow用户

发布于 2012-11-10 12:22:00

这是编写器开始代码

代码语言:javascript
复制
 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] ;

这是编写器停止代码

代码语言:javascript
复制
  if (isRecording) {
        isRecording = NO;
        [_session stopRunning];
        [assetWriterTimer invalidate];
        assetWriterTimer = nil;


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


        [self loadOvelay];

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13287374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档