4

我正在使用 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 上试过。

有人能帮忙吗?

4

1 回答 1

4

首先,您必须在 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。

另请注意,在模拟器中,音频永远不会在后台工作,因此您需要在设备上进行测试。

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

于 2013-05-24T04:20:00.797 回答