【发布时间】:2015-06-15 16:51:23
【问题描述】:
我对@987654322@ 的委托方法didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 有疑问。
当我将 sampleBuffer 添加到 CFArray 时,它会在一两秒内停止调用。如果我删除 CFArray 代码,委托方法会继续被调用,所以我不知道为什么 CFArray 代码会导致它停止。如有任何帮助,我将不胜感激。
@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);
}
}
控制台输出:
// 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
【问题讨论】:
-
如何创建和启动会话?你如何配置你的输出?您是否尝试为
AVCaptureSessionRuntimeErrorNotification通知设置观察者,会发生吗?如果您写入文件,会出现captureOutput:willFinishRecordingToOutputFileAtURL:fromConnections:dueToError:吗?你能提供一些重现问题的示例项目吗?提供有关您的问题的更多信息。
标签: ios objective-c avfoundation avcapturesession