Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 2.0在后台模式下在应用程序代理中播放自定义声音_Ios_Avaudioplayer - Fatal编程技术网

Ios Swift 2.0在后台模式下在应用程序代理中播放自定义声音

Ios Swift 2.0在后台模式下在应用程序代理中播放自定义声音,ios,avaudioplayer,Ios,Avaudioplayer,我正在使用谷歌云消息将通知推送到我用Swift 2.0 xCode 7.1编写的iOS应用程序。GCM不允许自定义通知声音。 请看这里: 因此,我关闭了默认声音,并尝试在调用“DidReceiveEmotentification”时播放声音。我的问题是,在后台模式下声音无法播放。但是,如果我将代码(如下)放在“didFinishLaunchingWithOptions”中,它可以完美地工作,只是在我想要播放的时候无法播放。 我在info.plist中添加了更多背景信息。就像我说的,推送通知到达时

我正在使用谷歌云消息将通知推送到我用Swift 2.0 xCode 7.1编写的iOS应用程序。GCM不允许自定义通知声音。 请看这里:

因此,我关闭了默认声音,并尝试在调用“DidReceiveEmotentification”时播放声音。我的问题是,在后台模式下声音无法播放。但是,如果我将代码(如下)放在“didFinishLaunchingWithOptions”中,它可以完美地工作,只是在我想要播放的时候无法播放。 我在info.plist中添加了更多背景信息。就像我说的,推送通知到达时它就不起作用了

    let alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("GMNotification", ofType: "wav")!)
    print(alertSound)

    //var error:NSError?
    do {
        try self.audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, fileTypeHint:nil)
        self.audioPlayer.prepareToPlay()
        self.audioPlayer.play()
        print("PLAY !!!")
    } catch {
        print("Error ???")
    }


有人能帮忙吗?

您必须创建一个共享实例“Singelton”才能播放声音。请参阅:


这将告诉您如何在后台模式下播放音乐。您需要在Info-Plist-background-modes中注册为音乐应用程序。嗨,Christian,我已从我的Info-Plist中添加了我的后台模式。这可能会对您有所帮助。您是否解决了此问题?我也面临同样的问题。解决方案应该是定制通知,然后显示它,但我不知道如何在swift中实现(我在android tho中获得了成功)。