我正在使用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();
答案 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();