대상 브라우저 및 현재 W3C 작업 초안 HTML5 사양 인 Media Elements 섹션의 구현에 따라 다릅니다.
타겟팅하는 브라우저가 여기에 특정 이벤트를 지원하는 경우 당신은 항상 확인할 수 있습니다 데이터를 통해 오는되지 않은 경우 http://www.w3.org/2010/05/video/mediaevents.html
그렇지 않으면, 다음, 나는 오디오 버퍼링되지 않습니다 믿고 stalled
이벤트가 발생합니다 .
데이터가 전송되는 경우 데이터가 버퍼링 될 때마다 (항상 일시 중지/재생되는 것은 아님) 실행되는 suspend
또는 progress
이벤트를 확인할 수 있어야합니다.
: 브라우저를 지원하지 않기 때문에 이러한 이벤트가 발사되지 않는 경우
, 당신은 항상 오디오 버퍼링인지 여부를 본질적으로 당신을 알려주는 타이머를 사용하여 오디오 요소의 networkState
속성을 확인할 수 있습니다 HTML :
<!DOCTYPE html>
<html>
<body>
<audio controls="controls" id="myAudio">
<source src="http://www.w3schools.com/html5/horse.ogg" type="audio/ogg">
Your browser does not support the audio element.
</audio>
</body>
</html>
자바 스크립트 :
var audioElement = document.getElementById('myAudio');
var checkNetworkStateTimer = setInterval(function() {
console.log(audioElement.networkState); //2 indicates NETWORK_LOADING state
}, 250);
jsFiddle에 또한 17,451,515,
: 오디오가 jsFiddle에 너무 짧은 샘플입니다하지만 당신은 아이디어를 얻을로 http://jsfiddle.net/3sdhj/2/
당신은 아마 2
의 networkState
를 재현 할 수 없습니다.
이 계속 실패하면, 내가 같은 SoundJS
, Buzz
또는 soundmanager2
(나는 이러한 라이브러리와 제휴 어떠한 방식으로 오전) 인기 HTML5 오디오 라이브러리와 함께 갈 것입니다.
참고로이 웹 사이트는 특히 유용합니다. http://www.longtailvideo.com/html5/buffering 도서관에서 도움을 줄 수 없습니다. –
@Omar Mir 나는 그 웹 사이트를 발견하지 못했습니다. 크로스 브라우저 지원을위한 좋은 발견입니다. –
감사. 유감스럽게도 여러 공급 업체가 설정 한 방식으로 오디오를 버퍼링하는 사용자를 보여줄 수는 없습니다. 백분율로 버퍼링 된 양의 진행률 막대를 표시합니다. 내가 할 수있는 모든 것. –