2017-12-09 9 views
-1

Javascript를 사용하여 오디오의 버퍼링 된 비율을 표시 할 수없는 이유는 무엇입니까?버퍼링 된 오디오 비율 표시

오디오로드 시간이 많이 걸리는 이유는 무엇

var audio = document.getElementById("aone1"); 
 
var percentages = document.getElementById("aone1l"); 
 

 
function loop() { 
 
    var buffered = audio.buffered; 
 
    var loaded; 
 
    var played; 
 

 
    if (buffered.length) { 
 
    loaded = 100 * buffered.end(0)/audio.duration; 
 
    played = 100 * audio.currentTime/audio.duration; 
 
    percentages[0].innerHTML = loaded.toFixed(2); 
 
    percentages[1].innerHTML = played.toFixed(2); 
 
    } 
 

 
    setTimeout(loop, 50); 
 
} 
 

 
loop();
<audio id="aone1" controls="controls"> 
 
    <source src="http://jainvidhya.epizy.com/Audio/Part1/ऑडियो नंबर 1 नमस्कार महामंत्र.mp4"> 
 
</audio> 
 
<p>Loaded: <span id="aone1l"></span>%</p> 
 
<p>Played: <span id="aone1l"></span>%</p>

? 당신에게 배열을 줄 것 대신에 여기

+0

'getElementById' 배열을주지 않을 것이다, 당신을 줄 것이다 DOM의 고유 오브젝트 요소 대신 클래스를 사용하십시오. ** 이드는 유일해야합니다 ** – bhansa

답변

0

고유 한 사용 id 또는 사용 클래스는, 설정 innerHTML :

var audio = document.getElementById("aone1"); 
 
var percentages = document.getElementsByClassName("aone1l") 
 

 
function loop() { 
 
    var buffered = audio.buffered; 
 
    var loaded; 
 
    var played; 
 

 
    if (buffered.length) { 
 
    loaded = 100 * buffered.end(0)/audio.duration; 
 
    played = 100 * audio.currentTime/audio.duration; 
 
    percentages[0].innerHTML = loaded.toFixed(2); 
 
    percentages[1].innerHTML = played.toFixed(2); 
 
    } 
 

 
    setTimeout(loop, 50); 
 
} 
 

 
loop();
<audio id="aone1" controls="controls"> 
 
    <source src="https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"> 
 
</audio> 
 
<p>Loaded: <span class="aone1l"></span>%</p> 
 
<p>Played: <span class="aone1l"></span>%</p>

+0

감사합니다. 만약 'var audio'를'var audio1o'로 바꾸면 더 이상 같은 대체물이 생깁니 까? –

+0

원하는 경우 변수 이름을 변경할 수는 있지만 변수 이름은 변경하지 않았습니다. 방금 ID 대신 클래스를 사용했습니다. – bhansa

+0

변수를 바꿀 수 있습니까? (어떤 오디오 파일이라도 'audio'로 대체하십시오.) –