我正在编写一个应用程序,它使用 AVAudioPlayer
播放本地 mp3 文件,并使用 MPMusicPlayerController
播放系统/Apple 音乐/iTunes 音乐。
我正在维护一个自定义的 nowPlayingMP3Item
,它是在使用 AVAudioPlayer
播放歌曲后设置的。
我可以检查 MusicController 的播放状态,但如果它从 mp3 更改为系统音乐,我需要重新加载 UI...
有什么方法可以观察(也许是 Audio Session )或其他东西并确定是否正在播放 mp3 或系统音乐并相应地更新 UI?
感谢您的帮助
最佳答案
当出现中断时,音频将暂停,并且您的 Audio Session 将被停用。如果您的应用程序包含播放界面,则需要更新界面。当中断结束时,您可以激活 Audio Session 并恢复音频播放。
NotificationCenter.default.addObserver( forName: .AVAudioSessionInterruption, object: nil, queue: nil) { n in
let why = AVAudioSessionInterruptionType( rawValue: n.userInfo![ AVAudioSessionInterruptionTypeKey] as! UInt)!
if why = = .began {
// began
}
else {
// ended
}
}
关于ios - AVAudioPlayer 被 MPMusicPlayerController 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42251525/