Réglage du problème currentTime in HTML5 video

J'ai une vidéo au milieu de mon html. Comme vous pouvez le voir d'abord, 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 crée:

 myVid = document.getElementById('videoPrincipal'); myVid.src = 'video.mp4'; myVid.play(); myVid.currentTime ='5'; 

La vidéo commence à jouer correctement, mais je ne peux pas définir l'heure actuelle (et j'ai fait la même chose que possible dans http://www.w3schools.com/tags/av_prop_currenttime.asp )

Cela me donne la même erreur si j'ai configuré currentTime avant d'appeler la fonction play.

L'erreur qui me montre dans la console est la suivante: "Uncaught InvalidStateError: Une tentative a été faite pour utiliser un objet qui n'est pas utilisé ou n'est plus utilisable". (Dans la ligne currentTime) mais lorsque je recherche ce problème, je ne peux pas associer à la vidéo, uniquement avec un canevas.

Merci d'avance

Vous ne devez pas l'attendre pour commencer à jouer, mais il doit être prêt à jouer. Il y a l'événement de jeu pour faire ça, donc quelque chose comme ça devrait fonctionner:

 myVid.play(); myVid.addEventListener('canplay', function() { this.currentTime = 5; }); 
 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; } } } 

Comme mentionné ci-dessus, vous essayez de configurer currentTime lorsque la vidéo n'est pas recherchée. Ainsi, en tant que cas d'utilisation alternatif (réinitialiser le temps à 0 quand 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; } } 

Il faut attendre jusqu'à ce qu'il soit prêt à jouer,
C'est-à-dire ne vous attendez pas à ce que play soit une fonction de blocage
Changez votre code comme suit:

 myVid.play(); myVid.media.addEventListener('playing', function(){ myVid.setCurrentTime(5); });