2016-03-23 15 views
0

Ich möchte einen Indikator anzeigen, wenn jemand auf den Playbutton klickt. Wenn das Video geladen ist, möchte ich den Preloader verstecken. Das funktioniert perfekt mit Readystate:Wie kann ich prüfen, ob "caplaythrough" wahr ist?

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

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

      if (video.readyState === 4) { 

       myApp.hidePreloader(); 

      } else { 

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

      } 

      }); 

Wie kann ich mit canplaythrough loslegen dies statt Readystate?

So etwas funktioniert nicht:

  if (video.canplaythrough == true) {} 

video.canplaythrough "null" ist.

Antwort

1

canplaythrough ist ein event von nicht Eigentum von audio/video Element.

Dieses Ereignis wird ausgelöst nur einmal in der Lebensdauer des audio/video Element, wenn es völlig buffered ist und ohne buggering/stop spielen können, es sei denn, src des Elements nicht verändert wird.

Es sollte so aussehen:

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

Ja danke. Das Problem ist, wenn ich es benutze, funktioniert es gut mit dem ersten Klick auf Play. Aber wenn ich auf Pause und danach auf Wiedergabe klicke, schließt sich der Preloader nicht wieder. Ich denke, das Ereignis wird in diesem Fall nicht ausgelöst. – desmeit

+0

Okay danke für die Erklärung. Das heißt, die einzige Möglichkeit besteht darin, mit readyState zu arbeiten, um den aktuellen Status zu erhalten. – desmeit

+0

Sie haben 'play' und' pause' Event zu bewältigen! – Rayon

Verwandte Themen