Как добавить звук для UILocalNotification?

Я сделал с основным уведомлением для своего приложения. Я хочу добавить звуковой эффект в свое уведомление.

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
if (localNotification == nil)
    return;

localNotification.fireDate = [NSDate date];
//localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = msg;
localNotification.soundName = @"Morse.aiff";

[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];

Как добавить звуковой эффект?

Ответ 1

Вы можете начать с чтения Подготовка пользовательских предупреждающих звуков в руководстве по программированию локального и Push Notification (убедитесь, что ваш собственный звук короче 30 с).

Если вы хотите использовать звук по умолчанию: используйте UILocalNotificationDefaultSoundName (как было предложено Euroboy)

Обновление: Вы, кажется, не единственный человек, который испытывает эту проблему. Возможное (но, конечно, не хорошее) решение описано здесь.

Ответ 2

У меня была схожая проблема, пытаясь воспроизвести mp3 файл как звук локального уведомления. Звук был короче 30 секунд, он был в комплекте, все выглядит регулярно на поверхности. Через несколько часов я понял, что проблема вызвана инструментом онлайн-резака mp3. Я нашел лучший редактор, и файл стал воспроизводиться при уведомлении.

Если mp3 файл отредактирован каким-то инструментом, возможно, что что-то было упущено инструментом редактирования.

Возможно, ваша проблема вызвана звуковым редактором или преобразователем формата звука.

Ответ 3

В моем случае проблема заключалась в том, что я забыл зарегистрироваться для UIUserNotificationTypeSound. Без регистрации в UIUserNotificationTypeSound ваше приложение не будет иметь параметр "Звуки", доступный в настройках уведомлений.

Вот фрагмент кода из руководства по программированию локального и удаленного уведомлений (tilo уже добавила ссылку на него выше).

UIUserNotificationType types = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;

UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];

После добавления этого кода вы можете включить параметр звука в настройках уведомлений для вашего приложения.

Ответ 4

Я нашел очень простое решение для воспроизведения пользовательского звука в локальном уведомлении. 1. Нормально звук будет отлично работать с форматом aiff. 2. Когда вы добавили пользовательский звук, проверьте, добавлен ли этот звук в "Фазы сборки", 3. Вы уже добавили свой собственный звук, но базовое системное предупреждение снова воспроизводится? - удалите приложение с устройства и перезагрузите его. После подключения вашего устройства и скомпилируйте приложение еще раз. 4. Прибыль! это будет работа!

PS: Это решение, если у вас есть iOS 10. Как я понимаю, это системная сумка.