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

前端之家收集整理的这篇文章主要介绍了html5 – 使用PhoneGap 2.1.0和iOS 6锁定iPhone时,HTML 5音频MP3文件无法播放前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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.mfile.即使我不需要在iOS 5.1下执行此操作

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

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

解决方法

应用程序不在后台运行=是强制应用程序终止而不是在后台运行?

这不是你想要的反面吗?也许尝试删除该密钥并将UIBackgroundModes设置为音频?

编辑:

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

我使用我的ExampleHTML5AudioStreaming项目测试并添加了UIBackgroundModes – >仅限音频,但在AppDelegate.m文件中(在ProjectName / Classes下)将AVAudioSessionCategory显式设置为AVAudioSessionCategoryPlayback.

我首先在AppDelegate中导入了AVFoundation:

#import <AVFoundation/AVFoundation.h>

然后我在应用程序中添加了以下内容:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

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

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

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

看起来Cordova没有为此提出任何错误.我会看看我是否可以提出一个.

猜你在找的HTML5相关文章