2016-03-23 10 views
0

誰かが再生ボタンをクリックした場合、インジケータを表示したいと思います。ビデオがロードされている場合、プリローダーを非表示にしたい。これはreadyStateのと完璧に動作します:私は代わりのreadyStateのcanplaythroughでこれを軌道に乗る可能性がどのように「canplaythrough」が真であるかどうかをどのように確認できますか?

  var einleitung = document.getElementById('einleitung'); 

      video.addEventListener('play', function() { 

      if (video.readyState === 4) { 

       myApp.hidePreloader(); 

      } else { 

       myApp.showPreloader('Loading...'); 

      } 

      }); 

?このような

何かが機能していません。

  if (video.canplaythrough == true) {} 

video.canplaythroughは "ヌル" です。

答えて

1

canplaythroughは、audio/videoでない特性のeventです。

一度だけaudio/video素子の長寿命で、このイベントが発生し、それは完全にbufferedで、要素のsrcが変更されていない場合を除きいかなるbuggering/stopずに再生することができます。

それはこのようにする必要があります:

audio|video.addEventListener("canplaythrough", function(){//your code}); 
+0

はいありがとう。問題は、私がそれを使うと、最初のクリックでうまく動作することです。しかし、私が一時停止をクリックした後、それを再びプレイすると、プリローダーが再び閉じることはありません。このイベントではこのイベントは起こっていないと思います。 – desmeit

+0

説明に感謝します。つまり、readyStateを使用して現在のステータスを取得することだけです。 – desmeit

+0

あなたは対処する 'play'と' pause'イベントを持っています! – Rayon