2014-10-31 1 views
4

Я пытаюсь получить уведомление при нажатии кнопки регулировки громкости (той, что находится слева от телефона). Я много googled, и мне кажется, что я должен использовать mediaPlayer, но так как я новичок в iOS, и Swift не может заставить его работать. Вот что я делаю:том кнопка уведомление iPhone

import UIKit 
import MediaPlayer 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var mediaPlayer: MPMusicPlayerController = MPMusicPlayerController() 

     NSNotificationCenter.defaultCenter().addObserver(mediaPlayer, 
      selector: "volumeIsChanged:", 
      name: MPMusicPlayerControllerVolumeDidChangeNotification, 
      object: nil) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    func volumeIsChanged(notification: NSNotification){ 
     println("Volume Is Changed") 
    } 
} 

PS: Я знаю, что изменение поведения аппаратного обеспечения iPhone нежелательно для Apple.

+0

Вы были в состоянии выяснить, решение для этого? – AustinT

ответ

1

попробовать это:

func hookVolume() { 
    var volumeView = MPVolumeView(frame: CGRectMake(-500, -500, 0, 0)) 
    self.window?.addSubview(volumeView) 

    NSNotificationCenter.defaultCenter().addObserver(self, 
     selector: "volumeChanged:", 
     name: "AVSystemController_SystemVolumeDidChangeNotification", 
     object: nil) 

} 

func volumeChanged(notification: NSNotification) { 
    let volume = notification.userInfo!["AVSystemController_AudioVolumeNotificationParameter"] as! Float   
} 

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    hookVolume() 
} 
+1

Работа для меня, thx. в xcode 8 swift 3 – Jerome