使用音量按钮拍照

Take picture with volume button

我正在开发一个具有某些相机功能的应用程序,我想使用音量按钮拍照(就像 Apple 相机应用程序一样)。

使用 MPVolumeView 和这个片段:

let rect = CGRect(x: -500, y: -500, width: 0, height: 0)
let volumeView = MPVolumeView(frame: rect)
UIApplication.sharedApplication().windows.first?.addSubview(volumeView)

并注册到 AVSystemController_SystemVolumeDidChangeNotification 通知我可以在按下按钮时拦截并避免显示音量 HUD。

这个技巧有效除非设置 > 声音中的设置 "Change with Buttons" 已打开。在那种情况下,我仍然会收到通知,但 HUD 会出现。

知道如何在该设置打开时隐藏 HUD 吗?

我确定 JPSVolumeButtonHandlerGitHub 上可用

Hide the HUD typically displayed on volume button presses.

我发现解决方法在这里,但它与您的解决方案相似:

- (void)disableVolumeHUD 
{
    self.volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(MAXFLOAT, MAXFLOAT, 0, 0)];
    [[[[UIApplication sharedApplication] windows] firstObject] addSubview:self.volumeView];
}

我建议查看此存储库,它运行良好,我想

时也请阅读说明

the setting "Change with Buttons" in Settings > Sounds is on