Cordova无法在Windows 10上播放文件

时间:2016-05-14 01:21:15

标签: cordova cordova-plugins visual-studio-cordova windows-10-universal

我正在使用Cordova + VS2015的最新版本。

当我尝试在windows10应用中播放作为应用程序一部分的mp3文件时,我收到错误(代码:1)

在iOS和Android下运行时播放效果很好,只有Windows 10似乎是问题所在。

我在路径“/myfile.mp3”,“myfile.mp3”,“/ www / myfile.mp3”,“www / myfile.mp3”上尝试了许多变体,但结果相同。我尝试了一个不存在的文件名并得到了同样的错误。这让我相信路径不正确。如果我打印window.location.pathname,我会得到“/www/index.html”,所以,我怀疑“/www/myfile.mp3”应该有效。

该文件已添加到项目中,它显示在平台文件夹的www目录中。

以下是代码,基本上是从手册中删除的

    console.log(window.location.pathname);
    var myMedia = new Media('/www/myfile.mp3', function () {
            console.log('success');
    }, function (e) {
            console.log(e); // I always land here, where is is 'code: 1'
    }, function (e) {
            console.log(e);
    });
    myMedia.play();

1 个答案:

答案 0 :(得分:1)

使用“ms-appx:”方案将解决问题。请参阅document的应用包部分:

  

要访问存储在应用程序包中的文件,但是从没有推断根权限的代码中,请指定 ms-appx:方案。

在您的情况下,路径应该修改为“ms-appx:///www/myfile.mp3”,如果当前平台是windows(需要在此处安装cordova-plugin-device作为前工作):< / p>

var url = "";
if (device)
{
    if (device.platform.toLowerCase() == "windows") {
        url = "ms-appx:///www/myfile.mp3";
    } else {
        url = "/myfile.mp3";
    }
}
var myMedia = new Media(url, function () {
    console.log('success');
}, function (e) {
    console.log(e); // I always land here, where is is 'code: 1'
}, function (e) {
    console.log(e);
});
myMedia.play();