Чтение это кажется, что им нужно управлять автоматически (если вы не использовали компоновщик уведомлений ) на Android, но вы также должны указать расширение .mp3
и положить его в notification
поле, а не data
один ..
"sound": "alarm.mp3"
iOS
ведет себя очень по-разному под капотом, но вы можете использовать собственный звук, установив поле sound:
также в уведомлении. В любом случае .mp3
не является допустимым форматом файла уведомлений APN, и вам необходимо указать также расширение файла.
"sound": "filename.caf"
Следуйте документации Apple , чтобы создать собственный звуковой файл для вашего приложения.
mp3 не является допустимым форматом
Подготовка пользовательских звуковых сигналов
Локальные и удаленные уведомления могут указывать настраиваемые звуки
воспроизводится при доставке уведомления. Вы можете упаковать аудио
данные в формате aiff, wav или caf. Потому что они играют
Система звукового сопровождения, пользовательские звуки должны быть в одном из следующих
форматы аудиоданных:
Linear PCM
MA4 (IMA/ADPCM)
µLaw
aLaw
Поместите пользовательские звуковые файлы в app bundle
или в
Library/Sounds
папка каталога вашего приложения. изготовленный на заказ
звуки должны быть менее 30 секунд при воспроизведении. Если пользовательский звук
сверх этого предела вместо этого воспроизводится системный звук по умолчанию.
Вы можете использовать инструмент afconvert
для преобразования звуков. Например, чтобы
преобразовать 16-битный линейный системный звук PCM Submarine.aiff
в IMA4
аудио в CAF file
, используйте следующую команду в приложении «Терминал»:
afconvert /System/Library/Sounds/Submarine.aiff ~/Desktop/sub.caf -d ima4 -f caff -v
Чтобы exampole преобразовал ваш 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"
}
}
Я также протестировал версию iOS после преобразования файла .mp3
в файл .caf
таким образом:
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
событии, как кто-то уже сказал вам здесь , или вы можете использовать platform-channel здесь, чтобы создать собственное уведомление с Notification.Builder на Android и UNNotificationCenter на iOS (например).