2010-09-04 60 views
1

我用從蘋果示例中的代碼從這個頁面:Link,但我似乎無法得到的聲音重複。我檢查了其他應用程序,例如Skype(VOIP)和Alarm Clock Pro(音頻?),但無法重複播放聲音文件。UILocalNotification重複聲音

這是我的代碼:

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

我如何能解決這個問題有什麼建議?

我曾建議註冊應用爲音頻播放器和播放聲音的背景,但似乎蘋果並欣然接受這些應用程序,因爲它們不是真正的音頻播放器。因此他們否認這些應用程序。

問候,
保羅Peelen

+0

夥計,你的應用程序現在完成...?實際上,我也面臨同樣的問題,即我的通知聲音重複3次,因爲我的聲音是20秒。你可以幫我嗎..?正如Itay說的那樣,我發現它不可能, – mAc 2011-11-03 05:07:09

+0

。您必須在一個文件中添加3次相同的聲音,或者設置3個通知。 – 2011-11-03 08:40:40

+0

@PaulPeelen你會得到任何解決方案? – Abha 2013-04-04 13:49:48

回答

4

沒有辦法爲本地通知做到這一點。您既可以註冊爲VOIP應用程序,也可以註冊爲具有獨立API的「背景音頻」應用程序。但是,如果您未提供適當的功能以符合這些用途的資格,則很可能會被拒絕。

+0

我很害怕這可能是這樣的。如果我想要一個系統聲音重演自己......那可能嗎? – 2010-09-14 07:58:49

+0

不適用於UILocalNotification - 我自己想要這個。您可以在應用程序的內部播放聲音,並讓它們重複播放,沒有任何問題,但您必須在前臺完成。 – Itay 2010-09-14 08:42:57

+0

好吧,你覺得應用程序「鬧鐘專業版」解決了這個問題嗎?該應用程序一遍又一遍地重複標準的「短信聲音」。你懷疑他們有一個「大」喚醒聲音? – 2010-09-14 11:58:36

0

是的,這是可能的,因爲文檔狀態:

自己的應用程序可以調度多達128個併發通知,其中任何一個可以被配置爲在指定的時間間隔重複

你只需要配置repeatInterval屬性:

重新安排通知的日曆時間間隔。

+0

但是,這確實意味着3 - 4s的聲音會讓用戶體驗更加困難。正確?我知道這意味着一個新通知會在另一個通知中顯示X秒,並且第一個通知將被自動刪除。 – 2010-10-28 08:04:18