Phonegap – 手机锁定iOS 6时播放本地音频

我正在使用PhoneGap构建一个应用程序,即使手机处于锁定/待机状态,也需要能够播放本地.mp3文件.
音频播放器是用 HTML5构建的,工作正常,但是当我关闭应用程序或关闭手机时音乐停止.

我试着按照这个链接给出的答案
UIWebView: HTML5 audio pauses in iOS 6 when app enters background

但没有运气……

我使用其他导入函数在顶部执行了导入代码.我还将AVFoundation框架包含在我的目标中.

这是代码在AppDelegate.m中的外观

/**
 * This is main kick off after the app inits,the views and Settings are setup here. (preferred -iOS4 and up)
 */
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{

    /* THE GOOD STUFF */
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    BOOL ok;
    NSError *setCategoryError = nil;
    ok = [audioSession setCategory:AVAudioSessionCategoryPlayback
                         error:&setCategoryError];
    if (!ok) {
        NSLog(@"%s setCategoryError=%@",__PRETTY_FUNCTION__,setCategoryError);
    }

我在模拟器和iPhone 5上试过.

有人能帮忙吗?

解决方法

首先,您必须在app_name-info.plist中设置音频类别

然后使用phonegap API媒体播放器
http://docs.phonegap.com/en/2.7.0/cordova_media_media.md.html#media.play

function playAudio(url) {
// Play the audio file at url
var my_media = new Media(url,// success callback
    function() {
        console.log("playAudio():Audio Success");
    },// error callback
    function(err) {
        console.log("playAudio():Audio Error: "+err);
});

// Play audio
my_media.play({ playAudioWhenScreenIsLocked : true });

请注意,playAudioWhenScreenIsLocked认为true.

另请注意,在模拟器中音频将无法在后台运行,因此您需要在设备上进行测试.

如果这有帮助,请标记为已回答?

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...