Я столкнулся с интересным поведением.
У меня есть приложение с опцией .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-уведомления