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 :

Playlist fonction next en boucle


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Playlist fonction next en boucle
    bonjour à tous,
    quelqu'un pourrait il me guider, j'essaye de faire évoluer ce script dans le sens ou j'aimerai avoir un simple bouton NEXT qui lit des chansons, mais en boucle.
    c'est à dire lecture des sons 1, 2, 3, puis 1, 2, 3...
    je débute, c'est pas facile, merci !
    philipe
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <script type="text/javascript">
        function loadPlayer() {
            var audioPlayer = new Audio();
            document.getElementById("player").appendChild(audioPlayer);
            nextSong();
        }
        function nextSong() {
            if(urls[next]!=undefined) {
                var audioPlayer = document.getElementsByTagName('audio')[0];
                if(audioPlayer!=undefined) {
                    audioPlayer.src=urls[next];
                    audioPlayer.load();
                    audioPlayer.play();
                    next++;
                } else {
                    loadPlayer();
                }
            } 
        }
        function stopSong() {
            var audioPlayer = document.getElementsByTagName('audio')[0];
      audioPlayer.pause();
        }
        var urls = new Array();
        urls[0] = 'http://www....01.mp3';
        urls[1] = 'http://www....02.mp3';
        urls[2] = 'http://www....03.mp3';
        var next = 0;
    </script>
    <div id="player"></div>
    <a href="#" onclick="nextSong()">NEXT</a>
    <a href="#" onclick="stopSong()">STOP</a>

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,

    pour tourner en boucle 0,1,2, tu n'as qu'à considérer
    qui t'assure de jamais atteindre 3...

    parenthèse à part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        var urls = new Array();
    1 : le new n'est pas nécessaire pour Array
    2 : il n'est pas non plus nécessaire de déclarer Array si tu ne lui donnes pas de taille, idem
    3 : tu peux directement construire ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var urls = [
      'http://www....01.mp3',
      'http://www....01.mp3',
      'http://www....01.mp3'
    ];

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,
    Par contre je n'arrive pas à trouver ou placer next = next %3 dans le script,
    De la même manière si j'enlève Array, et que je réécris les URL de cette façon, je n'ai plus de son du tout.
    Philippe

  4. #4
    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
    Remplace la ligne
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    next = (next+1) % urls.length


    donne-nous le code complet retouché, tu as dû te tromper dans la déclaration littérale de la liste d'URL.
    One Web to rule them all

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    voici le code retouché :

    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
    21
    22
    23
    24
    25
    26
    27
    function loadPlayer() {
        var audioPlayer = new Audio();
        document.getElementById("player").appendChild(audioPlayer);
        nextSong();
    }
    function nextSong() {
        if(urls[next]!=undefined) {
            var audioPlayer = document.getElementsByTagName('audio')[0];
            if(audioPlayer!=undefined) {
                audioPlayer.src=urls[next];
                audioPlayer.load();
                audioPlayer.play();
                next = (next+1) % urls.length;
            } else {
                loadPlayer();
            }
        } 
    }
    function stopSong() {
        var audioPlayer = document.getElementsByTagName('audio')[0];
        audioPlayer.pause();
    }
    var urls = [
      'http://www....01.mp3',
      'http://www....02.mp3',
      'http://www....03.mp3'
    ];
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="player"></div>
    <a href="#" onclick="nextSong()">NEXT</a>
    <a href="#" onclick="stopSong()">STOP</a>

  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
    Il semble que la dernière ligne soit passée à la trappe
    One Web to rule them all

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    ca marche pas non plus avec cette variable...

  8. #8
    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
    hmmm... peux-tu être plus précis que ça marche pas ? Un message en console peut-être ?
    One Web to rule them all

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Il n'y a aucun son.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    même en pointant sur des URL dont les liens fonctionnent, du coup je ne comprends pas.
    visiblement, j'avais au moins un premier son avec array.
    bref je suis pas un as côté codage...

  11. #11
    Invité
    Invité(e)
    Par défaut
    voici un exemple qui marche avec [] à la place de array
    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
    21
    22
    23
    24
    25
    26
    27
    28
     
    function loadPlayer() {
            var audioPlayer = new Audio();
            document.getElementById("player").appendChild(audioPlayer);
            nextSong();
        }
        function nextSong() {
            if(urls[next]!=undefined) {
                var audioPlayer = document.getElementsByTagName('audio')[0];
                if(audioPlayer!=undefined) {
                    audioPlayer.src=urls[next];
                    audioPlayer.load();
                    audioPlayer.play();
                    next++;
                } else {
                    loadPlayer();
                }
            } 
        }
        function stopSong() {
            var audioPlayer = document.getElementsByTagName('audio')[0];
      audioPlayer.pause();
        }
        var urls = [
      'http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg',
      'http://upload.wikimedia.org/wikipedia/en/9/9f/Sample_of_%22Another_Day_in_Paradise%22.ogg',
        ]
        var next = 0;
    voici le meme exemple avec next % urls.length
    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
    21
    22
    23
    24
    25
    26
    27
    28
     
    function loadPlayer() {
            var audioPlayer = new Audio();
            document.getElementById("player").appendChild(audioPlayer);
            nextSong();
        }
        function nextSong() {
            if(urls[next]!=undefined) {
                var audioPlayer = document.getElementsByTagName('audio')[0];
                if(audioPlayer!=undefined) {
                    audioPlayer.src=urls[next];
                    audioPlayer.load();
                    audioPlayer.play();
                    next = (next+1)%urls.length; //<================
                } else {
                    loadPlayer();
                }
            } 
        }
        function stopSong() {
            var audioPlayer = document.getElementsByTagName('audio')[0];
      audioPlayer.pause();
        }
        var urls = [
      'http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg',
      'http://upload.wikimedia.org/wikipedia/en/9/9f/Sample_of_%22Another_Day_in_Paradise%22.ogg',
        ]
        var next = 0;
    inutile de créer le noeud audio en javascript sil n'y en a qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var audioTag = document.getElementsByTagName('audio')[0];
    <div id="player">
    <audio></audio>  
    </div>
    inutile de .load la music car play load également la musique.
    (load sert si tu veux mettre en buffer la suivante pendant que la courante joue par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      audioTag.src=urls[next];
      audioTag.load();//useless
      audioTag.play();
    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
    21
    22
    23
    24
    25
    26
     
    <html>
    <div id="player">
    <audio></audio>  
    </div>
    <a href="#" onclick="nextSong()">NEXT</a>
    <a href="#" onclick="stopSong()">STOP</a>
    <script type="text/javascript">
    var audioTag = document.getElementsByTagName('audio')[0];
    var urls = [
      'http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg',
      'http://upload.wikimedia.org/wikipedia/en/9/9f/Sample_of_%22Another_Day_in_Paradise%22.ogg',
    ];
    var next = 0;
    function nextSong() {
      if(urls[next]!=undefined) {
        audioTag.src=urls[next];
        audioTag.play();
        next = (next+1)%urls.length;
      } 
    }
    function stopSong() {
      audioTag.pause();
    }
    </script>
    </html>
    bref je suis pas un as côté codage...
    et t'en deviendras probablement jamais un en js, si tu utilises pas les bons outils. Installes firebug (ou l'équivalent sous chrome) et regarde les erreurs que tu as dans ta console. Savoir que ca marche pas c'est un bon réflexe, mais pour pouvoir comprendre il faut au moins que tu aies la raison de l'erreur...chose qu'une page blanche ou une absence de son ne t'apprend pas

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    Ce code correspond tout à fait !

    Par contre j'ai cru comprendre que Safari utilisait des mp3,

    Il faut que je trouve maintenant comment faire coexister les deux formats.

    Si vous avez une piste de départ je veux bien,

    Bonne journée,

    Philippe

  13. #13
    Invité
    Invité(e)
    Par défaut
    http://www.w3schools.com/html/html5_audio.asp
    tu as juste à servir le content-type approprié côté serveur
    vu que Safari est pas capable de gérer l'ogg, alors soit tu pénalises safari en filtrant les musiques au format ogg, soit tu converties toutes tes musiques au format mp3

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2014
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci,
    Par contre, je ne sais pas vous, mais la dernière version de firefox 33.1 lit les mp3 !!!
    Enfin j'ai du son avec le script pointant sur des url mp3...
    Et vous ?
    Cordialement,
    Philippe

Discussions similaires

  1. [AC-2003] Fonction Split et boucle For next
    Par jmde dans le forum VBA Access
    Réponses: 10
    Dernier message: 01/08/2013, 19h45
  2. Réponses: 18
    Dernier message: 25/07/2007, 12h34
  3. Réponses: 10
    Dernier message: 07/01/2007, 12h03
  4. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  5. Appel d'une fonction dans uns boucle d'un tableau
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/02/2005, 15h37

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