问题描述
我想在有人打电话给我时完全停止音乐,如果我打电话给别人,是否可以请您分享一下当有人打电话给我时停止音乐的知识?
代码:
override func viewDidLoad() {
super.viewDidLoad()
let url:NSURL = NSBundle.mainBundle().URLForResource("sound",withExtension: "mp3")!
do {
player = try AVAudioPlayer(contentsOfURL: url,fileTypeHint: nil)
} catch {
return;
}
player.play()
}
解决方法
此代码可以很好地解决上述问题。
代码:-
override func viewDidLoad() {
super.viewDidLoad()
setupForCallMethod()
}
func setupForCallMethod() {
NotificationCenter.default.addObserver(self,selector: #selector(playerInterruption),name: AVAudioSession.interruptionNotification,object: AVAudioSession.sharedInstance())
}
@objc func playerInterruption(notification: NSNotification) {
guard let userInfo = notification.userInfo,let typeValue = userInfo[AVAudioSessionInterruptionTypeKey] as? UInt,let type = AVAudioSession.InterruptionType(rawValue: typeValue) else {
return
}
if type == .began {
self.MusicPauseMethod()
}else if type == .ended {
self.MusicPlayMethod()
}
}