我有一个使用 AVPlayer()
从网络播放音乐流的应用程序 . 我已将所有设置设置为在后台播放,但是当呼叫进入(或任何其他中断)时,中断结束后播放将不会恢复 . 具体来说,如果中断被贬低,很快就会恢复播放,但如果我有一个很长的电话,例如播放将无法恢复 . 只有当我的应用程序也在后台时才会发生这种情况 . 如果我的应用程序位于前台,当一个中断进来时一切正常 .
我将中断通知设置为:
func playInterrupt(notification: NSNotification) {
var info = notification.userInfo!
var intValue: UInt = 0
(info[AVAudioSessionInterruptionTypeKey] as! NSValue).getValue(&intValue)
if let type = AVAudioSessionInterruptionType(rawValue: intValue) {
switch type {
case .began:
print("began")
pause()
case .ended:
print("ended")
play()
}
}
运用
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.mixWithOthers )
修复了问题但是如果我从另一个音频源开始播放,它们都会相互叠加 . 理想情况下,我需要我的应用程序在这种情况下停止播放 .
有关如何实现这一目标的任何建议?
提前致谢