3

我正在开发一个具有一些相机功能的应用程序,我想使用音量按钮拍照(就像 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。

除非“设置”>“声音”中的“使用按钮更改”设置已打开,否则此技巧有效。在这种情况下,我仍然会收到通知,但会出现 HUD。

知道即使打开该设置如何隐藏HUD?

4

1 回答 1

0

我确定GitHub 上可用的JPSVolumeButtonHandler可以

隐藏通常在按下音量按钮时显示的 HUD。

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

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

我建议看一下这个存储库,它工作得很好,我想也可以阅读描述

“设置”>“声音”中的“使用按钮更改”设置已打开

于 2015-10-09T13:06:16.113 回答