应用程序处于后台时,在特定时间播放声音

时间:2011-04-29 22:26:33

标签: iphone ios4 background audio multitasking

我正在寻找某种方式让我的应用在特定时间播放声音,而它在后台(IOS4多任务处理)。目前,我使用本地通知,除了:

之外,效果非常好
  • 如果手机静音,将无法播放声音
  • 30秒播放限制

我看到有setKeepAliveTimeout:handler:但它只适用于voip-apps,因为这不是我的应用程序的目的,我想Apple会因此拒绝它。我也看到了一个解决方案,其中一直播放“空”声,直到达到时间,但是 - 忽略这不是一种非常优雅的方式,反正 - 我读到这也可能会让应用被拒绝。

由于有一些闹钟应用正在寻找我正在寻找的东西,我想知道他们是如何实现这一功能的。

提前感谢任何提示!

1 个答案:

答案 0 :(得分:2)

如果您寻求Apple批准的解决方案,那么您就不能使用setKeepAliveTimeout:handler,即使可以 - 您也无法将超时设置为小于600秒的时间,所以我想它无论如何都不会有很大的用处(除此之外,即使远程接近您指定的超时,也不能保证触发事件。例如,我将其设置为600秒,并且有些事件最早会被激活360秒。)。

关于播放静音,除了浪费电池,如果你的应用程序合法使用背景音频(如果你正在实现一个闹钟,这很明显),我没有看到你的理由应用程序被拒绝,只要您不尝试使用其他背景功能(GPS信号,VoIP处理程序等)。

以下是使用此“功能”的一个示例应用程序: http://tapbots.com/blog/pastebot/pastebot-music-in-background

关于其他方法,您可以查看此主题: How do I start playing audio when in silent mode & locked in iOS 6?

从个人角度来说,应对Apple的后台政策并不是一件容易的事。由于所有限制,我和我的公司(只有?)很难维持简单的VoIP连接。我最好的建议是尝试尽可能少地在后台尽可能地做。如果UILocalNotificaion解决方案适合您,您可能应该坚持使用并遵守限制。