在iOS背景模式下继续从html5播放器播放音频

问题描述 投票:8回答:3

我们使用Sencha touch在html5和javascript中构建了面向音乐的应用。为了分发,我们使用UIwebView将其包装在xcode中。除了一件不起作用的事情之外,其他所有东西都运行良好:在多任务模式下播放音频。

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

完成。现在,即使在背景模式下,我们也可以播放音频。

直到我们到达歌曲的结尾。要开始播放下一首歌曲,我们必须再次将应用程序置于前台,否则我们可以按一下iPhone音频控制器上的“播放”或“下一首歌曲”按钮。

[经过一些研究,我在以下位置找到了一种有希望的解决方法:“ Entering background on iOS4 to play audio”,该解决方法是编辑AVAudioSessionCategoryPlayback并使用UIBackgroundTaskIdentifier。对我而言,问题是(就像到目前为止找到的其他修复程序一样),这些解决方案始终假定使用AVaudioPlayer或MPMusicPlayerController播放音频。但就我而言,我都不用,我们的音频由包装在UIwebView中的html5播放器播放。

有人对音频播放器是html5 / javascript播放器时如何在iOS多任务模式下继续播放音频有任何建议?

ios cocoa-touch html5 audio background
3个回答
4
投票

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

根据您的建议,您需要在plist中定义“应用播放音频”背景模式。

尝试将此添加到applicationDidFinishLaunching:处理程序:

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

1
投票

[谢谢,伙计们,但是我最终只是在后台模式下使应用程序处于忙碌状态。这足以桥接连接到播放列表中下一首歌曲的时间。我使用的代码与此类似:iPhone - Backgrounding to poll for events


0
投票

您可以尝试this,在onend事件上添加一个功能。


0
投票

@@ TomSwift,我在离子项目中使用了音频标签,并且App播放音频项已在此处定义。但是它不是在后台模式下播放音乐。你能帮我吗?

© www.soinside.com 2019 - 2024. All rights reserved.