Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JavaScript] Avoir un currentTime en seconde

Sujet résolu
Anonyme
    14 janvier 2021 à 15:42:30

    Bonjour je suis entrain de créer un lecteur de vidéo perso et j'aimerai faire un compteur pour voir ou on en est mais quand je fais 
    video.currentTime
    Et ben ça donne un résultat en millisecondes on peut m'aider pour donner un résultat en seconde ?
    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2021 à 15:46:44

      Salut,

      Ben, ta juste à faire ça :

      Math.floor(video.currentTime / 1000)

      Math.floor car une seconde n'est entièrement passer que lorsque 1000 millisecondes sont bien passées, donc pas d'arrondi (en tout cas de mon point de vu, c'est plus exacte.)

      Par contre, d'après la documentation MDN, curentTime donne bien une valeur en seconde et pas en milliseconde : https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime


      -
      Edité par BrainError 14 janvier 2021 à 15:48:36

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 janvier 2021 à 15:53:31

        Mais quand je fais 

            var whereTouAt = video.currentTime;
            var time_actu = AtMath.floor(whereTouAt / 1000)
            
            time.textContent = time_actu + "/" + video.duration
        

        A la fin ça donne rien



        -
        Edité par Anonyme 14 janvier 2021 à 15:54:07

        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2021 à 16:00:00

          Pourquoi tu utilises 'AtMath' ? C'est juste 'Math'...
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            14 janvier 2021 à 16:03:56

            Cette fois ça affiche quelque chose mais ça reste à 0 
            video.addEventListener('timeupdate', function(){
            
                let juicePos = video.currentTime / video.duration;
            
                var whereTouAt = video.currentTime;
                var time_actu = Math.floor(whereTouAt / 1000)
                
                time.textContent = time_actu + "/" + video.duration
            
                juice.style.width = juicePos * 100 + '%';
            
                if(video.ended) {
                    btn.className ="play";
                }
            
            
            })
            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2021 à 16:22:00

              Ben en même temps et comme je te le disais plus tôt dans mon premier message, currentTime renvoi une valeur en seconde et pas en milliseconde d'après la documentation officielle.

              Donc forcément, si tu as une vidéo qui dure moins de 16 minutes, tu procède à un calcul qui renvera toujours 0. Exemple pour une vidéo de 10 min :

              10 min = 600 secondes

              600 / 1000 = 0.6

              Math.floor(0.6) = 0

              CQFD...

              Donc en fait, utilises directement video.currentTime puisque c'est une valeur en seconde et pas en milliseconde comme tu le pensais initialement.

              -
              Edité par BrainError 14 janvier 2021 à 16:22:29

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                14 janvier 2021 à 16:28:58

                Ouai @BraineError mais enfaite je voulais enlever 4.467...

                -
                Edité par Anonyme 14 janvier 2021 à 16:47:24

                • Partager sur Facebook
                • Partager sur Twitter
                  14 janvier 2021 à 17:41:17

                  Ben, t'es pas en milliseconde alors si tu as un nombre décimal.

                  Tu as simplement à utiliser Math.floor (sans la division par 1000).

                  -
                  Edité par BrainError 14 janvier 2021 à 17:42:03

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    14 janvier 2021 à 21:58:02

                    Merci ça marche
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [JavaScript] Avoir un currentTime en seconde

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown