用音量按钮拍照

3

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

使用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呢?
1个回答

0

我确定在GitHub上可获得JPSVolumeButtonHandler

可以隐藏通常出现于音量键按下的HUD。

我发现这个解决方法与你的类似:

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

我建议查看这个代码仓库,它工作得非常好。同时,当“设置”>“声音”中的“按钮改变”选项打开时,也可以阅读一下描述。

1
即使启用了“使用按钮更改”设置,它是否仍然有效?我稍后会查看存储库。 - Luca Torella
抱歉,我不知道更多,现在也无法尝试。 - Massimo Polimeni
显然,如果我使用那个类,它就能工作。我想知道我的代码缺少了什么部分。 - Luca Torella
你发布的这三行代码看起来没问题,所以你需要检查一下代码中的其他行;可能只是一个小错误。 - Massimo Polimeni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接