如何让应用程序在后台播放音频(iOS上的phonegap 1.5.0)

如何让应用程序在后台播放音频(iOS上的phonegap 1.5.0),ios,cordova,Ios,Cordova,我有一个应用程序可以播放一些音乐,使用PhoneGap和html5音频标签在iOS上播放音频。以前它可以完美地在后台播放音乐(iOS使用PhoneGap 1.0.0),但在我将PhoneGap升级到1.5.0(Cordova)之后,我无法再让它在后台播放了 当我按下HOME(主页)按钮时,音频暂停。当我切换回应用程序时,它会恢复 我已经在Info.plist中用值audio设置了所需的背景模式 有什么我错过的吗?谢谢。在MainController.h文件中更改以下内容: #import "Ma

我有一个应用程序可以播放一些音乐,使用PhoneGap和html5音频标签在iOS上播放音频。以前它可以完美地在后台播放音乐(iOS使用PhoneGap 1.0.0),但在我将PhoneGap升级到1.5.0(Cordova)之后,我无法再让它在后台播放了

当我按下HOME(主页)按钮时,音频暂停。当我切换回应用程序时,它会恢复

我已经在
Info.plist
中用值
audio
设置了
所需的背景模式


有什么我错过的吗?谢谢。

在MainController.h文件中更改以下内容:

#import "MainViewController.h"
#import <AVFoundation/AVFoundation.h>

@implementation MainViewController

- (id) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization

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

    }
    return self;
}
#导入“MainViewController.h”
#进口
@实现主视图控制器
-(id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
{
self=[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
如果(自我){
//自定义初始化
n错误*setCategoryError=nil;
[[AVAudioSession sharedInstance]设置类别:AVAudioSessionCategoryPlayback错误:&setCategoryError];
}
回归自我;
}
我不确定是否有必要执行以下操作,但我清理了我的项目(CMD+ALT+K),重新编译了PhoneGap/Cordova库(更改目标并让它运行到模拟器),并且(再次更改目标后)再次编译到应用程序中,现在它可以工作了


当心:它只在设备上工作,在模拟器上不工作

除了@Ayame_uuu的回答之外,我注意到当你尝试跳过歌曲时(在基于广播或播放列表的应用程序中),应用程序可能会从后台发送到暂停模式


我写了一个简单的插件,你可以在这里找到-

如果你不确定是否要添加“导入”功能,那么在AVAudioSession上会出现一个错误