音频在iOS Cordova Phonegap应用程序中无法播放

时间:2016-03-31 09:32:58

标签: javascript ios cordova audio

我正在创建一个跨平台的Cordova Phonegap音板应用。在Android版本上一切正常,但在iOS版本上声音拒绝播放。我使用SoundJS和PreloadJS来加载和播放音频。我使用了Phonegap远程调试服务器,发现iOS将音频识别为" application / octet stream" (见图片)。

Android上的一切都很好

Android

但我在iOS上得到了这个

iOS

我像这样加载音频:

var sound3= "sound3";
    createjs.Sound.registerSound("audio/anybody.mp3", sound3);

    $(function(){
    $( "#sound3" ).bind( "tap", tapHandler ) 

    function tapHandler( event ){

        sound3.play();
    }
});

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

我在我的一个Cordova项目上遇到了类似的问题。

第一个可能的原因:

这是因为不同的浏览器(Web视图)只能播放某些特定类型。您需要使用不同格式的声音,例如mp3ogg,并且在播放声音之前,您需要检测维护的格式。查看此文档Audio canPlayType并在播放之前进行检查

第二个可能的原因: File system个问题。 iOS资源路径不等于Android资源路径,在声音初始化之前,您需要构建一个特定于平台的本地资源路径

还尝试播放原生浏览器audio,而不是使用createjs,如下所示:

var sound3 = document.createElement('audio');

sound3.src = "audio/anybody.mp3";

function tapHandler( event ){
    sound3.play();
}

$(function(){
  $( "#sound3" ).bind( "tap", tapHandler ) 
});

答案 1 :(得分:0)

您是否尝试过使用m4a音频文件(aac)?这似乎是Apple喜欢的格式。还要确保当时只有一个声音播放,因为iOS一次只能处理一个音频播放。