Estoy implementando un software para capturar video desde la cámara web. He visto la muestra MyRecorder en Apple Dev y funciona bien.marco de captura de cacao desde la webcam
He intentado añadir un botón para tomar una instantánea de vídeo con este código:
- (IBAction)addFrame:(id)sender
{
CVImageBufferRef imageBuffer;
@synchronized (self) {
imageBuffer = CVBufferRetain(mCurrentImageBuffer);
}
if (imageBuffer) {
[ bla bla bla ]
}
}
pero mCurrentImageBuffer siempre está vacía. ¿Cómo puedo tomar el fotograma actual de mi cámara web y ponerme mCurrentImageBuffer?
He intentado utilizar
(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);
}
pero nunca llama. ¿Cómo puedo decidir cuándo call captureOutput delegate method? ¿Alguna idea?
gracias, Andrea
He movido el código de definición QTCaptureDecompressedVideoOutput al final de la inicialización del video y ahora mCurrentImageBuffer no está vacío, pero no hay videos guardados en el disco –
El [imagesnap] (http://iharder.sourceforge.net/current/ macosx/imagesnap /) open-source project es una herramienta de línea de comandos Object-C para tomar fotos de webcam. –