我正在创建一个跨平台的Cordova Phonegap音板应用。在Android版本上一切正常,但在iOS版本上声音拒绝播放。我使用SoundJS和PreloadJS来加载和播放音频。我使用了Phonegap远程调试服务器,发现iOS将音频识别为" application / octet stream" (见图片)。
Android上的一切都很好
但我在iOS上得到了这个
我像这样加载音频:
var sound3= "sound3";
createjs.Sound.registerSound("audio/anybody.mp3", sound3);
$(function(){
$( "#sound3" ).bind( "tap", tapHandler )
function tapHandler( event ){
sound3.play();
}
});
有人可以帮帮我吗?
答案 0 :(得分:1)
我在我的一个Cordova项目上遇到了类似的问题。
第一个可能的原因:
这是因为不同的浏览器(Web视图)只能播放某些特定类型。您需要使用不同格式的声音,例如mp3
或ogg
,并且在播放声音之前,您需要检测维护的格式。查看此文档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一次只能处理一个音频播放。