UILocalNotification повторить звук - PullRequest
1 голос
/ 04 сентября 2010

Я использовал код из примера яблок с этой страницы: Ссылка , но я не могу заставить звук повториться.Я проверил другие приложения, такие как Skype (для VOIP) и Alarm Clock Pro (аудио?), Но не могу воспроизвести звуковой файл.

Это мой код:

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    AlarmHandler *AHinstance = getAlarmHandlerInstance();
    UIApplication* app = [UIApplication sharedApplication];

    NSArray *alarmList          = [AHinstance getAlarms];
    NSArray *oldNotifications   = [app scheduledLocalNotifications];

    if ([oldNotifications count] > 0)
    {
        [app cancelAllLocalNotifications];
    }

    for (Alarm *theAlarm in alarmList) {
        NSDate *alarmDate = [theAlarm getNearestActivationDate];
        Package *alarmPackage = [theAlarm getAlarmPackage];
        NSArray *fileList = [alarmPackage getVoiceFileListForBackgroundNotificationWithHour:theAlarm.larmHour];

        if( alarmDate == nil ) continue;

        UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];

        if (alarm)  
        {
            NSLog(@"File: %@", [fileList objectAtIndex:0]);

            alarm.fireDate = alarmDate;
            alarm.timeZone = [NSTimeZone defaultTimeZone];
            alarm.soundName = [fileList objectAtIndex:0];           
            alarm.alertBody = @"Time to wake up!";
            alarm.repeatInterval = 0;

            [app scheduleLocalNotification:alarm];
        }
    }
}

Какие-либо предложения о том, как я могу это исправить?

У меня были предложения зарегистрировать приложение в качестве аудиоплеера и воспроизводить звуки в фоновом режиме, но кажется, что Apple очень любезно относится к этим приложениям, потому что они ненастоящие аудиоплееры.Поэтому они отрицают эти приложения.

С уважением,Пол Пилен

Ответы [ 2 ]

4 голосов
/ 13 сентября 2010

Нет способа сделать это для локальных уведомлений. Вы можете зарегистрироваться как приложение VOIP или как приложение «фонового звука», которые имеют отдельные API. Однако, если вы не предоставите соответствующую функциональность, подходящую для этих видов использования, вам, скорее всего, будет отказано.

0 голосов
/ 28 октября 2010

Да, это возможно, поскольку в документации указано:

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

Вам просто нужно настроить свойство repeatInterval :

Календарный интервал, с которым необходимо перепланировать уведомление.

...