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

时间:2012-03-23 03:33:00

标签: ios cordova

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

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

我已在Required background modes中设置Info.plist,其值为audio

那么我错过了什么?谢谢。

2 个答案:

答案 0 :(得分:3)

在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;
}

我不确定是否需要以下内容但是我清理了我的项目(CMD + ALT + K),重新编译了PhoneGap / Cordova Lib(更改目标并让它运行到模拟器)和(再次更改目标后)再次编译到应用程序,现在它的工作原理!

小心:它只适用于Device,而不适用于模拟器

答案 1 :(得分:0)

除了@Ayame __的回答,我注意到当你试图跳过歌曲时(在收音机或基于播放列表的应用程序中),应用程序可能会从后台发送到暂停模式。

我写了一个简单的插件,你可以在这里找到 - https://github.com/vadimf/phonegap-audio-payer