2017-12-09 2 views
1

私はオーディオファイルとそのためのjavascriptを持っています。javascriptの内部htmlが動作しない

バッファリングされたオーディオのjavascriptのディスプレイ割合は、何の緩衝化が発生していない場合、それはロード...

function loop2() { 
 
    var audio2 = document.getElementById("atwo1"); 
 
    var percentages = document.getElementsByClassName("atwo1l") 
 
    var buffered = audio2.buffered; 
 
    var loaded; 
 

 
    if (buffered.length) { 
 
    loaded = 100 * buffered.end(0)/audio2.duration; 
 
    if (loaded.toFixed(2) != '0') { 
 
     percentages[0].innerHTML = 'Loading: ' + loaded.toFixed(2) + '%'; 
 
    } else { 
 
     percentages[0].innerHTML = 'Loading....'; 
 
    } 
 
    } 
 

 
    setTimeout(loop2, 50); 
 
} 
 

 
loop2();
<audio id="atwo1" controls="controls"> 
 
    <source src="https://docs.google.com/uc?export=download&id=19gLpR7J8TVHmooVbM23eK5Xq0f9YXNZf"> 
 
</audio> 
 
<p><span class="atwo1l"></span></p>

が表示されますが、上記のコードのために、それが表示されませんloading...

小さなオーディオファイルを置くと表示されます。だから、大きなファイルのためになぜですか?

更新:

Found a partial answerupdated codes

Why a partial answer?

+0

'loaded'というコードレンダリングは、 'buffered.lengfth'がある場合にのみトリガする条件の中にあります。 – sideroxylon

+0

@sideroxylonしたがって、関数の外にもう1つの条件が必要ですか? – JVOQ

+0

@sideroxylonそして、条件は何ですか? – JVOQ

答えて

0

答えで一緒にすべてのコメント

function loop2() { 
    var audio2 = document.getElementById("aone1"), 
     percentages = document.getElementsByClassName("aone1l"), 
     buffered, 
     loaded; 

    if (audio2 && percentages) { // if both elements are found in the DOM 
    buffered = audio2.buffered; 

    if (buffered.length) { 
     loaded = 100 * buffered.end(0)/audio2.duration; 

     if (loaded.toFixed(2) != '0') { 
     percentages[0].innerHTML = 'Loading: ' + loaded.toFixed(2) + '%'; 
     } 

     if(loaded >= 1){ 
     audio2.classList.remove('un-buffered'); 
     } 
    } else { // handle the case where the buffered.length is 0 or undefined 
     percentages[0].innerHTML = 'Loading....'; 
    } 
    } 

    setTimeout(loop2, 50); 
} 
+0

私にあなたの貴重な時間を与えてくれてありがとう。コードでコードを更新しますが、私はあなたに私の[audio.php](http://jainvidhya.co.in/audio.php)を訪問し、それを表示してください。 JavaScriptを持っているといいですか?(すべてのオーディオに違いがあります)または、すべてのオーディオでむしろ別々のスクリプトを作成しています。 (オーディオは増減する可能性があります)。ジュニアからシニアへのリクエスト。 – JVOQ

+0

上記のコメントのために私を助けて欲しいというリクエスト – JVOQ

+0

@JVOQ https://pastebin.com/CMAxwsRGを参照してください。コードレビューのために、いつでもhttps://codereview.stackexchange.com –

関連する問題