Программно вызвать действие, которое будет выполнять кнопка паузы в наушниках - PullRequest
1 голос
/ 17 октября 2019

Я пытаюсь найти способ приостановить любое воспроизведение мультимедиа на устройстве, поэтому я думал о срабатывании той же логики, которая срабатывает, когда пользователь нажимает «среднюю кнопку» наушников

Мне удалосьпредотвратить возобновление музыки (после того, как я приостановил ее в своем приложении, которое в основном запускает AVAudioSession для записи), НЕ устанавливая активное свойство AVAudioSession в false и оставляя его зависшим, но я совершенно уверен, что это плохой способ сделать это. Если я отключу его, музыка возобновится. Другой вариант, о котором я думаю, - это воспроизведение некой замкнутой петли, которая бы «имитировала» тишину, которая мне нужна. Но я думаю, что если то, что я ищу, выполнимо, это будет лучший подход, как я понял из этого вопроса , это нельзя сделать, используя обычные средства

func stopAudioSession() {
let audioSession = AVAudioSession.sharedInstance(
  do {
       if audioSession.secondaryAudioShouldBeSilencedHint{
            print("someone is playing....")
       }
   try audioSession.setActive(false, options: .notifyOthersOnDeactivation)
        isSessionActive = false
        } catch let error as NSError {
        print("Unable to deactivate audio session: \(error.localizedDescription)")
       print("retying.......")            
        }
    }

В этом фрагменте кодапоскольку имя функции подразумевает, что я установил active в false, попытался найти другие варианты, но я не мог найти другой способ остановить мой сеанс записи и предотвратить возобновление другого приложения, которое уже играло

Если кто-то может мне помочьв какую библиотеку мне нужно посмотреть, если, например, я могу нажать на H / W часть и запустить ее ИЛИ если я могу узнать, какая библиотека слушает событие нажатия кнопки и обрабатывает функцию паузы / воспроизведения

...