Пользовательский звук UILocalNotification не воспроизводится в iOS7 - программирование
Подтвердить что ты не робот

Пользовательский звук UILocalNotification не воспроизводится в iOS7

Я использую UILocalNotification в приложении.

В приложении есть два звука, которые воспроизводятся условно - я применил для них правильные условия.

Но когда я устанавливаю приложение и запускаю его на устройстве iOS 7, он запускает локальное уведомление, но звук не воспроизводится в приложении.

Ниже приведен код, чтобы установить уведомление:

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    if (localNotification == nil)
        return;
    localNotification.fireDate = [pickerView date];

    localNotification.timeZone = [NSTimeZone defaultTimeZone];

    if (alarm_number == 1) {
        localNotification.alertBody = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        localNotification.alertBody = [NSString stringWithFormat:@"Second Alarm"];
    }

    localNotification.alertAction [email protected]"Ok";

    NSString *message = [[NSString alloc]initWithString:@""];

    if(alarm_number == 1)
    {
        [email protected]"Alarm_1.mp3";
        message = @"First Alarm Scheduled";
    }
    else
    {
        [email protected]"Alarm_2.mp3";
        message = @"Second Alarm Scheduled";
    }

    localNotification.applicationIconBadgeNumber = 1;

    // Specify custom data for the notification
    NSString *alarmString;
    if (alarm_number==1) {
        alarmString = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        alarmString = [NSString stringWithFormat:@"Second Alarm"];
    }

    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:alarmString forKey:@"AlarmFor"];

    localNotification.userInfo = infoDict;

    // Schedule the notification
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

То, что я проверил, это параметр "Звук" в приложении "Настройки/Центр уведомлений" для моего приложения.

Пройдите 1-е-3-е изображение, чтобы посмотреть, что я проверил.

(1) Центр уведомлений

(1) Notification Center

(2) Применение

enter image description here

(3) Звук отключен здесь

enter image description here

Итак, чтобы включить это, я проверил Inter App Audio в возможностях в целевых приложениях и был отключен, как показано на рисунке ниже.

Возможности в Inter-app audio

Capabilities in Inter-app audio

Затем я изменил его на On, и он выглядит как показано на изображении ниже.

Capabilities after changed On

Тем не менее, он по-прежнему не воспроизводит звук в устройствах iOS 7.

Кто-нибудь знает, почему он не работает? Это будет большой помощью.

Спасибо.

4b9b3361

Ответ 1

Вы пытались отключить режим "Не беспокоить"? У меня такая же проблема, потом я узнал, что включен режим "Не беспокоить". После этого все работает правильно.

Ответ 2

попробуйте использовать .caf файл вместо .mp3

afconvert -f caff -d [email protected] -c 1 wolf.wav wolf_out.caf

Ответ 3

Мое предположение - ваш звук не отформатирован надлежащим образом для воспроизведения ОС. Убедитесь, что ваш звук отформатирован в формате IMA4. Кроме того, убедитесь, что ваш файл находится в вашем пакете приложений, и вам должно быть хорошо идти.

Более подробный и аналогичный вопрос см. в этом вопросе SO.

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

Вот ссылка на Руководство пользователя Apple Local и Push Notification Guide. Он объясняет звуки в деталях и звуки по умолчанию, которые можно использовать.

Ответ 4

Я столкнулся с той же проблемой, мне пришлось сделать следующие шаги:

  • Конвертировать файл из mp3 или wav в caf. Как указано в других ответах, вы можете конвертировать файлы wav, aif и mp3 в терминал с помощью команды:

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

  • Вы также можете экспортировать с Quicktime 7 как .aif со следующим настройки Linear PCM Rate 44.100 Линейный размер выборки PCM 16 этих aif файлы, как представляется, поддерживаются.

  • Убедитесь, что файлы меньше 30 секунд, то есть 29 секунд или меньше.

  • Добавьте файлы в корень вашего пакета, вы можете перетащить его в Xcode или щелкнуть правой кнопкой мыши "добавить файлы в (имя проекта)" Обратите внимание, что вы должны выбрать следующие параметры: a) При необходимости пункты назначения b) Добавить в целевые объекты (имя сборки) 4) Ссылка на файл по его имени, включая расширение, например. notif.soundName = @"sound.caf";

Убедитесь, что вы удалили приложение с устройства/симулятора между тестами или вы не увидите результатов ваших изменений.

Если у вас все еще есть проблемы, проверьте, что файл звукового файла находится в корне проекта. Проверьте звуковой файл "Целевое членство" выбран в инспекторе show file.

Ответ 5

Я понятия не имел, почему это работает.

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

Надеюсь, он может работать и для других.

Ответ 6

Попробуйте сначала, не отключены ли настройки- > notificationcenter- > звуковые сигналы. Затем проверьте, нет ли в настройке- > звуков- > слайдера нуля. Это означает, что если у вас есть звуки на ноле, которые не позволят слышать звук, Надеюсь, что это поможет.

Ответ 7

Убедитесь, что "Звуковые эффекты" не являются отключенными или низкими. Громкость может быть высокой, но если громкость звуковых эффектов не работает, местное уведомление может не звучать. U может увеличить его, когда вы находитесь на главном экране iOS, а затем нажмите кнопку увеличения громкости.

Ответ 8

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

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

Ответ 9

Убедитесь, что звук добавлен в основной комплект! введите описание изображения здесь