Volume button notification function is not being called.
Code:
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()
is being called in viewWillAppear
The code is not getting to the print statement "got in here"
, in either case.
I am trying two different ways to do it, neither way is working.
I have followed this: Detect iPhone Volume Button Up Press?
listen((volume) { //volume button is pressed, // this listener will be triggeret 3 times at one button press }); This listener will be triggered three times for system volume, music volume, and alarm volume. We have done a few tweaks to identify which button is pressed, either the volume or volume down button.
Try rebooting your phone by long pressing your power button for about thirty seconds till a menu comes, then click on restart or switch your phone off and on again. Rebooting your phone helps restart all background services and the software of your phone.
Using the second method, the value of the key path should be "outputVolume"
. That is the property we are observing. So change the code to,
var outputVolumeObserve: NSKeyValueObservation? let audioSession = AVAudioSession.sharedInstance() func listenVolumeButton() { do { try audioSession.setActive(true) } catch {} outputVolumeObserve = audioSession.observe(\.outputVolume) { (audioSession, changes) in /// TODOs } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With