UILocalNotification声音在循环中运行

问题描述:

我有一个5.0秒的aiff文件。我想在循环运行30秒。请指导我如何做到这一点。 现在我通过下面的代码 -UILocalNotification声音在循环中运行

//Function to schedule local notification 
-(void)schedulelocalnotification:(NSDate *)particularfiredate ringtone: (NSString *)particularringtone name:(NSString *)alarmname info:(NSDictionary *)dicttext 
{ 
    UILocalNotification *notification = [[UILocalNotification alloc] init]; 
    notification.fireDate = particularfiredate; 
    notification.soundName = [arrayAIFFFiles objectAtIndex:[arraysoundfilesnames indexOfObject:particularringtone]]; 
    notification.alertBody = alarmname; 
    notification.userInfo = dicttext; 

    [[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
} 

设置以正常的方式通知请注意,我不希望通知旗帜,通知出现6次,只是声音应该重复最多30秒。

如果我不这样做,并添加一个30秒的声音文件,然后声音持续到30秒,如果用户关闭之间的通知,并打开应用程序,声音继续播放。问题已在这里陈述:The UILocalNotification sound does not stop playing

我通过定期创建多个通知,这将是轨道的持续时间来解决它。以下是我的代码:

-(void)schedulelocalnotification:(NSDate *)particularfiredate ringtone: (NSString *)particularringtone name:(NSString *)alarmname info:(NSDictionary *)dicttext 
{//post one single notification here with alert body, so that there are no multiple banners for each notification. 

UILocalNotification *notification = [[UILocalNotification alloc] init]; 
notification.fireDate = particularfiredate; 
notification.soundName = [arrayAIFFFiles objectAtIndex:[arraysoundfilesnames indexOfObject:particularringtone]]; 
notification.alertBody = alarmname; 
notification.userInfo = dicttext; 

[[UIApplication sharedApplication] scheduleLocalNotification:notification]; 
totalDuration = totalDuration + [[arraySoundDuration objectAtIndex:[arraysoundfilesnames indexOfObject:particularringtone]]floatValue]; 

while (totalDuration<30) {//while time is less than 30 secs, which is the desired time. 
    NSDate *newDate1 = [particularfiredate dateByAddingTimeInterval:totalDuration]; 
    UILocalNotification *notification1 = [[UILocalNotification alloc] init]; 
    notification1.fireDate = newDate1; 
    notification1.soundName = [arrayAIFFFiles objectAtIndex:[arraysoundfilesnames indexOfObject:particularringtone]]; 
    // notification1.alertBody = alarmname;//create notification without alert body, just with the sound file, so there are no multiple banners. 
    notification1.userInfo = dicttext; 

    [[UIApplication sharedApplication] scheduleLocalNotification:notification1]; 
    totalDuration = totalDuration + [[arraySoundDuration objectAtIndex:[arraysoundfilesnames indexOfObject:particularringtone]]floatValue]; 

} 
totalDuration = 0; 
}