使用没有 Cordova 的 meteor 我可以在我的浏览器中使用
new Audio('test.mp3').play()
在哪里
test.mp3
位于公用文件夹中。但是,一旦我将我的应用程序作为设备上的 Cordova 应用程序运行,我就无法播放声音。我究竟做错了什么?谢谢。
最佳答案
tl;博士
meteor add cordova:org.apache.cordova.media@0.2.15
/android_asset/www/application/path/to/sound.wav
如果您在项目中查看此文件夹,
$PROJECT_ROOT/.meteor/local/cordova-build/platforms/android/assets/www/
您将看到您的应用程序是 cordova 为 android 构建的。
使用 Cordova Media 插件,我尝试使用文件路径
/android_asset/www/path/to/sound.wav
无济于事。# Install the cordova media plugin with this command
meteor add cordova:org.apache.cordova.media@0.2.15
相反,我看到我的声音文件夹位于 www 目录中,但位于应用程序目录下。所以,这个文件路径最终对我有用,
/android_asset/www/application/path/to/sound.wav
这是对我有用的相关代码。
function getMediaUrl(sound) {
if (device.platform.toLowerCase() === "android") {
return cordova.file.applicationDirectory.replace('file://', '') + 'www/application/' + sound.substr(1);
}
else {
return cordova.file.applicationDirectory.replace('file://', '') + sound.substr(1);
}
}
function playSound(sound) {
return new Media(
getMediaUrl(sound),
function (success) {
// success
},
function (err) {
// error
}
);
}
var test = playSound('/sounds/test.wav');
test.play();
注意 :我将我的音频文件包含在公共(public)文件夹中,即
$PROJECT_ROOT/public/sounds/test.wav
在 Android 上,这个文件路径被翻译成
/android_asset/www/application/sounds/test.wav
关于cordova - 在 Meteor-Cordova 应用程序中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27432554/