用音量键拍照

Posted

技术标签:

【中文标题】用音量键拍照【英文标题】:Take picture with volume button 【发布时间】:2015-10-09 08:25:16 【问题描述】:

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

使用MPVolumeView 和这个sn-p:

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】:

我确定GitHub 上可用的 JPSVolumeButtonHandler 可以

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

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

- (void)disableVolumeHUD 

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

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

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

【讨论】:

即使在“使用按钮更改”设置打开的情况下也能正常工作吗?稍后我会看看 repo 对不起,我不知道更多,现在我不能尝试 显然,如果我使用该类,它就可以工作。我想知道我的代码中缺少什么。 您发布的三行似乎没问题,因此您需要检查代码中的其他行;也许这只是一个小错误。

以上是关于用音量键拍照的主要内容,如果未能解决你的问题,请参考以下文章

Android 11拍照强制声音

iPhone如何在按下音量键时隐藏音量覆盖

adb模拟按键输入

自动化测试===adb 解锁手机的思路

高拍仪拍照之后图片显示问题

用AVFoundation自定义相机拍照