【发布时间】:2016-02-02 13:14:48
【问题描述】:
我想在我的流星应用程序的/public 文件夹中的科尔多瓦播放文件sound.mp3。在控制台中,我可以看到正在下载文件:
METEOR CORDOVA DEBUG (autoupdate_cordova.js) done downloading /sound.mp3
以下内容不再起作用:
var getLocalPath = function (localPath) {
return cordova.file.applicationDirectory.replace('file://', '') + 'www/application/' + localPath.substr(1);
};
var src = getLocalPath('/sound.mp3');
var media = new Media(src).play();
当然,我可以从服务器访问声音并通过常规 Audio 对象播放它,但这是不必要的绕道。而且由于我的应用程序应该离线运行,所以这不是我的选择。但是,为了记录,以下在cordova中确实有效:
new Audio(Meteor.absoluteUrl('sound.mp3')).play()
(Meteor.absoluteUrl 返回服务器Url)
【问题讨论】:
-
new Media('/sound.mp3').play();不起作用吗?如果文件确实在public文件夹中,那么它应该。 -
它不起作用。是的,它在公共文件夹中。有没有办法查看 Media 对象是否实际上被赋予了有效路径?我的意思是你可以在那里写任何东西,调用 .play() 时你不会看到任何错误
-
这段代码在哪里执行?你等到
deviceready了吗? -
等待 deviceready 没有帮助。至今没有成功。我仍在加载使用来自服务器的文件作为解决方法...