Javascript 混合应用程序:Android上无法播放音频
我正在使用Monaca.mobi构建一个混合应用程序。当我为IOS构建应用程序时,一切都很好;然而,当我为android设备(Nexus7)构建它时,音频确实会通过。在Monaca调试器中;但是,音频工作正常。安卓设备是否有我不知道的地方,可能是应用程序的一些权限 声音通过angularJS函数播放,该函数在某些按钮单击时调用。我知道这段代码是正确的,只是想和大家分享一下:Javascript 混合应用程序:Android上无法播放音频,javascript,android,angularjs,audio,monaca,Javascript,Android,Angularjs,Audio,Monaca,我正在使用Monaca.mobi构建一个混合应用程序。当我为IOS构建应用程序时,一切都很好;然而,当我为android设备(Nexus7)构建它时,音频确实会通过。在Monaca调试器中;但是,音频工作正常。安卓设备是否有我不知道的地方,可能是应用程序的一些权限 声音通过angularJS函数播放,该函数在某些按钮单击时调用。我知道这段代码是正确的,只是想和大家分享一下: function DontAsk($scope){ $scope.play = function(){ var a
function DontAsk($scope){
$scope.play = function(){
var audio = new Audio();
audio.src = 'sounds/DontEventAsk.mp3';
audio.play();
}}
感谢您的帮助。这里的大问题是Monaca.mobi应用程序内部使用什么浏览器?默认Android浏览器因不支持需要HTML5的音频等较新编解码器而臭名昭著。您最好设置某种标志,让应用程序可以观看,然后使用应用程序播放声音,而不是依赖浏览器。您上面的代码仅适用于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();
}
嗨,我已经实现了这个,但它似乎只适用于iPhone。在Android中,调用该函数会在Monaca调试器中出现错误,这是正常的,因为getPhoneGapPath()未定义,我假设,但当应用程序构建时,不会发出声音。你能和我分享一下你成功的实现吗?谢谢,Ben就是一个函数的样子。我不认为这个功能有问题,因为它在iPhoneHi上也可以正常工作。我认为您可能忘记在您的答案中添加函数getPhoneGapPath(),因为它似乎不是内置函数。这是正确的功能:在玩过之后,我让它工作。不过还是要感谢这个伟大的学习过程。