【问题标题】:Play local audio in meteor cordova app在流星科尔多瓦应用程序中播放本地音频
【发布时间】: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 没有帮助。至今没有成功。我仍在加载使用来自服务器的文件作为解决方法...

标签: cordova audio meteor


【解决方案1】:

我用这个作为媒体文件的路径:

cordova.file.applicationDirectory.replace('file://', '') + 'www/application/app/' + 'sounds/my.mp3';

提示来自这里: Play Sound In Meteor-Cordova App

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 2019-06-03
    • 2018-08-21
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多