Подтвердить что ты не робот

Выберите собственный звук для локальных уведомлений

Как изменить звук, который воспроизводится для локальных уведомлений? Я использую следующий код для воспроизведения звука по умолчанию:

notif.soundName = UILocalNotificationDefaultSoundName;

Итак, я попробовал это ниже, и это не сработало. Что мне делать? Спасибо за вашу помощь!

notif.soundName = @"sound.caf";
4b9b3361

Ответ 1

Это должно сработать. Убедитесь, что звук на самом деле находится в вашем пакете приложений, находится в правильном формате (линейный PCM или IMA4 - почти везде, где объясняется, как конвертировать звуки для iOS расскажет вам, как это сделать) и составляет менее 30 секунд.

Ответ 2

Вы можете конвертировать из wav и mp3, используя:

afconvert -f caff -d [email protected] -c 1 in.wav out.caf

Ответ 3

Я также попытался преобразовать mp3 в caf, используя следующую команду:

afconvert clockalarm.mp3 clockalarm.caf -d ima4 -f caff -v

Один урок здесь. Я провел несколько часов, чтобы бороться со звуком локального уведомления. Пробовал конвертировать с различными битрейтом и форматом. Но, наконец, я обнаружил, что должен быть дефект с эмулятором iOS 6.1. Я развернул код на устройство, он работает хорошо, но на эмуляторе нет звука.

Ответ 4

Я столкнулся со всеми этими проблемами (спасибо за ответы) и смог решить проблему, перейдя с .wav на .caf(симулятор sans 6.1). Последний бит, который мне нужен, это убедиться, что .caf был в моем приложении. Чтобы подтвердить/исправить это...

Щелкните правой кнопкой мыши файл в "Навигаторе проектов", выберите "Показать инспектора файлов" и убедитесь, что у файла есть галочка рядом с вашим проектом в области "Целевое членство". В моем случае "LocalNotificationExampleTests" был единственным проверенным элементом. Проверка "LocalNotificationExample" зафиксировала мой недостаток звука на устройстве.

Ответ 5

Для Swift 3 используйте UNNotificationSound.init для объекта notif в функции планирования уведомлений.

Вот пример Swift 3:

func scheduleNotifications(inSeconds: TimeInterval, completion: @escaping (_ Success: Bool) ->()){
        ...
        notif.sound = UNNotificationSound.init(named: "CustomSound.mp3") 
        ...
}

Заключительная записка, согласно Apple: "Звуковой файл должен содержаться в комплекте приложений или в папке" Библиотека/Звуки "в контейнере данных приложения. Если файлы существуют в обоих местах, тогда файл в ~/Library/Sounds будет предпочтительнее".