.duckДругие не работают должным образом после SMS.Локальные или Push-уведомления - PullRequest
0 голосов
/ 30 января 2019

Я столкнулся с интересным поведением.

У меня есть приложение с опцией .duckOthers для AudioSession, но фоновая музыка становится громче после уведомлений SMS, Push или Local (после отклонения значка уведомления).

Как предотвратить такое поведение?

И у меня есть связанный вопрос:

Можно ли перехватить прерывание звука из SMS, Push или локального уведомления?

Iпопытался поймать "AVAudioSession.interruptNotification", но безуспешно.Я также попытался поймать намного больше уведомлений, но также безуспешно.

Код:

import UIKit
import AVFoundation

class ViewController: UIViewController {

    private var audioPlaying = AVAudioPlayer()

    func playSound() {
         let alertSound = URL(fileURLWithPath:Bundle.main.path(forResource: "someSound", ofType: "mp3")!)
         try! audioPlaying = AVAudioPlayer(contentsOf: alertSound)
         audioPlaying.prepareToPlay()
         audioPlaying.play()
     }

    deinit {
        NotificationCenter.default.removeObserver(self)
    }

    @objc func interruptionTriggered(notification: Notification) {
        print("Interruption triggered \(notification.debugDescription)")
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default, options: [.duckOthers])
        try? AVAudioSession.sharedInstance().setActive(true, options: .notifyOthersOnDeactivation)
       NotificationCenter.default.addObserver(self, selector: #selector(interruptionTriggered), name:AVAudioSession.interruptionNotification /*nil in case to get more notifications*/,object:nil)
       playSound()
    }
}

Я нашел очень похожий вопрос, но без ответа duckOthers Аудио сеанс прерванс помощью удаленного push-уведомления

...