iOS 10上的后台播放是否仍适用于cordova媒体插件?

时间:2017-02-02 16:40:49

标签: cordova ionic-framework background-process cordova-media-plugin

当蓝牙设备超出范围并且iOS设备处于待机状态(屏幕锁定)或应用程序最小化到后台时,我正在尝试在Ionic / Cordova应用程序中播放音频样本。

我在Cordova media plugin documentation中使用与示例相似的功能,其功能是更正Android设备的音频文件路径:

function getMediaURL(url) {
    if(device.platform.toLowerCase() === "android") return "/android_asset/www/" + url;
    return url;
};

function soundAlarm() {
    var mediaUrl = getMediaURL('sounds/alarm.wav');

    alarmSound = new Media( mediaUrl, null,
    // error callback
    function (err) {
        console.log("playAudio():Audio Error: " + angular.toJson(err));
    });

    alarmSound.play({ playAudioWhenScreenIsLocked : true, numberOfLoops: 3 });
}

当应用程序位于前台时,此功能正常但是当我锁定手机或最小化应用程序时,我收到以下错误:

{"message":"","code":4}

根据Cordova media plugin documentation,错误代码4表示

  

MEDIA_ERR_NONE_SUPPORTED

我传递给play方法的'playAudioWhenScreenIsLocked'选项应该处理我遇到的问题但是我每次都得到上面的错误。此外,默认情况下此属性设置为true。

我不想使用后台模式插件,因为此功能应该通过cordova媒体插件开箱即用,后台模式插件可能会导致App从App Store中被拒绝。

当应用程序在后台或设备处于待机模式时,是否有人成功触发音频?

1 个答案:

答案 0 :(得分:1)

我必须启用'背景模式'并检查Xcode中的'音频,Airplay和画中画'才能使其正常工作。