MP3 aléatoire au chargement de la page [Fermé]

Signaler
-
blet
Messages postés
296
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
1 octobre 2010
-
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 !

5 réponses

Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010
96
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 ?
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
BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010
96 > Janus
en html c' normal que t'es pas de son

syntax error line 6

fais voir la ligne 6 de ton code
> BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010

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.
BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010
96 > 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
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 ;-)
BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010
96
non non les guillemets fallait les laisser .. mais surtout les refermer en fait je pense
J'ai toujours pas réussi à débuger mon code.
C'est la balise <object> que php ne connait pas ?!?
BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010
96
<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
> BartWadela
Messages postés
559
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
3 février 2010

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>
UP.
Quelqu'un aurait-il une idée de débugage ?
Merci.
Messages postés
296
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
1 octobre 2010
24
tu es chez free...