web-dev-qa-db-fra.com

Vérifier si une vidéo html5 est prête

un événement JavaScript est-il déclenché si une vidéo HTML5 est prête pour la lecture? 

37
dantz

Je suppose que prêt pour la lecture signifie que la propriété readyState est égale à HAVE_ENOUGH_DATA constante (valeur numérique 4). Selon le doc , lorsque la propriété readyState passe à cette valeur, un événement canplay doit être déclenché.

16
Olivier Amblet

Je viens juste de trouver cette question et bien que ce soit un peu vieux, je la poste pour les futurs lecteurs (qui, comme moi, viennent probablement de Google).

Donc, à partir d’aujourd’hui, voici la liste des événements pour les médias html5 (selon le W3C):

  • à l'aventure : Script à exécuter sur avortement
  • oncanplay : Script à exécuter lorsqu'un fichier est prêt à être lu (lorsqu'il a suffisamment été mis en mémoire tampon pour commencer)
  • oncanplaythrough : Script à exécuter lorsqu'un fichier peut être lu jusqu'à la fin sans interruption de la mise en mémoire tampon
  • ondurationchange : Script à exécuter lorsque la longueur du support change
  • négligé : Script à exécuter lorsque quelque chose de grave se produit et que le fichier est soudain indisponible (comme une déconnexion inattendue)
  • onended : Script à exécuter lorsque le support est arrivé à la fin (événement utile pour les messages tels que "merci d'écouter")
  • une erreur  : Script à exécuter en cas d'erreur lors du chargement du fichier
  • onloadeddata : Script à exécuter lorsque les données multimédia sont chargées
  • onloadedmetadata : Script à exécuter lorsque les métadonnées (telles que les dimensions et la durée) sont chargées
  • onloadstart : Le script doit être exécuté au moment où le fichier commence à se charger avant que quoi que ce soit ne soit réellement chargé
  • une pause : Script à exécuter lorsque le média est suspendu par l'utilisateur ou par programme
  • onplay : Script à exécuter lorsque le support est prêt à jouer
  • onplay : Script à exécuter lorsque le média a commencé à jouer
  • en progrès : Script à exécuter lorsque le navigateur est en train de récupérer les données multimédias
  • onratechange : Script à exécuter chaque fois que la vitesse de lecture change (comme lorsqu'un utilisateur bascule en mode ralenti ou en mode avance rapide)
  • onstateystatechange : Script à exécuter à chaque changement d'état prêt (l'état prêt suit l'état des données du support)
  • onseeked : Script à exécuter lorsque l'attribut de recherche est défini sur false, indiquant que la recherche est terminée
  • recherche : Script à exécuter lorsque l'attribut de recherche est défini sur true, indiquant que la recherche est active
  • installé : Script à exécuter lorsque le navigateur est incapable d'extraire les données du média pour une raison quelconque
  • suspendre : Script à exécuter lors de l'extraction des données multimédia avant leur chargement complet pour une raison quelconque
  • date de mise à jour : Script à exécuter lorsque la position de lecture a changé (comme lorsque l'utilisateur avance rapidement vers un autre point du support)
  • onvolumechange : Script à exécuter chaque fois que le volume est modifié (ce qui inclut le réglage du volume sur "muet")
  • en attente : Script à exécuter lorsque le support est en pause mais qu'il est censé le reprendre (comme lorsque le support marque une pause pour stocker davantage de données).

Dantz cherchait à pouvoir jouer.

J'espère que cela t'aides.

80
MeanMatt

Bonne discussion ici ...

http://tiffanybbrown.com/2010/07/05/the-html5-video-progress-event/

Surtout le premier commentaire. 

Fondamentalement, cela faisait partie de la spécification et a été supprimé car il ne correspondait pas exactement à la manière dont le support est rendu. Au lieu de cela, .buffered a été ajouté.

Voici un exemple d'utilisation en mémoire tampon:

http://hacks.mozilla.org/2010/08/html5-video-buffered-property-available-in-firefox-4/

6
Orbit

Vous avez 2 événements à gérer lorsqu'une vidéo est prête à être lue.

  • canplay: déclenché lorsque la vidéo est prête à jouer mais la mise en mémoire tampon n'est pas terminée
  • canplaythrough: déclenché lorsque la vidéo est prête à être lue et que la mise en mémoire tampon est terminée
2
Yann L.

J'ai trouvé http://www.w3.org/TR/html5/video.html#mediaevents un outil extrêmement utile car il répertorie tous les événements disponibles en ce qui concerne les balises multimédia HTML5.

0
boz