gpt4 book ai didi

ios - AVCaptureVideoDataOutput 和 AVCaptureAudioDataOutput 相同队列

转载 作者:行者123 更新时间:2023-11-29 05:18:33 25 4
gpt4 key购买 nike

Apple 最近的示例代码之一使用相同的串行队列从 AVCaptureVideoDataOutput 和 AVCaptureAudioDataOutput 委托(delegate)接收示例。我需要知道从性能的角度来看这是否是可以接受的做法。两个样本缓冲区委托(delegate)应该有不同的队列还是单个队列?特别是在多个摄像机输入/输出的设置中,这一点变得很重要。

 private let dataOutputQueue = DispatchQueue(label: "data output queue")
...
...
videoDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)
audioDataOutput.setSampleBufferDelegate(self, queue: dataOutputQueue)

最佳答案

我想当谈到性能时:

  1. 这始终取决于您的情况。也许对于 Apple 的示例来说还可以,但也许在您的情况下它确实需要更多。
  2. 您可以亲自尝试一下。尝试在最慢的设备上获取尽可能多的输入,看看性能是否仍然足够好。

有一个类似的问题,由于串行队列导致性能不好,答案是使用并发队列,请参见此处: Performance issues when using AVCaptureVideoDataOutput and AVCaptureAudioDataOutput

但我再次建议您尝试一下,看看什么适合您:)

更新

这里的链接完美地解释了差异以及如何使用串行和并发队列: https://www.avanderlee.com/swift/concurrent-serial-dispatchqueue/

关于ios - AVCaptureVideoDataOutput 和 AVCaptureAudioDataOutput 相同队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58921202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com