首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程通知中的自定义声音iOS 10快捷3

远程通知中的自定义声音iOS 10快捷3
EN

Stack Overflow用户
提问于 2016-10-05 15:14:05
回答 1查看 2.4K关注 0票数 1

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

这是我的场景:

我有两种类型的通知,每种都带有自定义声音。当我的应用程序处于不活动状态或处于背景状态时,声音就像一种魅力一样播放,而OS则在通知中心的横幅警告中显示通知。

当收到处于前台状态的通知时,我处理通知,提取aps声音元素,然后通过AVAudioPlayer播放声音:

代码语言:javascript
复制
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警报将不再播放自定义声音。

总结:

  • 应用程序非活动-后台,它收到通知,->自定义声音播放ok。
  • App前台,它接收通知,->代码通过playSound函数播放声音,然后如果app接收到其他处于后台-非活动状态的通知,OS播放默认通知声音。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-11 16:10:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39877803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档