Настройка звуков для локальных уведомлений на iPhone 3G под управлением iOS4 - PullRequest
4 голосов
/ 15 сентября 2010

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

Class cls = NSClassFromString(@"UILocalNotification");

    if (cls != nil) {

        UILocalNotification *notification = [[cls alloc] init];
        notification.fireDate = self.alarmNotificationDate;
        notification.timeZone = [NSTimeZone defaultTimeZone];

        notification.alertBody = @"Alarm is due";
        notification.alertAction = @"Show Alarm";

        notification.soundName = @"alarm.mp3";

        [[UIApplication sharedApplication] scheduleLocalNotification:notification];
        [notification release];

Где self.alarmNotificationDate - это присвоение NSDate в другом методе.

Все отлично работает в симуляторе, но когда я тестирую на своем доверенном старом iPhone 3G под iOS4, я получаю уведомление, но только со звуком по умолчанию.

Я пробовал с разными звуковыми файлами, но безуспешно.

Любая подсказка, почему это может быть так и как это исправить?

Спасибо

Ответы [ 3 ]

6 голосов
/ 27 сентября 2010

UILocalNotification не поддерживает mp3.Он поддерживает только форматы и контейнеры, указанные на справочной странице.

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html

Поскольку настраиваемые звуки оповещения воспроизводятся системой звукового сопровождения iOS, они должны быть вследующих форматов аудиоданных:

  Linear PCM
  MA4 (IMA/ADPCM)
  µLaw
  aLaw

Вы можете упаковать аудиоданные в файл формата aiff, wav или caf.

3 голосов
/ 15 сентября 2010

Может быть несколько причин:

  1. Включен ли ваш звуковой файл в ваш комплект?(скорее всего, видя, как он работает на симуляторе)
  2. В документации Apple говорится, что не следует использовать сжатые аудиоформаты.Смотрите ссылку здесь .Причиной этого является то, что аппаратное обеспечение iPhone может воспроизводить только один сжатый аудиофайл за раз, и поэтому не рекомендуется использовать его также для тревоги, если пользователь уже прослушивает песню из iTunes.
0 голосов
/ 15 сентября 2010

Вы произносили название звука с использованием одинаковой прописной / строчной кодировки как в имени файла, так и в имени файла?

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