Выберите собственный звук для локальных уведомлений - PullRequest
31 голосов
/ 24 августа 2011

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

notif.soundName = UILocalNotificationDefaultSoundName;

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

notif.soundName = @"sound.caf";

Ответы [ 5 ]

37 голосов
/ 30 апреля 2012

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

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf
29 голосов
/ 24 августа 2011

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

16 голосов
/ 10 марта 2013

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

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

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

8 голосов
/ 13 сентября 2013

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

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

2 голосов
/ 30 декабря 2016

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...