AVCapturePhotoOutput - Xcode 9 Beta 5 中的更改
Posted
技术标签:
【中文标题】AVCapturePhotoOutput - Xcode 9 Beta 5 中的更改【英文标题】:AVCapturePhotoOutput - changes in Xcode 9 Beta 5 【发布时间】:2017-08-07 20:23:48 【问题描述】:刚刚安装了最新的 XCode 版本,它在 AVCapturePhotoOutput 类中提供了一些更改,我想知道如何获取支持的 flash 模式列表。在以前的版本中,我使用了supportedFlashModes
属性,该属性不再可用
open var __supportedFlashModes: [NSNumber] get
【问题讨论】:
【参考方案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 也受到影响。
【讨论】:
以上是关于AVCapturePhotoOutput - Xcode 9 Beta 5 中的更改的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS10 中使用 AVCapturePhotoOutput - NSGenericException
使用 AVCapturePhotoOutput 使用闪光灯拍照时出现问题
无法仅获取在 Swift 中显示相机(AVCapturePhotoOutput)的 UIView 的屏幕截图
为啥在 AVCapturePhotoOutput 上调用 .capturePhoto(with:,delegate:) 会导致崩溃