MP3 aléatoire au chargement de la page

Janus -  
blet Messages postés 336 Statut Membre -
Bonjour,

j'essaye de programmer en php un script qui permettrait de lire un court fichier son (jingleX dans le code) à chaque chargement de la page.
J'ai bien trouvé le lecteur MP3 web suivant :
http://musicplayer.sourceforge.net/#documentation
Il permet de lire une playlist, tous les fichiers d'un dossier grâce à un fichier XSPF. J'ai testé ça marche. Mais il me les lit tous en aléatoire. Je cherche à n'en lire qu'un à chaque fois.
Alors j'ai pensé utiliser ce lecteur en mode "single file" grâce au paramètre song_url = et définir ce fichier de façon aléatoire grâce au php.

Alors voilà le code que j'ai pondu :
<?php
$jingle_choisi = "$result=round(rand(1,3));
    if ($result==1) { echo "jingle1.mp3"; }
    if ($result==2) { echo "jingle2.mp3"; }
    if ($result==3) { echo "jingle3.mp3"; }";
?>

    <object type="application/x-shockwave-flash" width="400" height="170"
    data="http://mondomaine.com/xspf_player.swf?song_url=http://mondomaine.com/<?php
echo "$jingle_choisi";
?>">
    <param name="movie"
    value="http://mondomaine.com/xspf_player.swf?song_url=http://mondomaine.com/<?php
echo "$jingle_choisi";
?>" />
    </object>


Pensez-vous que ça pourrait fonctionner (je n'ai pas encore pu l'envoyer sur mon serveur pour tester) ? Je balbutie en php, alors si vous voyez des erreurs ou si vous avez des améliorations à y apporter je vous en remercie d'avance !
Configuration: Firefox 3.0.3

5 réponses

  1. BartWadela Messages postés 606 Statut Membre 111
     
    Salut,

    si dans ton script tu mets :

    <?php
    $jingle_choisi = "$result=round(rand(1,3));
        if ($result==1) { echo "jingle1.mp3"; }
        elseif ($result==2) { echo "jingle2.mp3"; }
        elseif ($result==3) { echo "jingle3.mp3"; }";
    ?>


    a la place de :

    <?php
    $jingle_choisi = "$result=round(rand(1,3));
        if ($result==1) { echo "jingle1.mp3"; }
        if ($result==2) { echo "jingle2.mp3"; }
        if ($result==3) { echo "jingle3.mp3"; }";
    ?>


    ca donne koi ?
    0
    1. Janus
       
      Mon code :

      <php>
      <body>
      
      <?php
      $jingle_choisi = "$result=round(rand(1,3));
          if ($result==1) { echo "jingle1.mp3"; }
          elseif ($result==2) { echo "jingle2.mp3"; }
          elseif ($result==3) { echo "jingle3.mp3"; }";
      ?>
      
      <object type="application/x-shockwave-flash" width="400" height="170"
      data="http://mondomaine.com/xspf_player_slim.swf?&autoplay=true&song_url=<?php
      echo "$jingle_choisi";
      ?>">
      <param name="movie" 
      value="http://mondomaine.com/xspf_player_slim.swf?&autoplay=true&song_url=<?php
      echo "$jingle_choisi";
      ?>" />
      </object>
      </body>
      </php>
      


      Quand j'enregistre le fichier en .html il m'ouvre la page, fait apparaitre le lecteur mais ne lit pas de piste, que je mette if ou esleif

      Quand j'enregistre le fichier en .php ça donne :
      Parse error: syntax error, unexpected T_STRING in /mnt/152/free.fr/b/4/mondomaine/essai son 5.php on line 6
      0
      1. BartWadela Messages postés 606 Statut Membre 111 > Janus
         
        en html c' normal que t'es pas de son

        syntax error line 6

        fais voir la ligne 6 de ton code
        0
      2. Janus > BartWadela Messages postés 606 Statut Membre
         
        Bah voici les lignes 5, 6 et 7 :
        $jingle_choisi = "$result=round(rand(1,3));
            if ($result==1) { echo "jingle1.mp3"; }
            elseif ($result==2) { echo "jingle2.mp3"; }


        Cela dit j'ai sauté une ligne (la ligne 3 vide) alors je ne sais pas si elle est comptabilisée par php ou pas.
        0
      3. BartWadela Messages postés 606 Statut Membre 111 > Janus
         
        $jingle_choisi = " $result=round(rand(1,3));
        if ($result==1) { echo "jingle1.mp3"; }
        elseif ($result==2) { echo "jingle2.mp3"; }


        la jsui au taf, mais jme demande si c'est c'est normal
        0
  2. Janus
     
    Bien vu !

    J'ai donc viré ces guillemets mais maintenant je tombe sur ça :
    Parse error: syntax error, unexpected T_STRING in /mnt/152/free.fr/b/4/mondomaine/essai son 5.php on line 11


    J'ai numéroté les lignes à la main dans ce post pour plus de lisibilité du code :
    1 <php>
    2 <body>
    3
    4 <?php
    5 $jingle_choisi = $result=round(rand(1,3));
    6    if ($result==1) { echo "jingle1.mp3"; }
    7    elseif ($result==2) { echo "jingle2.mp3"; }
    8    elseif ($result==3) { echo "jingle3.mp3"; }";
    9 ?>
    10
    11 <object type="application/x-shockwave-flash" width="400" height="170"
    12 data="http://mondomaine.com/xspf_player_slim.swf?&autoplay=true&song_url=<?php
    13 echo "$jingle_choisi";
    14 ?>">
    15 <param name="movie" 
    16 value="http://mondomaine.com/xspf_player_slim.swf?&autoplay=true&song_url=<?php
    17 echo "$jingle_choisi";
    18 ?>" />
    19 </object>
    20 </body>
    21 </php>

    Merci pour le coup de main ;-)
    0
    1. BartWadela Messages postés 606 Statut Membre 111
       
      non non les guillemets fallait les laisser .. mais surtout les refermer en fait je pense
      0
  3. Janus
     
    J'ai toujours pas réussi à débuger mon code.
    C'est la balise <object> que php ne connait pas ?!?
    0
    1. BartWadela Messages postés 606 Statut Membre 111
       
      <object
      type="application/x-shockwave-flash"
      width="400"
      height="170"
      data="http://mondomaine.com/xspf_player_slim.swf?&autoplay=true&song_url=<?php echo $jingle_choisi; ?>">
      


      vu que avec echo tu veux afficher seulement une variables dans ce cas tu n'as pas besoin de guillemets

      pareil pour les lignes au dessus
      0
      1. Janus > BartWadela Messages postés 606 Statut Membre
         
        J'ai testé la version suivante en rajoutant un echo autours du code html mais ça donne ça :

        Parse error: syntax error, unexpected T_STRING in /mnt/152/free.fr/b/4/traficampeurs/sons/essai son 5.php on line 10

        1 <php>
        2 <body>
        3 <?php
        4 $jingle_choisi = $result=round(rand(1,3));
        5    if ($result==1) { echo "http://mondomaine.com/jingle1.mp3"; }
        6    elseif ($result==2) { echo "http://mondomaine.com/jingle2.mp3"; }
        7    elseif ($result==3) { echo "http://mondomaine.com/jingle3.mp3"; }";
        8 
        9 { echo
        10 <object type="application/x-shockwave-flash"
        11 data="http://mondomaine.com/musicplayer.swf?&autoplay=true&song_url=<?php echo $jingle_choisi ?>" 
        12 width="17" height="17">
        13 <param name="movie" 
        14 value="http://mondomaine.com/musicplayer.swf?&autoplay=true&song_url=<?php echo $jingle_choisi 15 ?>" />
        16 <img src="noflash.gif" />
        17 </object>
        18 };
        19 ?>
        20
        21 </body>
        22 </php>
        
        0
  4. Janus
     
    UP.
    Quelqu'un aurait-il une idée de débugage ?
    Merci.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. blet Messages postés 336 Statut Membre 28
     
    tu es chez free...
    0