English 中文(简体)
支持多任务的iOS 4闹钟应用程序
原标题:iOS 4 Alarm Clock App with Multitasking Support

我正在制作一款支持多任务处理的闹钟应用程序。然而,我仍然受到sdk的一些限制。

I need to play selected alarm sound whenever the alarm time comes with some properties set by the user. These properties: - Alarm sound can be a music from the user s iPod library, and also some sound files in application bundle. - Alarm sound can be set to play as progressive.

此外,警报声必须在后台循环播放,直到用户取消或唤醒应用程序。

我想到的第一件合乎逻辑的事情是使用本地通知,但有了本地通知,你可以播放仅在应用程序捆绑包中的声音文件(而不是iPod音乐),并且最多30秒长。此外,当用户取消通知警报时,您不会收到通知,iOS只是停止播放您的声音。

现在我正在考虑使用背景音频播放选项,并播放静音直到报警时间,然后播放报警声音,同时显示本地通知而不显示声音。但我怎么知道用户是否取消了本地通知警报并停止播放音频。然而,根据苹果公司的文档,播放背景音频的应用程序仍然不允许播放iPod音乐(以及使用共享资源)。

我也无法理解其他一些应用程序是如何实现这些功能的。例如,Night Stand HD可以在背景中播放iPod音乐,名为“渐进式闹钟”的应用程序可以在后台播放渐进式声音。

对这些问题有什么想法和建议吗?你的任何帮助都将不胜感激

问题回答

我想说,在iOS目前的限制下,你想做的是不可能的。也就是说,你可能可以通过做渐进式闹钟的开发者播放渐进式闹钟来伪造渐进式闹钟。通过一个接一个地安排许多本地通知。他将警报声分为10秒一组,每组音量递增。这是一个非常粗糙的例子,展示了渐进式警报是如何被伪造的。

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秒钟后,声音将再次播放。通过拥有一堆音量不断增加的声音文件,只需安排更多的本地通知就可以伪造渐进式声音。当然,只有当你有一个可以很容易地分成块的闹钟声音时,这才会起作用,就像渐进式闹钟中的铃声一样。很遗憾,您无法通过点击通知中的“取消”来取消警报。你必须启动应用程序才能做到这一点。

无论渐进式闹钟开发人员在做什么,这都不是Robert Höglund所描述的,AFAIK,因为即使手机处于静音状态,闹钟也会响起,而UILocalNotification似乎没有任何方法允许这样做。此外,如果您在警报挂起时手动终止该应用程序,该应用程序将通知您需要重新启动。这似乎表明它一定是在后台运行的。





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签