使用没有cordova的流星我可以在浏览器中播放声音
new Audio('test.mp3').play()
Run Code Online (Sandbox Code Playgroud)
其中,test.mp3位于公共文件夹中.但是,一旦我将应用程序作为设备上的cordova应用程序运行,我就无法播放声音.我究竟做错了什么?谢谢.
小智 6
TL;博士
安装cordova媒体插件 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
Run Code Online (Sandbox Code Playgroud)
相反,我看到我的声音文件夹在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();
Run Code Online (Sandbox Code Playgroud)
注意:我将我的音频文件包含在公共文件夹中,即
$PROJECT_ROOT/public/sounds/test.wav
在Android上,此文件路径被翻译为
/android_asset/www/application/sounds/test.wav
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |