使用没有cordova的流星我可以在浏览器中播放声音 new Audio('test.mp3').play() test.mp3位于公用文件夹中.但是,当我将应用程序作为设备上的cordova应用程序运行时,我无法播放声音.我究竟做错了
new Audio('test.mp3').play()
test.mp3位于公用文件夹中.但是,当我将应用程序作为设备上的cordova应用程序运行时,我无法播放声音.我究竟做错了什么?谢谢.
TL;博士>安装cordova media plugin meteor add cordova:org.apache.cordova.media@0.2.15
>将音频文件添加到公共目录
>使用/android_asset/www/application/path/to/sound.wav
如果你查看项目中的这个文件夹,
$PROJECT_ROOT / .meteor /本地/科尔多瓦建造/平台/安卓/资产/ 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();
注意:我将我的音频文件包含在公共文件夹中,即
$PROJECT_ROOT /公/声音/ test.wav
在Android上,此文件路径被翻译为
/android_asset/www/application/sounds/test.wav