不要在 Android 上加载时间流音频
Do not load time streaming audio on Android
我想在我的某个电台的网络音频流中播放它。按 loadstart 事件消息播放会出现 LOADING 但在它开始播放音频流之前被删除,大约提前 4 或 5 秒。我希望事件能够控制加载流文件的时间。
台式电脑不存在音频即时加载问题,但在 Chrome 浏览器和 S.O 智能手机中。 Android 这个问题非常明显,加载大约需要 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);
}
Listen oncanplay
instead of loadeddata
or oncanplaythrough
if you ant to make sure entire audio is loaded.
当加载当前帧的数据,但没有足够的数据来播放指定 audio/video 的下一帧时,loadeddata
事件发生。
当浏览器可以开始播放指定的audio/video(当它有足够的缓冲可以开始播放时)canplay
事件发生
当浏览器估计它可以播放指定的 audio/video 而无需停止缓冲时,就会发生 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>
我想在我的某个电台的网络音频流中播放它。按 loadstart 事件消息播放会出现 LOADING 但在它开始播放音频流之前被删除,大约提前 4 或 5 秒。我希望事件能够控制加载流文件的时间。
台式电脑不存在音频即时加载问题,但在 Chrome 浏览器和 S.O 智能手机中。 Android 这个问题非常明显,加载大约需要 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);
}
Listen
oncanplay
instead ofloadeddata
oroncanplaythrough
if you ant to make sure entire audio is loaded.
当加载当前帧的数据,但没有足够的数据来播放指定 audio/video 的下一帧时,loadeddata
事件发生。
当浏览器可以开始播放指定的audio/video(当它有足够的缓冲可以开始播放时)canplay
事件发生
当浏览器估计它可以播放指定的 audio/video 而无需停止缓冲时,就会发生 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>