【问题标题】:AVCapturePhotoOutput - changes in Xcode 9 Beta 5AVCapturePhotoOutput - Xcode 9 Beta 5 中的更改
【发布时间】:2017-08-07 20:23:48
【问题描述】:

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

open var __supportedFlashModes: [NSNumber] { get }

【问题讨论】:

    标签: swift xcode video avkit


    【解决方案1】:

    我猜新的 Swiftified supportedFlashModes 属性已在计划中,但尚未在 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 拒绝

    (添加了粗体。)

    【讨论】:

    • @AshleyMills,不幸的是真的。而且我找不到此类__-leaded 属性的任何 Swiftified 替代品。 (Apple's reference page 缺少此类属性的 Swift 版本。希望 Apple 的审核团队不会将此视为使用私有 API,但未得到证实。
    • Apple 已确认错误并改用__xx API。见这里:forums.developer.apple.com/thread/86810
    • @ShaiBen-Tovim,感谢您提供的链接。很高兴看到 Apple 的工程师已经确认。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多