iphone - 检测 iPhone 上相机光圈何时打开

标签 iphone camera

对于自定义相机叠加层,我需要找出虹膜何时打开,因为当光圈关闭时我的叠加层将始终显示(然后动画打开)。

有什么想法吗?

最佳答案

您可以监听 PLCameraViewIrisAnimationDidEndNotification 通知。由于这没有正式记录,您可能违反了 Apple TOS,但我认为只要您编写代码,以便它可以防御此通知的名称或契约(Contract)可能更改的可能性(因此将来您可能不会收到该事件)你可能会没事的。换句话说,使用计时器或其他技术来确保在虹膜打开时您想要完成的事情最终一定会发生,即使您从未收到通知...

没有防御性编程的简单示例。 (当然,您也可以仅对此特定通知注册兴趣,请参阅通知中心的文档。)

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(notificationCallback:)
                                             name:nil
                                           object:nil
 ];

- (void) notificationCallback:(NSNotification *) notification {
     if ([[notification name] isEqualToString:@"PLCameraViewIrisAnimationDidEndNotification"]) {
         NSLog(@"Iris open");
         // we don't need to listen any more
         [[NSNotificationCenter defaultCenter] removeObserver:self];
     }
}

关于iphone - 检测 iPhone 上相机光圈何时打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1570419/

相关文章:

iphone - NSDate 为 "beginning of next hour"

ios - 家庭应用程序图标在我的 iphone 6 设备上没有正确显示。全黑

ios - AVCaptureTorchModeAuto 不会持续更新手电筒模式

android - 单击 GridView android时打开全屏图像

iphone - Objective-C 命名约定——澄清

iphone - 在不向右移动单元格内容的情况下显示 UITableViewCell 重新排序控件?

opencv - 使用外部摄像头时,Opencv应用程序崩溃

ios - 如何定位 SCNCamera 以便在 View 中看到对象 "just fits"?

ios - startUpdatingLocation 仅在 wifi 开启时有效,但仅在 3G 开启时无效

android - 闪光灯相机在 nexus S 和 nexus 5 中不工作,使用 android 4.4