Bonjour !

Mon problème est le suivant : j'aimerais pouvoir indiquer au player le mp3 à lire, sans passer par un rechargement de page.
J'ai installé le player :


<object id="player" type="application/x-shockwave-flash" data="dewplayer/dewplayer.swf?mp3=media/mp3/test.mp3&amp;autostart=1&amp;showtime=1&amp" width="200" height="20">
	<param name="wmode" value="transparent" />
        <param name="quality" value="high" />
	<param name="movie" id="movie" value="dewplayer/dewplayer.swf?mp3=media/mp3/test.mp3&amp;autostart=1&amp;showtime=1&amp" />
</object>


Et voici le bout de code qui me permet de modifier le mp3 à lire :


<a onclick="document.getElementById('player').data='dewplayer/dewplayer.swf?mp3=media/mp3/truc.mp3&amp;autostart=1&amp;showtime=1&amp'; 
document.getElementById('movie').value='dewplayer.swf?mp3=media/mp3/truc.mp3&amp;autostart=1&amp;showtime=1&amp';">x</a>


Tout ça marche très bien sous firefox/opera !
Mais je suis sous Mac, j'aimerais que ça marche sous Safari. Smiley ravi
Sous Safari rien ne se passe, le player continue à lire le 1er mp3.

Quelqu'un aurait-il une idée ?
Modifié par Mii (24 May 2009 - 12:34)
Hello,

Mii a écrit :
Quelqu'un aurait-il une idée ?
A tout hasard : est-ce que JavaScript ne serait pas désactivé sur ton Safari ?
Pas de risque, j'utilise pas mal javascript !
D'ailleurs, en rajoutant la fonction play() à la fin, le player me relance le 1er mp3.
Modifié par Mii (23 May 2009 - 21:10)
Il faudrait voir avec une page valide. Notamment renseigner le doctype et faire de ton lien un vrai lien avec attribut href qui va bien (par exemple un lien vers la même page avec une variable précisant quel morceau jouer)... ce qui permettrait de le faire fonctionner si JavaScript est désactivé.

Tu pourrais t'inspirer du Squelettor pour la structure.

Edit: je précise qu'avec ton code actuel je n'arrive à cliquer que sur Opera (je suis sous Windows et j'ai essayé Firefox, IE7 et Safari).

Edit 2: au fait ! Pourquoi ne pas tout simplement utiliser le player Multi ?
Modifié par Heyoan (24 May 2009 - 00:14)
Voilà, j'ai modifié la structure.
http://learnweb.free.fr/test/

En ce qui concerne href, pour l'instant j'ai mis '#', je m'en chargerais plus tard. Smiley cligne

Edit: Pas le player multiple parce que l'utilisateur doit pouvoir écouter n'importe quel morceau dans une discographie.
Modifié par Mii (24 May 2009 - 00:18)
Bon alors cette version fonctionne (chez moi) avec :
* FF3
* Opera

ne fonctionne pas avec :
* FF2
* IE7
* Safari

Je suppose que le fait de changer la valeur de data ou de <param movie ...> ne suffit pas à relancer la lecture (ou stopper celle en cours ?). Smiley hmm
Modifié par Heyoan (24 May 2009 - 00:41)
Mii a écrit :
D'ailleurs, en rajoutant la fonction play() à la fin, le player me relance le 1er mp3.


C'est ça qui est étrange ! Il n'y a pas l'air d'y avoir de remplacement de code.
J'aurais aimé pouvoir contourner le problème autrement que par un rechargement de la page.
Merci pour les tests Heyoan ! Smiley biggrin
Heyoan a écrit :
Je suppose que le fait de changer la valeur de data ou de <param movie ...> ne suffit pas à relancer la lecture (ou stopper celle en cours ?). Smiley hmm

Ou simplement qu'il faut changer les deux à la fois, car si les deux sont indiquées dans le code HTML ce n'est pas tout à fait innocent...

Edit: autant pour moi, c'est déjà ce qui est fait. J'avais mal lu la deuxième ligne.
Modifié par Florent V. (24 May 2009 - 11:54)
Mii a écrit :
C'est ça qui est étrange ! Il n'y a pas l'air d'y avoir de remplacement de code.

JavaScript ne permet pas de remplacer le code, mais peut modifier le DOM. Ce n'est pas tout à fait la même chose. Les changements du DOM sont visibles notamment avec Firebug (Firefox), Web Inspector (Safari), Dragonfly (Opera), et les Developer Tools d'IE8.

Sur le fond, si le simple changement des valeurs des attributs ne suffit pas pour que certains navigateurs appliquent le changement, il faudra peut-être supprimer complètement l'OBJECT du DOM et le remplacer par un «nouveau» avec les bonnes valeurs.
Modifié par Florent V. (24 May 2009 - 11:58)
Florent V. a écrit :
il faudra peut-être supprimer complètement l'OBJECT du DOM et le remplacer par un «nouveau» avec les bonnes valeurs.


Merci Florent ! Ca marche ! Smiley cligne
Merci à vous 2 ! Smiley ravi