远程通知中的自定义声音iOS 10,swift 3

我在远程通知中有一个自定义声音的大问题。

这是我的场景:

我有两种types的通知,每个都有自定义声音。 当我的应用程序处于非活动状态或在后台时,声音就像一个魅力,操作系统在通知中心的banner-alert中显示通知。

在前台收到通知时,我会处理通知,提取aps声音元素,然后通过AVAudioPlayer播放声音:

func playSound(_ sound: String) { myLog("Let's play sound \(sound)") // Plays new sound file DispatchQueue.main.async { // Stops last player if playing if (self.soundPlayer != nil) { if (self.soundPlayer.isPlaying) { self.soundPlayer.stop() } } do { let path = Bundle.main.path(forResource: sound, ofType:nil)! let url = URL(fileURLWithPath: path) self.soundPlayer = try AVAudioPlayer(contentsOf: url) self.soundPlayer.delegate = self if (self.soundPlayer.prepareToPlay()) { self.soundPlayer.play() } } catch let error { myLog("Error playing .caf file: \(error)") } } } 

在这里开始这个问题。 如果应用程序返回到后台 – 执行我的播放器代码时处于非活动状态,通知中心中的操作系统警报将不再播放自定义声音。

总结:

  • 应用程序不活动 – 后台接收通知 – >自定义声音播放确定。

  • 应用程序前台它接收通知 – >代码通过playSound函数播放声音,然后如果应用程序收到其他通知在后台非活动状态操作系统播放默认通知声音。

提前致谢。

问题自动解决。 删除应用程序,声音恢复正常的行为。