2016-03-13 37 views
0

我想从站上播放我的网络音频流。按loadstart事件消息播放出现LOADING,但在开始播放音频流之前,大约4或5秒钟之前将其删除。我希望事件能够控制流媒体文件加载的时间。请勿在Android上加载时间流媒体音频

台式电脑问题不存在,因为音频加载瞬间,但在智能手机中的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); 



} 

回答

1

oncanplay而不是loadeddataoncanplaythrough如果蚂蚁,以确保整个音频被加载。

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>

Fiddle here

+0

非常感谢您人造纤维,现在的问题是,该标志不会被删除LOADING ...它原地踏步。不应该在音频开始时删除? – PlayerWet

+0

检查编辑... – Rayon

+0

这是我第一次尝试它,它不起作用,必须有错误的人造丝。 看来,该功能停在那里。奇怪的是,如果他加载了音频,但不以任何方式删除消息LOADING ... – PlayerWet