远程通知中的自定义声音有一个很大的问题。
这是我的场景:
我有两种类型的通知,每种都带有自定义声音。当我的应用程序处于不活动状态或处于背景状态时,声音就像一种魅力一样播放,而OS则在通知中心的横幅警告中显示通知。
当收到处于前台状态的通知时,我处理通知,提取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)")
}
}
}从这里开始问题。如果应用程序在执行我的播放器代码时返回后台-不活动,通知中心中的OS警报将不再播放自定义声音。
总结:
提前谢谢。
发布于 2016-10-11 16:10:03
问题自动解决了。删除应用程序,声音恢复正常行为。
https://stackoverflow.com/questions/39877803
复制相似问题