2011-04-29 64 views
7

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

  • 如果手机处于静音状态
  • 30秒的回放限制

我看到有声音将不会播放setKeepAliveTimeout:处理程序:但它只适用于voip-apps,因为这不是我的应用程序的目的,我猜苹果会因此拒绝它。我还看到了一个解决方案,在播放“空”声之前已经播放完毕,但是 - 无论如何,这并不是一种非常优雅的方式 - 我读到这也可能会导致应用程序被拒绝。

由于有几个闹钟应用程序只是做我正在寻找,我不知道他们是如何实现这一功能。

感谢提前提示!

+0

我知道这篇文章已经过时了,但我面临着和你一样的问题。你有没有找到解决方案? – 2012-07-27 00:03:22

+0

不幸的是,我没有。 – codenapper 2012-07-30 16:20:24

回答

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?

就我个人而言,这不是很容易以应对苹果的背景政策。由于所有的限制,我和我的公司已经(有?)很难维持简单的VoIP连接。我最好的建议是在尽可能少的背景下尽可能做到。如果UILocalNotificaion解决方案适合您,您可能应该坚持下去,并克服限制。

相关问题