Wdrażam oprogramowanie do tworzenia wideo z kamery internetowej. Widziałem próbkę MyRecorder w Apple Dev i działa dobrze.Ramka do uchwycenia kakao z kamery internetowej
Próbowałem dodać przycisk, aby zrobić zdjęcie z filmu z tego kodu:
- (IBAction)addFrame:(id)sender
{
CVImageBufferRef imageBuffer;
@synchronized (self) {
imageBuffer = CVBufferRetain(mCurrentImageBuffer);
}
if (imageBuffer) {
[ bla bla bla ]
}
}
ale mCurrentImageBuffer jest zawsze pusty. Jak mogę pobrać bieżącą ramkę z mojej kamery i umieścić mCurrentImageBuffer?
Próbowałem użyć
(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);
}
ale to nigdy nie dzwonił. Jak mogę zdecydować, kiedy metoda delegowania połączeń captureOutput? Każdy pomysł?
Dzięki, Andrea
Po zakończeniu inicjalizacji wideo przesunąłem kod definicji QTCaptureDecompressedVideoOutput, a teraz mCurrentImageBuffer nie jest pusty, ale na dysku nie są zapisywane żadne filmy wideo –
The [imagesnap] (http://iharder.sourceforge.net/current/ macosx/imagesnap /) projekt open-source jest narzędziem wiersza poleceń C do robienia zdjęć z kamery internetowej. –