gpt4 book ai didi

ios - 将 UIImagePickerController 与自定义相机控件一起使用时,如何在音量增大事件上拍照?

转载 作者:行者123 更新时间:2023-12-01 17:44:54 58 4
gpt4 key购买 nike

在 iOS 5 中,音量增大按钮现在将在相机应用程序中拍照,在 UIImagePickerController.showsCameraControlls == YES 的实例.快乐的时光。

但是,当我设置 showsCameraControllsNO ,并提供我自己的(这反过来会触发 takePicture 方法),音量增大按钮将不再起作用。如何在 UIImagePickerController 显示时检测音量事件?

检测音量变化的旧方法是这样的:

AudioSessionSetActive(true);
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(volumeChanged:)
name:@"AVSystemController_SystemVolumeDidChangeNotification"
object:nil];

我将此代码添加到我的应用程序委托(delegate)中。奇怪 volumeChanged:直到我显示 UIImagePickerController 后才会触发首次。更重要的是,它不会在 UIImagePickerController 可见时触发(也不会显示通常的音量 HUD),我猜是因为 Apple 禁用了它并劫持了该事件。

所以再一次,有什么方法可以检测到音量增大按钮事件,而 UIImagePickerController正在显示,当使用自定义相机控件时,为了拍照?

如果您想知道为什么我需要使用自定义相机控件,那是因为我希望能够拍摄多张照片,而标准相机控件不允许这样做。

最佳答案

在 iOS 8 上,您可以将观察者添加到通知 _UIApplicationVolumeUpButtonDownNotification

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(volumeChanged:)
name:@"_UIApplicationVolumeUpButtonDownNotification"
object:nil];

如果您使用 UIImagePickerController ,我能够捕获该事件并使用它来调用 TakePicture带有自定义 View 。

最重要的是, UIImagePickerController确保按音量增大不会改变音量。

我不确定 Apple 是否会批准收听该通知的应用程序;这似乎是最干净的方法。

关于ios - 将 UIImagePickerController 与自定义相机控件一起使用时,如何在音量增大事件上拍照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109353/

58 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com