私のアプリでは、ユーザーは画面上の UIButton を押したときにマイクに向かってコマンドを言うことができ (もう一度押すとリッスンを停止します)、コードを実行します (-> これは機能します)。
ユーザーが画面上の UIButton の代わりにヘッドフォンの再生/一時停止ボタンを押したとき (および彼がこの VC にいるとき) に同じことをしたいと思います。
iPhone ヘッドフォンの再生/一時停止ボタンの使用方法に関するチュートリアルをかなり見てきましたが、それらを機能させることができませんでした。
ボタンを押しても反応しません。ライブラリから音楽を再生/一時停止するだけです。
現在、UIButton がある VC は、これが追加したコードですが、remoteControlReceived 関数には入りません。
override var canBecomeFirstResponder : Bool {
return true
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.becomeFirstResponder()
UIApplication.shared.beginReceivingRemoteControlEvents()
}
override func remoteControlReceived(with event: UIEvent?) {
if (event?.type == UIEventType.remoteControl) {
if event?.subtype == UIEventSubtype.remoteControlTogglePlayPause {
//execute the code ...
}
}
}