UILocalNotification重复声音

时间:2010-09-04 14:14:40

标签: iphone ios4 multitasking

我使用了本页中的apple示例中的代码:Link,但我似乎无法重复声音。我已经检查了其他应用程序,例如Skype(用于VOIP)和闹钟专业版(音频?)但我无法重复声音文件。

这是我的代码:

- (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];
        }
    }
}

有关如何解决此问题的任何建议?

我有建议将应用程序注册为音频播放器并在后台播放声音,但似乎苹果确实对这些应用程序表示友好,因为它们不是真正的音频播放器。因此他们否认这些应用程序。

的问候,
保罗佩伦

2 个答案:

答案 0 :(得分:4)

本地通知无法执行此操作。您可以注册为VOIP应用程序,也可以注册为具有单独API的“背景音频”应用程序。但是,如果您没有提供适当的功能来获得这些用途的资格,那么您很可能会被拒绝。

答案 1 :(得分:0)

是的,这是可能的,正如文件所述:

  

您自己的应用程序最多可以安排128个同步通知,其中任何一个都可以配置为以指定的时间间隔重复

您只需配置repeatInterval属性:

  

重新安排通知的日历间隔。