我爱模板网在写一个
html5歌词同步的音乐播放器时,在IOS测试,发现HTML5 Audio的loadeddata事件始终不执行,在Android下执行,而且,打印audio的readyState状态,始终是1,但是Android是4,代码如下:
<audio id="audio" :src="playSrc"></audio>
myAudio.addEventListener("loadeddata",loadeddataEv, false);
//打印状态 这里用setInterval是因为没看到状态改变事件,及onreadyStateChange,ajax是有的。
setInterval(function(){
console.log(myAudio.readyState);
},300)
function loadeddataEv(){
document.querySelector('#loading').style.display = 'none';
myAudio.pause();
addListenTouch(); //拖动进度条事件
timeChange(myAudio.duration,'endTime'); //初始化结束时间
timeChange(myAudio.currentTime, "startTime"); //初始化开始时间
clicks();
lrcSync();
}
找了很久没发现问题,后来给audio标签加上autoplay事件,发现好了,而且状态也变为了3,真奇怪,至于加上preload行不行,就没测试了:
<audio id="audio" :src="playSrc" autoplay></audio>