Как слушать нажатие гарнитуры (наушников)?

Для прослушивания нажатия гарнитуры (наушников) в приложении, разработанном на языке программирования Swift, нужно создать экземпляр класса AVAudioSession и настроить его для воспроизведения звука.

  1. Импортируйте фреймворк AVFoundation в начало файла:
import AVFoundation
  1. Создайте экземпляр класса AVAudioSession и установите категорию playback. Установите его как активный и установите делегата для обработки событий аудиосессии:
do {
    let audioSession = AVAudioSession.sharedInstance()
    try audioSession.setCategory(.playback)
    try audioSession.setActive(true)
    audioSession.addObserver(self, forKeyPath: "outputVolume", options: .new, context: nil)
} catch {
    print("Ошибка при настройке аудиосессии: (error.localizedDescription)")
}
  1. В вашем классе реализуйте метод observeValue(forKeyPath:keyPath:of:change:context:), чтобы обнаружить изменение громкости звука:
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    guard let keyPath = keyPath,
        keyPath == "outputVolume",
        let change = change,
        let newVolume = change[.newKey] as? Float else {
            return
    }
    
    // делайте что-то, что нужно при изменении громкости звука
    print("Громкость звука изменилась: (newVolume)")
}
  1. Поместите код из шагов 2 и 3 в нужные методы вашего класса (например, в метод viewDidLoad).

Теперь ваше приложение будет обнаруживать изменения громкости звука, включая нажатия на кнопки гарнитуры.

Обратите внимание, что для работы класса AVAudioSession и слежения за изменением громкости звука, ваше приложение должно иметь соответствующие разрешения и права доступа в настройках устройства пользователя.