使用PhoneGap 2.1.0和iOS 6锁定iPhone时,HTML 5音频MP3文件无法播放

use*_*961 7 audio html5 mp3 cordova ios6

我有一个PhoneGap应用程序,我在PhoneGap 1.8.1下编写,它在iOS 5.1下运行良好.

我需要更改应用程序,以便下载最新的Xcode 4.5和iOS 6 SDK.但是当我构建应用程序并将其部署到我的iPhone 4s时,当手机被锁定时,HTML 5音频将无法播放.

我尝试升级应用程序以使用PhoneGap 2.1.0但是当手机被锁定时,应用程序仍然无法播放音频.(这是我服务器的mp3文件流.)

这一切在模拟器中工作正常,但在运行iOS 6的iPhone 4上无效.

我有必要的背景模式设置为应用程序播放音频和应用程序不在后台运行=是.以前在iOS 5.1下工作但在iOS 6下没有.我也尝试修改sound.m一些推荐的文件.即使我不需要在iOS 5.1下执行此操作

我已经尝试了一些我在互联网上找到的例子,但似乎没有一个在iOS 6中工作.并且允许HTML 5音频在手机锁定的情况下流入.

当iPhone在PhoneGap 1.8.1或2.1下的iOS 6中被锁定时,我需要做些什么才能播放HTML 5音频?

Dev*_*eks 4

Application does not run in background = Yes强制应用程序终止而不是在后台运行?

这不是与你想要的相反吗?也许尝试删除该键并将设置保留UIBackgroundModesaudio?

编辑

看来,从 iOS 6 开始,您的应用程序必须设置AVAudioSessionCategoryAVAudioSessionCategoryPlayback能够在后台播放音频。当您使用 PhoneGap/Cordova Media API 时,PhoneGap/Cordova 会执行此操作,但当使用 HTML5 音频时,它永远不会被设置。

我使用我的ExampleHTML5AudioStreaming项目进行了测试,并仅添加UIBackgroundModes->audio但在文件中明确设置了AVAudioSessionCategoryto (在 下)。AVAudioSessionCategoryPlaybackAppDelegate.mProjectName/Classes

我首先在AppDelegate中导入AVFoundation:

#import <AVFoundation/AVFoundation.h>
Run Code Online (Sandbox Code Playgroud)

然后我将以下内容添加到application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
BOOL ok;
NSError *setCategoryError = nil;
ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                           error:&setCategoryError];
Run Code Online (Sandbox Code Playgroud)

根据这个答案:https ://stackoverflow.com/a/12414719/878602

然后音频按预期在后台播放。

看起来科尔多瓦没有为此留下错误。我看看是否可以寄一份。