2012-01-09 96 views
8

我們使用Sencha touch在html5和javascript中構建了面向音樂的應用程序。爲了分發,我們用UIwebView將它包裝在xcode中。一切都運行良好,除了一件不起作用的事情:以多任務模式播放音頻。在iOS背景模式下繼續播放html5播放器中的音頻

我知道的總體思路:添加UIBackgroundModes在info.plist中。

完成。現在我們甚至可以在後臺模式下播放音頻。

直到我們到達歌曲的末尾。要開始下一首歌曲,我們必須再次將應用帶到前臺,或者我們可以點擊iPhone音頻控制器上的播放或「下一首歌曲」按鈕。

經過一番研究,我發現了一個很有希望的解決方法:「Entering background on iOS4 to play audio」,其中的解決方法是編輯AVAudioSessionCategoryPlayback並使用UIBackgroundTaskIdentifier。 對我來說,問題就在於(就像我在目前發現的任何其他修復中一樣),那些解決方案始終假定音頻是用AVaudioPlayer或MPMusicPlayerController播放的。但在我的情況下,我用戶都沒有,我們的音頻是由我們在UIwebView中包裝的html5播放器播放的。

任何人有關於如何繼續播放音頻的iOS多任務模式下的音頻播放器是一個HTML5/JavaScript的球員有什麼建議?

回答

1

謝謝,夥計們,但是我最終只是在保持應用程序忙於在一個循環中後臺模式。這足以彌補連接播放列表中下一首歌曲的時間。 我使用的代碼是類似於此: iPhone - Backgrounding to poll for events

4

我的應用起着通過HTML中的<audio>標籤在UIWebView託管音頻,並支持後臺播放。

你的建議,你需要有「應用播放音頻」在你的plist中定義的背景模式。

嘗試添加以下內容到applicationDidFinishLaunching:處理程序:

NSError *setCategoryError = nil; 
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &setCategoryError];