iPhoneの音量ボタンが押されたことを検知し、音量の上げ下げに応じてそれぞれのメソッドを実行したいと思っています。teratailに同様の質問があり、そちらのベストアンサーを試すとエラーは表示されませんでしたが音量ボタンが押されたことを検知できませんでした。どうすれば検知できるでしょうか。以下に試したコードを記述します。
Swift
1class ViewController: UIViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 let volumeView = MPVolumeView(frame: CGRect(origin:CGPoint(x:/*-3000*/ 0, y:0), size:CGSize.zero)) 6 self.view.addSubview(volumeView) 7 NotificationCenter.default.addObserver(self, selector: #selector(ViewController.volumeChanged(notification:)), name: 8 NSNotification.Name("AVSystemController_SystemVolumeDidChangeNotification"), object: nil) 9 } 10 11 @objc func volumeChanged(notification: NSNotification) { 12 13 if let userInfo = notification.userInfo { 14 if let volumeChangeType = userInfo["AVSystemController_AudioVolumeChangeReasonNotificationParameter"] as? String { 15 if volumeChangeType == "ExplicitVolumeChange" { 16 print("changed! (userInfo)") 17 } 18 } 19 } 20 } 21 22}
回答2件
あなたの回答
tips
プレビュー