【问题标题】:Phonegap - play local audio when phone is locked iOS 6Phonegap - 手机锁定时播放本地音频 iOS 6
【发布时间】:2013-05-23 09:47:50
【问题描述】:

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

有人可以帮忙吗?

【问题讨论】:

    标签: ios cordova audio playback standby


    【解决方案1】:

    首先你必须在你的 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。

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

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

    【讨论】:

    • 音频已经可以正常播放了,我没有使用phonegap API。我试过一次,它没有用。我必须使用它才能在后台播放音频吗?感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多