.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-уведомлением