在iOS背景模式下继续播放来自html5播放器的audio

我们使用Sencha touch在html5和javascript中构build了我们的面向音乐的应用程序。 为了分发,我们用UIwebView把它包装在Xcode中。 一切运行正常,除了一件事情没有奏效:以多任务模式播放audio。

我知道一般的想法:在info.plist中添加UIBackgroundModes。

完成。 现在我们甚至可以在后台模式下播放audio。

直到我们达到歌曲的结尾。 要开始下一首歌曲,我们必须再次将应用程序放在前台,或者我们可以点击iPhoneaudio控制器上的播放或“下一首歌曲”button。

经过一番研究,我发现了一个很有希望的解决方法:“ 在iOS4上播放背景以播放audio ”,其中解决方法是编辑AVAudioSessionCategoryPlayback并使用UIBackgroundTaskIdentifier。 对于我来说,问题就在于(就像我发现的其他解决scheme一样),这些解决scheme总是假定audio是用AVaudioPlayer或MPMusicPlayerController播放的。 但在我的情况下,我用户都没有,我们的audio是由UIwebView中包裹我们的HTML5播放器播放。

当audio播放器是html5 / javascript播放器时,任何人都有关于如何在iOS多任务模式下继续播放audio的build议?

我的应用程序通过UIWebView中托pipe的html中的<audio>标签播放audio,并支持后台播放。

正如你所build议的,你需要让你的plist中定义的'App播放audio'后台模式。

尝试添加到您的applicationDidFinishLaunching:处理程序:

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

谢谢,伙计们,但我最终只是在后台模式下保持应用程序忙于循环。 当连接到播放列表中的下一首歌时,这足以弥补时间。 我使用的代码与此类似: iPhone – 用于轮询事件的背景

你可以试试这个 ,在onend事件中添加一个函数。