Apple最近的示例代码之一使用相同的串行队列从AVCaptureVideoDataOutput和AVCaptureAudioDataOutput委托接收示例。从性能的角度来看,我需要知道这是否可以接受。两个样本缓冲区委托应该有不同的队列还是一个队列?特别是在设置多个摄像机输入/输出时,这一点变得尤为重要。
private let dataOutputQueue = DispatchQueue(label: "data output queue")
...
...
videoDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)
audioDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)
我想在性能方面:
还有一个类似的问题,即由于串行队列而导致性能不佳,答案是使用并发队列,请参见此处:Performance issues when using AVCaptureVideoDataOutput and AVCaptureAudioDataOutput
但是再次,我建议您尝试一下,看看有什么适合您的:)