ウェブカメラからビデオをキャプチャするソフトウェアを実装しています。Apple Dev で MyRecorder サンプルを見たことがありますが、問題なく動作します。
次のコードを使用して、ビデオからスナップショットを取得するボタンを追加しようとしました。
- (IBAction)addFrame:(id)sender
{
CVImageBufferRef imageBuffer;
@synchronized (self) {
imageBuffer = CVBufferRetain(mCurrentImageBuffer);
}
if (imageBuffer) {
[ bla bla bla ]
}
}
ただし、mCurrentImageBuffer は常に空です。ウェブカメラから現在のフレームを取得し、mCurrentImageBuffer に配置するにはどうすればよいですか?
私は使用しようとしました
(void)captureOutput:(QTCaptureOutput *)captureOutput
didOutputVideoFrame:(CVImageBufferRef)videoFrame
withSampleBuffer:(QTSampleBuffer *)sampleBuffer
fromConnection:(QTCaptureConnection *)connection
{
CVImageBufferRef imageBufferToRelease;
CVBufferRetain(videoFrame);
@synchronized (self) {
imageBufferToRelease = mCurrentImageBuffer;
mCurrentImageBuffer = videoFrame;
}
CVBufferRelease(imageBufferToRelease);
}
しかし、それは決して呼び出されません。captureOutput デリゲート メソッドをいつ呼び出すかを決定するにはどうすればよいですか? 何か案が?
ありがとう、アンドレア