- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
关于 Apple 的 iOS 6.0 feature page , 它曾经说
Take advantage of the built-in camera’s advanced features. New APIs let you control focus, exposure, and region of interest. You can also access and display faces with face detection APIs, and leverage hardware-enabled video stabilization.
此文本已被删除,我在 API 中找不到用于控制曝光的新方法。在“曝光设置”下的 AVCaptureDevice
类中,iOS 6.0 没有新的属性/方法。您知道我在哪里可以找到 API 中公开的新功能吗?
最佳答案
AVCaptureDevice
确实有一个-exposureMode
属性,但这仅用于设置模式(关闭/自动/连续)而不是实际的 f-stop 、SS 或 ISO。提供“曝光”控制的相机应用程序似乎都是通过后期处理来实现的。
但是,框架中似乎有未记录的 API 可以执行此操作。查看full headers for AVCaptureDevice.h
(通过 class-dump )并注意以下方法:
- (void)setManualExposureSupportEnabled:(BOOL)arg1;
- (BOOL)isManualExposureSupportEnabled;
- (void)setExposureGain:(float)arg1;
- (float)exposureGain;
- (void)setExposureDuration:(struct { long long x1; int x2; unsigned int x3; long long x4; })arg1;
- (struct { long long x1; int x2; unsigned int x3; long long x4; })exposureDuration;
- (void)setExposureMode:(int)arg1;
- (int)exposureMode;
- (BOOL)isExposureModeSupported:(int)arg1;
我的猜测是 gain
相当于 f-stop(固定光圈),duration
是快门速度。我想知道这些是否用于 iPhone 5 的 low-light boost mode .
您还可以使用 otool
四处寻找并尝试拼凑符号。 exposureMode
中可能有一个新常量用于启用手动控制,而 exposureDuration
似乎也有标志。调用这些时,请确保使用新的 -isExposureModeSupported:
并调用 -respondsToSelector:
来检查兼容性。
一如既往,Apple 不赞成使用私有(private) API,这也是 App Store 拒绝的原因。可能有解决此问题的方法,例如使用 -performSelector:
或 obc_msgsend
隐藏调用使用 rot13 字符串或其他东西,因为我很确定他们只对应用程序二进制文件进行静态分析。
关于iphone - 访问用于相机曝光和快门速度的 iOS 6 新 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12635446/
我正在使用 Shutter,我非常喜欢它。我将它安装在我的新笔记本电脑上,但无法正常工作。当我打开快门并尝试截取屏幕截图时,它显示错误消息“打开/home/username/Pictures 时出错”
我是一名优秀的程序员,十分优秀!