h5 audio音频文件流在ios中无法正常播放的大坑解决

1、通过文件流
2、循环多个audio标签来播放
3、android可以ios出现加载最后一点后闪退,文件损坏
4、android可以播放、ios能播放但是没有声音

以上是遇到的大坑之旅。。。下面就直接来为屌丝们来解决:

var $audio = document.getElementById("audio"+index);
var source = document.createElement('source');
var xml= new XMLHttpRequest();
xml.open("GET", url, true);
xml.onreadystatechange = function () {
   var content = oReq.response;
   var blob = new Blob([content]);
   source.type = "audio/mpeg";
   source.src = window.webkitURL.createObjectURL(blob)|| URL.createObjectURL(blob);
   source.autoplay = "autoplay";
   source.controls = "controls";
   $audio.appendChild(source);
   $audio.currentTime = 0;
   $audio.load();
   if($audio.paused){
     $audio.play();
   }else{
     $audio.pause();
   }
}
xml.responseType = "blob";
xml.addEventListener("progress", function (evt) {
   //XXXXXXXXXXX
}, false);
xml.onload = function (oEvent) {};
xml.send();

至于ios播放插入耳机有声音,外放没有声音。真是无语,是ios手机设置了静音按键。我擦,结束

 

你可能感兴趣的:(h5,浏览器ios兼容)