gpt4 book ai didi

ios - Swift:检测音量按钮按下 NOT 音量变化事件

转载 作者:搜寻专家 更新时间:2023-10-31 22:30:18 24 4
gpt4 key购买 nike

有没有办法专门检测按钮按下,而不是音量变化事件。我尝试关注这两个帖子,但它们检测到音量变化而不是按钮按下:

Cleanest way of capturing volume up/down button press on iOS8

swift detect volume button press

我不能使用这两个事件的原因是因为我的应用程序会在某些事件期间自动调整音量。当应用执行此操作时,它与用户手动按下音量按钮时的事件不同。

最佳答案

所以我要做的是像他们在您链接的问题中那样订阅通知,然后添加一个名为 say programmaticVolumeChange 的变量。当您以编程方式更改音量时,将变量设置为 true,然后在函数 observeValueForKeyPath 中,如果变量为 true,则不要取消警报(之后自然将其设置为 false)。这样,当用户按下音量按钮时,您就知道这不是您的代码。也许可以测试程序化音量更改和函数调用之间的时间量,但我认为这没问题。

例如

var programmaticVolumeChange = false

func changeVolumeProgramatically() {

programmaticVolumeChange = true
//change volume programmatically after

}

override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject,
change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {

if keyPath == "outputVolume"{

if programmaticVolumeChange {

programmaticVolumeChange = false

} else {

//handle logic for user volume button press

}

}

}

关于ios - Swift:检测音量按钮按下 NOT 音量变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com