Jouer partiellement une vidéo en boucle avec Javascript
Afin de limiter le poids des vidéos à charger dans un projet, j'ai utilisé une petite astuce permettant de lire une vidéo depuis le début, puis de boucler sur la fin de la vidéo.
Ainsi la vidéo dispose de son introduction, puis, elle tourne infiniment en boucle sur la fin, afin qu'il y ait toujours de l'animation sur le site internet.
Cette astuce se combine à merveille avec la précédente vue en Mars permettant de pré-charger une vidéo. Elle dispose de la même base, puisqu'il faut charger le vidéo en Javascript pour lui appliquer des intérations.
Pour que cela fonctionne, il faut d'abord désactiver la boucle
maVideo.loop = false;
Ensuite, il n'y a plus qu'à ajouter un événement qui se déclenche à la fin de la vidéo
maVideo.onended = function() {};
Dedans, il suffit de replacer le curseur où l'on souhaite dans la vidéo, et relancer la lecture
maVideo.onended = function() {this.currentTime = 6; this.play();};
Ici, le curseur est replacé à la 6eme seconde de la vidéo. Attention, ce n'est pas 6 secondes en arrière, mais bien la position dans la vidéo qui est redéfinie.
Si l'astuce est pratique, elle n'est pas exempt de défaut. Déjà, évidemment, il faut, lors du montage de la vidéo prévoir la boucle sur la portion souhaitée. Ensuite, malheureusement, quelque soit le navigateur, il y a une micro coupure de la vidéo, le temps que le curseur soit replacé et la vidéo relancée. Il faut donc le prévoir dans le montage aussi, en ayant un micro-délai neutre. Enfin, la boucle se fait obligatoirement sur le fin de la vidéo.