【问题标题】:Callback for camera shutter open event相机快门打开事件的回调
【发布时间】:2010-02-17 06:15:12
【问题描述】:

我一直在 UIImagePickerController 中工作,但遇到一个问题,当源类型设置为相机 (UIImagePickerControllerSourceTypeCamera) 时,我需要在 UIImagePickerController 中获取相机快门打开的精确时刻。

我在谷歌上搜索了一下,发现没有人有这么奇怪的要求!

我查看了 UIImagePickerController 和 UIImagePickerControllerDelegate 的文档,希望获得一些指示相机快门打开事件的委托方法/回调,但没有找到。

有什么建议吗?

感谢您的帮助,

拉吉帕万

【问题讨论】:

  • 你能告诉我们更多关于你为什么认为你需要知道这一点以及你想要完成什么吗?你大概可以通过调用 UIGetScreenImage 并“寻找”快门来解决这个问题......
  • 我正在尝试使用 takePicture 和私有 api UIGetScreenImage 获取屏幕图像的示例应用程序,后来我发现 UIGetScreenImage 也提供了快门图像!不过,如果您使用的是私有 API,那就很明显了。所以我想知道是否可以在快门收回后稍晚触发 UIGetScreenImage,为此我需要一些回调/委托方法来通知快门已打开。我不太明白“UIGetScreenImage 和“寻找”快门的含义...... -”,如何区分快门图像和其他相机图像?

标签: iphone cocoa-touch uiimagepickercontroller


【解决方案1】:

订阅:

AVCaptureSessionDidStartRunningNotification

这是虹膜打开动画开始的时候。如果你在这段时间内添加一个cameraOverlayView,它会被虹膜正确覆盖。它与 PL… 私人通知同时发布。这是一种记录在案的方法,不会冒应用被拒绝的风险。

【讨论】:

  • 是的,但是当 AV 框架不存在并且我们的部署目标低至 iOS 3 时,有人问了我的问题。
【解决方案2】:

解决方案是观察私人通知,就像在这个线程中讨论的那样: Detecting when camera's iris is open on iPhone

【讨论】:

    【解决方案3】:

    我的建议(我自己没有尝试过,但不明白为什么它不起作用):

    • UIImagePickerController 类子类化为您自己的类,并覆盖 viewWillAppear 和 viewDidAppear :当 UIImagePickerController 即将出现或确实出现时将触发这些方法(例如,如果您使用 presentModalController 正确触发其显示) .

    
        @interface MyUIImagePickerController : UIImagePickerController {
        }
        @end
    
    
    @implementation MyUIImagePickerController
    -(void)viewWillAppear:(BOOL)animated {
        NSLog(@"the picker is about to appear");
        [super viewWillAppear:animated];
    }
    
    -(void)viewDidAppear:(BOOL)animated {
        NSLog(@"the picker did appear");
         [super viewDidAppear:animated];
    }
    @end
    

    【讨论】:

    • @yonel,它不起作用。 viewDidAppear 只要在相机快门关闭的情况下显示图像选择器控制器的视图。
    • 嗯,我没想到你所期望的准确度是如此“极端”:) 也许你能告诉我们为什么你需要在打开相机快门的时间上获得如此准确的时间吗?也许这会给“解决”这个问题的想法:/
    • 我用不同的关键词(虹膜而不是快门)做了更多的谷歌搜索,偶然发现了这个:stackoverflow.com/questions/1570419/…。它解决了我所有的问题。我一直在祈祷,希望苹果不会拒绝它。
    • Apple 同意我们使用此通知。可能是因为我们只是注册一个通知,并没有调用任何私有 API。
    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    相关资源
    最近更新 更多