微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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没有为此提出任何错误.我会看看我是否可以提出一个.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。