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 !
A voir également:

5 réponses

BartWadela Messages postés 606 Statut Membre 107
 
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
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
BartWadela Messages postés 606 Statut Membre 107 > Janus
 
en html c' normal que t'es pas de son

syntax error line 6

fais voir la ligne 6 de ton code
0
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
BartWadela Messages postés 606 Statut Membre 107 > 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
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
BartWadela Messages postés 606 Statut Membre 107
 
non non les guillemets fallait les laisser .. mais surtout les refermer en fait je pense
0
Janus
 
J'ai toujours pas réussi à débuger mon code.
C'est la balise <object> que php ne connait pas ?!?
0
BartWadela Messages postés 606 Statut Membre 107
 
<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
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
Janus
 
UP.
Quelqu'un aurait-il une idée de débugage ?
Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

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