#objective-c #swift #callkit #mpremotecommandcenter
#objective-c #swift #callkit #mpremotecommandcenter
Вопрос:
Есть ли какой-либо способ обработать команду гарнитуры, оставаясь в аудио / видеозвонке, исходящем из того же приложения?
Я работаю над приложением, которое использует CallKit для совершения звонков, и недавно я получил задание разрешить отключение звука при двойном нажатии пользователем AirPods (команда next track). В настоящее время любое действие приведет к завершению вызова, и я не смог найти обходной путь для изменения этого поведения. То же самое происходит с 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)
Все мои идеи потерпели неудачу, поскольку обратный вызов не был вызван. На данный момент я начинаю думать, что это аппаратное ограничение.