【问题标题】:Implications on AVCapturePhotoOutput preparedPhotoSettingsArray对 AVCapturePhotoOutput 的影响preparedPhotoSettingsArray
【发布时间】:2020-07-07 11:51:56
【问题描述】:

在 AVFoundation 中,AVCapturePhotoSettings 类使开发人员能够根据自己的需要配置照片捕获。

AVCapturePhotoOutput 内部,开发者可以选择调用setPreparedPhotoSettingsArray(_:completionHandler:) 方法,该方法将预先设置照片输出的捕获设置。这样做是为了(来自文档):“防止由于资源分配延迟而导致照片捕获请求执行缓慢。”

另一种设置捕获设置的方法是在捕获时通过AVCapturePhotoOutput 中的capturePhoto(with:delegate:) 方法设置AVCapturePhotoSettings

我想使用setPreparedPhotoSettingsArray(_:completionHandler:) 预先设置某些捕获设置。这些设置是我知道我一定会使用的配置。

我还有一些可以切换的捕获设置,因此,我不能保证我会使用某些配置。我想在捕获时使用capturePhoto(with:delegate:) 设置这些设置。我想知道我该怎么做。

通读 Apple 文档,我的解释是调用 capturePhoto(with:delegate:) 将覆盖之前使用 setPreparedPhotoSettingsArray(_:completionHandler:) 设置的 preparedPhotoSettingsArray。我想在现有的 preparedPhotoSettingsArray ad hoc 上附加额外的规范/设置,而不是覆盖它们。

【问题讨论】:

    标签: ios swift video avfoundation photo


    【解决方案1】:

    据我了解,setPreparedPhotoSettingsArray 实际上并不是 设置 下一次捕获期间使用的设置,而是 提示 系统您是什么设置(可能)准备使用,以便提前准备资源,加快实际捕获速度。

    这意味着您始终为当前捕获配置AVCapturePhotoSettings,无论您之前使用setPreparedPhotoSettingsArray 告诉系统什么。如果当前设置与您准备的设置不同,则系统可能需要更长的时间进行此捕获,因为它需要先分配资源。

    我想最好的做法是在用户更改界面中的捕获设置后立即调用setPreparedPhotoSettingsArray,假设他/她在更改设置和实际捕获之间需要一些时间,以便系统可以准备在那段时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-18
      • 2016-11-06
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多