本系列声音bug都是在安卓一些不支持webAudio的手机浏览器上发现的,包括荣耀6,小米4,红米等系列安卓手机的webview。苹果系列和安卓5.0手机未见这些问题。应用IDE是cocoscreator1.3.2。
(1)用cc.AudioSource的方法播放背景音,即使在面板设置loop,在安卓手机的webview浏览器上只能播放一遍背景音乐即停止了。当我用playMusic来播放背景声音,单次播放方式,检测isMusicPlaying()当为false又重新播放的方法,在苹果和安卓5.0以上手机上是可以达到循环播放效果的,但是在安卓中低端手机上是需要不断点击屏幕才播放,而且播放时序紊乱。
(2)cc.AudioEngine.playEffect播放音效,在不支持webAudio浏览器上声音加载方式回退到Dom方式,在浏览器network上观察声音都加载失败,造成声音卡顿严重,基本上不具有可播放性。
(3)在安卓系列低端机型上用XmlHttpRequest下载二进制声音,在用audio来播放的思路,
//加载声音
getAudioRequest:function(url)
{
var self = this;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 400)) {
var blob = new Uint8Array(this.response);
var base = “data:audio/mpeg;base64,” + self.Base64(blob);
var audio = document.createElement(“audio”);
audio.src = base;
audio.play();
}
};
xhr.open(“get”, url);
xhr.responseType = ‘arraybuffer’;
xhr.send(null);
},
在苹果上是可以播放声音的,但是在安卓全系列机型上都不行;把上述代码移植成H5网页代码,可以在安卓全系列和苹果上都能播放声音。
