4

一部のカメラのバーストモードのように、AVFoundation フレームワークを使用して、AVCaptureStillImageOutput から静止画像の「シリーズ」をすばやくキャプチャしようとしています。完了ハンドラを使いたいのですが、

    [stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection 
                                              completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) { 

後で処理するために imageSampleBuffer を NSOperation オブジェクトに渡します。ただし、NSOperation クラスでバッファを保持する方法が見つかりません。

    [stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection 
                                              completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error) { 

    //Add to queue
    SaveImageDataOperation *saveOperation = [[SaveImageDataOperation alloc] initWithImageBuffer:imageSampleBuffer];
    [_saveDataQueue addOperation:saveOperation];
    [saveOperation release];

    //Continue
    [self captureCompleted];
}];

ここで私が間違っていることを知っている人はいますか? これを行うためのより良いアプローチはありますか?

4

2 に答える 2

8

「重要:CMSampleBufferのクライアントは、ガベージコレクションを使用するプロセスであっても、CFRetainおよびCFReleaseを呼び出して保持カウントを明示的に管理する必要があります。」

ソース:CoreMedia.Framework CMSampleBuffer.h

于 2012-06-24T18:44:06.890 に答える