[英]Android Chrome: Audio object takes a long time to begin streaming mp3
[英]Do not load time streaming audio on Android
我想在电台播放的网络音频上播放它。 按下按加载开始播放事件消息显示为“正在加载”,但在开始播放音频流之前大约4或5秒钟被删除。 我希望该事件可以控制流媒体文件加载的时间。
台式计算机不存在此问题,因为音频会立即加载,但是在Chrome浏览器和SO Android的Smartphone中,此问题非常明显,加载大约需要6或7秒。 所以我会通过一些事件来控制这次。
直到音频开始播放之前,不删除消息LOADING可以使用哪种事件? 谢谢。
function AudioStart(){
audio = new Audio();
audio.src = "http://listen.XXXX.com/XXXX";
audio.addEventListener("loadstart", function(){
document.getElementById('title').innerHTML="<span>LOADING...</span>";
;
},false);
audio.addEventListener("loadeddata", function(){
audio.play();
},false);
}
如果要确保已加载整个音频,请监听
oncanplay
而不是loadeddata
或oncanplaythrough
。
当加载了当前帧的数据,但没有足够的数据来播放指定音频/视频的下一帧时,发生loadeddata
事件。
当浏览器可以开始播放指定的音频/视频时(当其已足够缓冲以开始播放时),就会发生canplay
事件
当浏览器估计它可以播放指定的音频/视频而不必停止缓冲时,就会发生canplaythrough
事件。
尝试这个:
function AudioStart() { audio = new Audio(); audio.src = "http://www.w3schools.com/html/horse.mp3"; audio.addEventListener("loadstart", function() { document.getElementById('title').innerHTML = "<span>LOADING...</span>"; }, false); audio.addEventListener("canplay", function() { //OR 'oncanplaythrough' document.getElementById('title').innerHTML = ""; audio.play(); }, false); }
<h3 id='title'></h3> <button onclick='AudioStart()'>Start Audio</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.