11 votes

Bug bizarre sur Videojs

Je ne sais pas comment cela se produit et je ne vois pas d'erreur. Je ne parviens pas à naviguer dans la vidéo la deuxième fois que j'ouvre ma page.

Voir la capture d'écran ici : enter image description here

J'ai trouvé cette erreur qui dit,

TypeError: Floating-point value is not finite.
"Video is not ready. (Video.js)"

Une aide serait vraiment appréciée.

Gracias

1voto

DrewT Points 527

Quand vous dites "Je n'arrive pas à naviguer dans la vidéo la deuxième fois que j'ouvre ma page" ? Voulez-vous dire que vous ne pouvez pas lire la vidéo du tout ou que vous ne pouvez pas faire d'avance rapide ou de retour en arrière dans la vidéo en cours de lecture ?

Que vous obtenez un Type Error: Floating-point value is not finite signifie qu'un certain paramètre que vous fournissez à video.js n'est pas du bon type. Par exemple, vous fournissez probablement à video.js une chaîne de caractères alors qu'il veut un nombre entier (ou quelque chose de similaire).

Comme cela fonctionne la première fois que vous chargez la page, essayez-vous de reprendre la lecture là où vous l'avez laissée lorsque vous avez quitté la page ?

Si c'est le cas, vous stockez probablement le fichier currentTime dans une cookie o localStorage en tant que chaîne de caractères (en utilisant les cookies jQuery, par exemple, ils sont généralement stringifiés automatiquement) et oublier de la retransformer en int lorsque vous avez besoin que video.js vous la lise. Car ce que je remarque sur votre capture d'écran, c'est que video.js ne semble pas connaître la durée de votre vidéo (c'est-à-dire que le temps de recherche indique 0:31 / 0:00).

Voici ce que vous devez faire :

Videz votre cache pour que le chargement du premier joueur fonctionne :

Avant de commencer la lecture, après la fin de la lecture, et pendant la lecture, vous devez enregistrer la signature temporelle actuelle de la lecture, c'est-à-dire : console.log( videojs("id-of-your-video").currentTime() )

Ajouter une signature temporelle console.logs() à ces callbacks d'événements de video.js devrait vous aider :

  • changement de durée (tiré si la durée totale de votre vidéo change)
  • durée (vous indique la durée de votre vidéo. Essayez de l'enregistrer pendant que la vidéo fonctionne, puis une fois qu'elle s'est arrêtée, et regardez ce qui a changé dans la valeur.)
  • Si vous rencontrez toujours des difficultés, essayez d'enregistrer les valeurs à l'aide de la vidéo js. timeupdate le rappel. Cet événement est appelé lorsque la position actuelle de la lecture a changé (cela peut être plusieurs fois par seconde). Si tout le reste échoue, ce callback peut vous donner un aperçu du moment exact où vous obtenez la valeur de type invalide, mais il ne vous aidera pas si vos problèmes consistent à essayer de reprendre la lecture à partir d'un fichier .currentTime() lecture de la valeur à partir d'un type incorrect stocké dans l'utilisateur cookie / sessionStorage / localStorage etc.

0voto

Susheel Singh Points 2948

Utilisez-vous un serveur pour l'exécuter ou l'exécutez-vous localement ? Parce que j'ai eu des problèmes similaires lorsque je l'ai exécuté localement. Mais quand je mets les fichiers dans un serveur comme tomcat ou iis ou n'importe quel autre serveur, ça marche. Je ne suis pas sûr du problème, juste une supposition.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X