同じアプリから発信されたオーディオ/ビデオ通話中にヘッドセット コマンドを処理する方法はありますか?
私は CallKit を使用して通話を行うアプリに取り組んでおり、最近、ユーザーが AirPods をダブルタップしたときに通話をミュートできるようにするタスクを取得しました (次のトラック コマンド)。現在、何らかのアクションを行うと通話が終了しますが、この動作を変更する回避策は見つかりませんでした。FaceTime とネイティブ コールでも同じことが起こっています。
これまでのところ、MPRemoteCommandCenter を使用してリモート コマンドに応答しようとしました。
import MediaPlayer
let remoteCommandCenter = MPRemoteCommandCenter.shared()
Log.i("Setting up a remote command event handler.")
remoteCommandCenter.nextTrackCommand.addTarget { (action: MPRemoteCommandEvent) in
Log.i("Detected nextTrackCommand: \(action)") // Never is printed
return .success
}
remoteCommandCenter.nextTrackCommand.isEnabled = true
assert(audioSession.category == .playAndRecord)
コールバックが呼び出されなかったため、私のアイデアはすべて失敗しました。この時点で、これはハードウェアの制限であると考え始めています。