自定义声音不能播放推送通知

问题描述:

使用后端推送推送通知,并且我的设备已成功接收它们。但是,当我尝试设置消息,我添加到我的项目一个MP3的“IOS声”参数,它不能播放任何声音:自定义声音不能播放推送通知

enter image description here

在这里,the Backendless docs它说,设置“IOS声音“可以执行以下操作:

设置声音通知在设备上播放的URL或 用于播放声音的字节数组。

我无法弄清楚我做错了什么。嗯......

+0

我能够在用户当前在应用中时播放声音/通过引用AppDelegate的didReceiveRemoteNotification:方法中userInfo字典中的“ios-sound”值打开应用。但是,当应用程序关闭或在后台时声音不起作用。 – vikzilla

+0

它不是'ios-sound',只是'sound',而'mp3'文件不是Apple的声音文件扩展名,它们只支持'caf,aiff,...'将文件转换为带有iTunes的文件,然后你可以使用它 – Tj3n

+0

@ Tj3n它确实是“ios-sound”。我通过从didReceiveRemoteNotification中注销userInfo来确认这一点。然而,现在唯一的问题是在应用程序未打开/在后台播放声音/响应推送通知。另外,我不知道你的意思是不被支持的MP3;它发挥得很好,我过去曾多次使用它。 – vikzilla

除了我已经在做的registerForRemoteNotifications()之外,通过调用registerUserNotificationSettings解决了问题。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM) 

    //NEEDED TO DO THE FOLLOWING TWO LINES 
    let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
    UIApplication.sharedApplication().registerUserNotificationSettings(settings) 

    UIApplication.sharedApplication().registerForRemoteNotifications() 

    return true 
    } 

我之所以没有要求,这是因为之前的Backendless Docs说,简单的调用.registerForRemoteNotifications()覆盖警报,徽章,和声音。但是,这似乎是不正确的。

如果你是乌尔设备上成功recieving通知, 则可能是机会,您的音频文件较大

自定义声音必须在30秒内播放时。如果自定义声音超过此限制,则会播放默认的系统声音,因此请确保您的自定义声音小于30秒。

您的音频数据必须位于aiff,wav或caf文件中。

服务器上的文件名和包中的文件名应该是相同的。只需将您的mp3转换为其中一种格式,然后只在应用处于非活动状态时播放声音。

+0

该文件是约1秒长 – vikzilla