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

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

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

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

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

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

Я пытался поймать "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 Audio Session прервана удаленным push-уведомлением

0 ответов

Другие вопросы по тегам