2011-04-29 44 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解決方案適合您,您可能應該堅持下去,並克服限制。

相關問題