Ho un problema con il metodo delegato didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
di AVCaptureOutput
.AVCaptureOutput didOutputSampleBuffer smette di essere chiamato
Si interrompe la chiamata entro un secondo o due quando aggiungo sampleBuffer a CFArray
. Se rimuovo il codice CFArray
, il metodo delegate continua a essere chiamato così non ho idea del motivo per cui il codice CFArray
sta causando l'arresto. Apprezzerei qualsiasi aiuto.
@property CFMutableArrayRef sampleBufferArray;
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
NSLog(@"Called");
if (!self.sampleBufferArray)
{
self.sampleBufferArray = CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks);
CFArrayAppendValue(self.sampleBufferArray, sampleBuffer);
}
else
{
CFArrayAppendValue(self.sampleBufferArray, sampleBuffer);
}
}
Console ouput:
// Session start
2015-06-15 13:06:07.264 App[22467:5897858] Called
2015-06-15 13:06:07.286 App[22467:5897858] Called
2015-06-15 13:06:07.289 App[22467:5897858] Called
2015-06-15 13:06:07.315 App[22467:5897895] Called
2015-06-15 13:06:07.366 App[22467:5897895] Called
2015-06-15 13:06:07.384 App[22467:5897895] Called
2015-06-15 13:06:07.411 App[22467:5897895] Called
2015-06-15 13:06:07.449 App[22467:5897858] Called
2015-06-15 13:06:07.480 App[22467:5897858] Called
2015-06-15 13:06:07.513 App[22467:5897895] Called
2015-06-15 13:06:07.546 App[22467:5897895] Called
2015-06-15 13:06:07.579 App[22467:5897895] Called
2015-06-15 13:06:07.614 App[22467:5897895] Called
// No more calls after this point
come si crea e si avvia una sessione? come configuro il tuo output? hai provato a impostare un osservatore per la notifica di 'AVCaptureSessionRuntimeErrorNotification', si verifica? Se scrivi sul file, 'captureOutput: willFinishRecordingToOutputFileAtURL: fromConnections: dueToError:' si verifica? puoi fornire qualche progetto di esempio che riproduca il problema? Fornisci ulteriori informazioni sul tuo problema. –