gpt4 book ai didi

ios - 检测音量按钮按下

转载 作者:IT王子 更新时间:2023-10-29 05:24:49 27 4
gpt4 key购买 nike

没有调用音量按钮通知函数。

代码:

func listenVolumeButton(){
// Option #1
NSNotificationCenter.defaultCenter().addObserver(self, selector: "volumeChanged:", name: "AVSystemController_SystemVolumeDidChangeNotification", object: nil)
// Option #2
var audioSession = AVAudioSession()
audioSession.setActive(true, error: nil)
audioSession.addObserver(self, forKeyPath: "volumeChanged", options: NSKeyValueObservingOptions.New, context: nil)
}

override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
if keyPath == "volumeChanged"{
print("got in here")
}
}

func volumeChanged(notification: NSNotification){
print("got in here")
}

listenVolumeButton() 正在 viewWillAppear 中调用

无论哪种情况,代码都没有到达打印语句 “got in here”

我正在尝试两种不同的方法来做到这一点,但两种方法都行不通。

我已经关注了:Detect iPhone Volume Button Up Press?

最佳答案

使用第二种方法,关键路径的值应该是"outputVolume"。这就是我们正在观察的属性。所以把代码改成,

var outputVolumeObserve: NSKeyValueObservation?
let audioSession = AVAudioSession.sharedInstance()

func listenVolumeButton() {
do {
try audioSession.setActive(true)
} catch {}

outputVolumeObserve = audioSession.observe(\.outputVolume) { (audioSession, changes) in
/// TODOs
}
}

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

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