我正在使用Monaca.mobi构建混合应用程序。当我为IOS构建应用程序时,一切都很好;然而,当我为Android设备(Nexus 7)构建它时,音频确实会通过。在Monaca调试器中;但是,音频工作正常。有没有关于Android设备的东西,我不知道,也许应用程序的一些权限?
通过某些按钮点击调用的angularJS函数播放声音。我知道这段代码是正确的,只是想我可能会分享它:
function DontAsk($scope){
$scope.play = function(){
var audio = new Audio();
audio.src = 'sounds/DontEventAsk.mp3';
audio.play();
}}
感谢您的任何见解。
答案 0 :(得分:1)
这里最大的问题是Monaca.mobi应用程序内部使用的浏览器是什么?默认的Android浏览器因不支持需要HTML5的较新的编解码器(如音频)而臭名昭着。您可能最好设置应用程序可以观看的某种标志,然后使用该应用播放声音而不是依赖浏览器。
答案 1 :(得分:1)
您的上述代码仅适用于iOS。对于Android,无法识别本地音频文件的路径。以下代码适用于两种操作系统。我已经使用内置的应用程序进行了测试。
$scope.play= function(){
var os = navigator.platform;
if (os=='iPhone'){
var url = "sounds/DontEventAsk.mp3";
}
else{
var url = getPhoneGapPath() + "sounds/DontEventAsk.mp3";
}
var my_media = new Media(url,
// success callback
function() {
console.log("playAudio():Audio Success");
},
// error callback
function(err) {
console.log("playAudio():Audio Error: "+JSON.stringify(err));
});
// Play audio
my_media.play();
}