2017-12-09 12 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からの一意のオブジェクト要素代わりにクラスを使用してください。 ** IDは一意である必要があります** – bhansa

答えて

0

あなたの配列を与え、その後innerHTMLを設定します代わりに、ここでidまたは使用するクラス、ユニークな用途:

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'を置き換えてください) –

関連する問題