我使用 ionic/Cordova 框架从 html5 和 JavaScript 创建了一个 Android 应用程序。在那里我创建并播放一个音频对象:
var myAudio = new Audio("myfile.mp3") ;
myAudio.play();
如果我在 Android API 21 上安装生成的 apk,音频播放正常。如果我在 API 19 上安装它,它就无法播放。
非常感谢您对此提供的任何帮助。
最佳答案
您好,您安装了 cordova 媒体插件了吗?
我过去用 cordova 4.0.0 做过类似的事情(绝对适用于 android 19(准确地说是 4.4.2)):
AckSound:function(){
try{
var pathMedia;
if(device.platform ==='iOS'){
pathMedia ='';
} else {
pathMedia = app.getCordovaPath();
}
var snd =new Media(pathMedia+'mySound.mp3');
// Update media position every second
var mediaTimer = null;
mediaDuration = snd.getDuration();
console.log("mediaDuration is " + mediaDuration);
snd.play();
if(mediaTimer==null){
mediaTimer = setInterval(function () {
// get media position
snd.getCurrentPosition(
// success callback
function (position) {
if (position > 0) {
console.log((position) + " sec");
} else {
//if position isn t > 0, the file is over
snd.stop();
clearInterval(mediaTimer);
mediaTimer = null;
snd.release();
delete snd;
}
},
// error callback
function (e) {
console.log("Error getting pos=" + e);
}
);
}, 100);
};
delete snd;
} catch(err){
console.log("Error: in AudioManagement.AckSound(), Error is " + err);
}
console.log("AudioManagement.AckSound() stops");
}
},
关于JavaScript 音频对象在 Android API 19 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775845/