读this似乎应该在Android上自动管理(如果你没有使用notification builder),但是你也必须指定.mp3
扩展名,并将其放在notification
字段中,而不是data
字段中.
"sound": "alarm.mp3"
iOS
在引擎盖下的行为非常不同,但您也可以通过在通知负载中设置sound:
字段来使用自定义声音.无论如何,.mp3
不是有效的APN通知文件格式,您还需要指定文件扩展名.
"sound": "filename.caf"
关注Apple documentation,以便为您的应用程序伪造您的自定义声音文件.
mp3 is not a valid format个
Preparing Custom Alert Sounds
本地和远程通知可以指定要发送的自定义alert 声音
Linear PCM
个
MA4 (IMA/ADPCM)
一百
aLaw
个将自定义声音文件放入
app bundle
或您可以使用
afconvert
工具转换声音.例如,要执行以下操作 将16位线性PCM系统声音Submarine.aiff
转换为IMA4
要在CAF file
中使用音频,请在终端应用程序中使用以下命令:afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v
要让exampol将mp3
文件转换为caf
文件,您可以键入终端:
afconvert -f caff -d LEI16 alarm.mp3 alarm.caf
阅读这doc篇文章,深入了解所有通用和特定通知有效载荷字段.
UPDATE个个
我已经测试了Android部分,我可以确认把你的.mp3
文件放到res/raw/
文件夹中,声音会按照文档和预期播放.
这是我的通知有效载荷:
{
"to" : "my_device_token",
"collapse_key" : "type_a",
"priority" : "high",
"notification" : {
"body" : "Test Notification body for custom sound {{datestamp}}",
"title": "Custom sound alert.mp3",
"sound": "alert.mp3"
}
}
在以这种方式将.mp3
文件转换为.caf
文件后,我还测试了iOS版本:
afconvert -f caff -d LEI16 alert.mp3 alert.caf
相同的json
个有效载荷和不同的文件名可以工作:
{
"to" : "my_device_token",
"collapse_key" : "type_a",
"priority" : "high",
"notification" : {
"body" : "Test Notification body for custom sound {{datestamp}}",
"title": "Custom sound alert.mp3",
"sound": "alert.caf"
}
}
记住要将该文件添加到您的main bundle
中.
如果应用程序被终止或在后台运行,这会起作用.
如果你想在应用程序处于前台时显示提醒和播放声音,你必须在onMessage
事件上进行管理,就像有人已经告诉你here一样,或者你可以在这里使用platform-channel来构建自己的通知,在Android上是Notification.Builder,在iOS上是UNNotificationCenter(例如).
UPDATE个个
这个问题已经解决了.见官方 comments :
大家好?
作为我们路由图(#2582)的一部分,我们刚刚发运了一份完整的 旨在解决此问题和许多其他问题的Firebase_Messaging插件 问题.
如果可以,请try 一下开发版本(请参阅migration guide 用于升级和更改),如果您有任何反馈,请加入 在讨论here中.
考虑到返工的范围,我将继续并完成这项工作
谢谢大家,?