【发布时间】:2017-02-10 05:07:47
【问题描述】:
有没有办法专门检测按钮按下,而不是音量变化事件。我尝试关注这两个帖子,但它们检测到音量变化而不是按钮按下:
Cleanest way of capturing volume up/down button press on iOS8
swift detect volume button press
我不能使用这两个事件的原因是因为我的应用会在某些事件期间自动调整音量。当应用执行此操作时,它与用户手动按下音量按钮时的事件不同。
【问题讨论】:
-
为什么需要知道具体何时按下按钮?
-
这是一个闹钟应用,所以当触发闹钟时,我的应用会将系统音量从当前级别更改为最大级别。此音量更改是程序化的,即使用户没有按下音量按钮,也会触发以下操作: AVAudioSession.sharedInstance().addObserver(self, forKeyPath: "outputVolume", options: NSKeyValueObservingOptions.New, context: nil)跨度>
-
有道理,在警报响起后移除观察者会更容易吗?这在您的代码中不可行吗?
-
我实际上希望观察者在警报响起(被触发)时处于活动状态,因为我希望音量按钮使警报静音。
-
1.它可能使用一些相同的技术来检测音量按钮按下,通过检测音量变化事件。 2. 他们的代码可能会干扰我的代码,因为我们似乎都在访问和操作相同的共享全局实例:AVAudioSession.sharedInstance()... 3. 我看到它在 setSystemVolume 方法中使用了 MPMusicPlayerController,我认为它现在已被弃用。跨度>