Je suis l'implémentation d'un logiciel pour caputre la vidéo de la webcam. J'ai vu MyRecorder exemple dans Apple Dev et ça fonctionne bien.image de capture de cacao de webcam
J'ai essayé d'ajouter un bouton pour prendre un instantané de la vidéo avec ce code:
- (IBAction)addFrame:(id)sender
{
CVImageBufferRef imageBuffer;
@synchronized (self) {
imageBuffer = CVBufferRetain(mCurrentImageBuffer);
}
if (imageBuffer) {
[ bla bla bla ]
}
}
mais mCurrentImageBuffer est toujours vide. Comment puis-je prendre l'image actuelle de ma webcam et mettre mCurrentImageBuffer?
J'ai essayé d'utiliser
(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);
}
mais il n'a jamais appelé. Comment puis-je décider quand appeler captureOutput méthode de délégation? Une idée?
merci, Andrea
J'ai déplacé le code de définition QTCaptureDecompressedVideoOutput à la fin de l'initialisation de la vidéo et maintenant mCurrentImageBuffer n'est pas vide, mais aucune vidéo n'est enregistrée sur le disque –
The [imagesnap] (http://iharder.sourceforge.net/current/ macosx/imagesnap /) open-source project est un outil de ligne de commande d'objectif-C pour prendre des photos de webcam. –