2

刚刚安装了最新的 XCode 版本,它在 AVCapturePhotoOutput 类中提供了一些更改,我想知道如何获取支持的 flash 模式列表。在以前的版本中,我使用supportedFlashModes了不再可用的属性

open var __supportedFlashModes: [NSNumber] { get }
4

2 回答 2

2

我猜新的 SwiftifiedsupportedFlashModes属性已经在计划中,但尚未在 beta 5 中完成。

open var supportedFlashModes: [AVCaptureDevice.FlashMode] { get }

直到我的猜测被证实(可能是否定的)的那一天,你可以使用__supportedFlashModes. 它没有被删除,只是重命名。

(一些测试版包含这种正在建设中的重命名。)

您最好发送错误报告以让 Apple 了解此问题。


编辑 似乎 iOS 11 SDK/Xcode 9.1 已经解决了这个问题,Xcode 9.1 beta 的发行说明说:

  • 以下 AVFoundation API 现在可用:
    • AVCaptureDevice.Format.supportedColorSpaces
    • AVCaptureDevice.supportedFlashModes
    • AVCapturePhotoOutput.availablePhotoPixelFormatTypes
    • AVCapturePhotoOutput.availableRawPhotoPixelFormatTypes
    • AVCapturePhotoSettings.availablePreviewPhotoPixelFormatTypes

之前修改为使用双下划线作为解决方法的代码应修改为使用这些公共符号,否则应用程序可能会被 App Store 拒绝

(添加了粗体样式。)

于 2017-08-07T21:06:26.890 回答
0

Apple 相机开发团队确认 Swift 版本的 API 无意中被排除在 Xcode 9 版本之外。直到固定必须使用__supportedFlashModes

请参阅此处:https : //forums.developer.apple.com/thread/86810 顺便说一句,其他一些 AVFoundation API 也受到影响。

于 2017-09-25T09:08:24.657 回答