什么是在iOS 8上捕获音量增/减按钮的最佳/最干净的方式什么?
理想情况下,我想捕获按键并防止系统音量发生变化(或者至少阻止音量变化HUD显示).
有一些旧的答案会使用已弃用的方法,并且在iOS 8上似乎根本不起作用.这个iOS 8特定的一个也不起作用.
这个RBVolumeButtons开源类似乎也不适用于iOS 8.
未调用音量按钮通知功能.
码:
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")
}
Run Code Online (Sandbox Code Playgroud)
listenVolumeButton() 正在viewWillAppear中调用
"got in here"在任何一种情况下,代码都没有进入print语句.
我正在尝试两种不同的方法来实现它,两种方式都不起作用.
我跟着这个:检测iPhone音量按钮向上按?