IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Débuter automatiquement le son d'un fichier ogg à un endroit précis


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Points : 32
    Points
    32
    Par défaut Débuter automatiquement le son d'un fichier ogg à un endroit précis
    Bonjour,

    Je voudrais savoir si avec le javascript on peut faire débuter le son à un endroit précis d'un fichier ogg ou mp3. par exemple, débuter le son à 1minute 30 seconde à partir du début de l'enregistrement.
    J'utilise la balise du HTML5, elle possède très peu d'arguments (autoplay, controls notamment), mais apparemment pas de commencer le son où on veut:
    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Oui en modifiant en JavaScript l'attribut currentTime. L'API complète de l'élément <audio> est dispoible ici : https://developer.mozilla.org/en-US/...MLMediaElement

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Points : 32
    Points
    32
    Par défaut
    Effectivement, j'ai tenté un petit script et ça fonctionne. il y a sans doute mieux (je suis loin d'être export). Voilà ce que ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <script language="javascript">
     
    function demarrer()
      { 
      audio1.currentTime=90;
      audio1.play();
      } 
     
    </script>
     
    <audio id="monaudio" src="1violon_musique.ogg"></audio>
     
    <script language="javascript">
     
    var audio1=document.getElementById('monaudio');
     
    </script>
     
    <button onclick="demarrer();">envoyer musique</button>
    Le son démarre bien à 90 secondes à partir du début quand on clique sur le bouton. Et ça fonctionne aussi bien avec Chrome qu'avec Firefox.

    En revanche, si je lance la fonction directement par:

    demarrer();

    au lieu de <button... pour démarrer automatiquement le son, là ça marche et je comprends pas pourquoi.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sat99
    là ça marche et je comprends pas pourquoi.
    Je te comprends, c'est toujours agaçant quand un script marche...

    Plaisanterie à part, j'imagine qu'en réalité, ça ne marche pas, ce qui peut être dû à plusieurs raisons.
    D'abord, un mauvais positionnement de l'appel de la fonction. Si elle est présente dans le code avant la balise <audio>, ça ne pourra pas marcher puisque l'élément n'existe pas encore dans le DOM.

    Mais dans ton cas précis, c'est plus probablement dû au fait que pour pouvoir atteindre le moment souhaité (90s), il faut que le fichier ai été préchargé (au moins jusqu'à cet instant) ce qui n'est pas le cas si tu lances l'écoute juste après avoir inséré la balise dans le DOM.
    A la rigueur, tu pourrais utiliser l'événement durationchange pour contrôler le moment à partir duquel tu peux lancer l'écoute.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Points : 32
    Points
    32
    Par défaut suite passge variable de iframe au document principal
    Oui, je voulais dire "ça marche pas", mais c'est quand j'écrivais directement la fonction: demarrer()
    Pour que ça marche, il faut l'inclure dans un setTimeout, et là ÇA MARCHE, c'est pas un lapsus. Donc, résolu.Je récapitule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script language="javascript">
    function demarrer(){ 
      audio1.currentTime=705;
      audio1.play();
    } 
    </script>
    <audio id="monaudio" src="1violon_musique.ogg"></audio>
    <script language="javascript">
    var audio1=document.getElementById('monaudio');
    setTimeout("demarrer()",1000);
    </script>

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Le setTimeout est la façon la plus sale de corriger ton problème d'ordre des instructions, le délai de 1 seconde est complètement arbitraire et ne sera peut être pas suffisant dans tous les cas. Il faut te brancher sur les bons évènements, regarde ici : http://www.whatwg.org/specs/web-apps...ml#mediaevents

    Donc il faut placer le curseur currentTime à l'endroit désiré puis attendre l'évènement (canplay pour jouer rapidement avec un risque que ça coupe au milieu, canplaythrough pour jouer sans risque de coupure)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <audio id="monaudio" src="1violon_musique.ogg"></audio>
    <script>var audio = document.getElementById("monaudio");
    audio.currentTime = 705;
    audio.addEventListener("canplaythrough", audio.play);
    </script>

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 27
    Points : 32
    Points
    32
    Par défaut suite passge variable de iframe au document principal
    D'accord, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouvrir un fichier chm à un endroit précis
    Par Nostalgeek dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 07/11/2010, 02h43
  2. Réponses: 7
    Dernier message: 29/04/2010, 17h27
  3. Réponses: 1
    Dernier message: 27/01/2009, 16h32
  4. Fichier + ecrire à un endroit précis
    Par fraisa1985 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/03/2008, 14h22
  5. Modifier un fichier texte à un endroit précis
    Par Christophe_ dans le forum C#
    Réponses: 2
    Dernier message: 29/04/2007, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo