J'ai une vidéo au milieu de mon HTML. Comme vous pouvez le voir au début, je n'ai aucune source
<video id="videoPrincipal" src="" width="640" height="360" controls preload></video>
Lorsque je clique sur un bouton, je déclenche une fonction qui permet:
myVid = document.getElementById('videoPrincipal');
myVid.src = 'video.mp4';
myVid.play();
myVid.currentTime ='5';
La lecture de la vidéo commence correctement, mais je ne peux pas régler l’heure actuelle (et j’ai fait ce que nous pouvons voir dans http://www.w3schools.com/tags/av_prop_currenttime.asp )
Cela me donne la même erreur si je définis le currentTime avant d'appeler la fonction play.
L'erreur qui s'affiche dans la console est la suivante: "InvalidStateError non capturé: une tentative d'utilisation d'un objet qui n'est pas ou n'est plus utilisable a été effectuée." (dans la ligne currentTime) mais lorsque je recherche ce problème, je ne peux pas associer à la vidéo, uniquement à la toile.
Merci d'avance
Vous n'avez pas à attendre que le jeu commence, mais il doit être prêt à jouer. Il y a le canplay événement pour le faire, donc quelque chose comme ça devrait marcher:
myVid.play();
myVid.addEventListener('canplay', function() {
this.currentTime = 5;
});
Comme mentionné ci-dessus, vous essayez de définir currentTime lorsque la vidéo ne peut pas être recherchée. Donc, comme cas d'utilisation alternatif (réinitialiser le temps à 0 lorsqu'un utilisateur clique sur un bouton, par exemple), vous pouvez faire quelque chose comme:
function resetVideo() {
myVid.pause();
if ( video.seekable.length > 0 ) {
myVid.currentTime = 0;
}
}
Sinon, vous pouvez également essayer de réinitialiser uniquement si la vidéo a déjà été lue.
function resetVideo() {
myVid.pause();
if ( video.currentTime !== 0 ) {
myVid.currentTime = 0;
}
}
video = document.getElementById('video');
begin_play = 50;
play_video_first = true; //if you want to run only first time
video.addEventListener("play", capture, false);
function capture(event)
{
if (event.type == "play"){
if(play_video_first){
play_video_first = false;
video.currentTime = begin_play;
}
}
}