簡體   English   中英

iOS 4鬧鍾應用程序,支持多任務處理

[英]iOS 4 Alarm Clock App with Multitasking Support

我正在制作一個具有多任務支持的鬧鍾應用程序。 但是,我堅持使用sdk的一些限制。

每當警報時間到達用戶設置的某些屬性時,我需要播放選定的警報聲。 這些屬性: - 警報聲可以是來自用戶iPod庫的音樂,也可以是應用程序包中的一些聲音文件。 - 可以將鬧鍾聲音設置為漸進式播放。

此外,警報聲必須在循環中在后台播放,直到用戶取消或喚醒應用程序。

我想到的第一個合乎邏輯的事情是使用本地通知,但是通過本地通知,您可以播放僅在應用程序包(不是iPod音樂)中且最多30秒長的聲音文件。 當用戶取消通知警報時,您也不會收到通知,iOS只是停止播放您的聲音。

現在我正在考慮使用背景音頻播放選項並播放靜音直到鬧鍾時間,然后播放鬧鍾聲音,同時還顯示沒有聲音的本地通知。 但我又如何知道用戶是否取消了本地通知提醒並停止播放音頻。 但是根據Apple的文檔,播放背景音頻的應用程序仍然不允許播放iPod音樂(以及使用共享資源)。

我也無法理解其他一些應用程序是如何做這些功能的。 例如,Night Stand HD可以在后台播放iPod音樂,名為“Progressive Alarm Clock”的應用程序可以在后台播放漸進式聲音。

關於這些問題的任何想法和建議? 非常感謝您的任何幫助

我想說iOS的當前限制是不可能的。 這就是說你可以通過做漸進式鬧鍾的開發者做漸進式鬧鍾來做假的漸進式鬧鍾。 通過安排許多本地通知,一個接一個。 他將警報聲音分成了幾十個大小,每個都有漸進的音量。 這是一個非常粗略的例子,展示了如何偽造漸進式警報。

UILocalNotification *notif1 = [[UILocalNotification alloc] init];
notif1.fireDate = [NSDate dateWithTimeIntervalSinceNow:15];
notif1.soundName = UILocalNotificationDefaultSoundName;
notif1.alertBody = @"Alarm";
[[UIApplication sharedApplication] scheduleLocalNotification:notif1];
[notif1 release];

UILocalNotification *notif2 = [[UILocalNotification alloc] init];
notif2.fireDate = [NSDate dateWithTimeIntervalSinceNow:20];
notif2.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:notif2];
[notif2 release];

這將首先顯示通知並在15秒后播放默認聲音。 5秒后,聲音將再次播放。 通過擁有音量增加的一堆聲音文件,可以通過安排更多本地通知來偽造漸進聲音。 這當然只有在您有一個可以輕松分成塊的警報聲時才會起作用,就像漸進式鬧鍾中的鈴聲一樣。 很遺憾,您無法通過點擊通知中的取消來取消鬧鍾。 您必須啟動應用程序才能執行此操作。

無論Progressive Alarm Clock開發人員在做什么,它都不是RobertHöglund所描述的,AFAIK,因為即使手機處於靜音狀態也會發出警報聲,並且UILocalNotification似乎沒有任何方法可以實現這一點。 此外,如果您在鬧鍾待處理時手動終止應用程序,該應用程序將通知您需要重新啟動。 這似乎表明它必須以某種方式在后台運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM