Pages :
(reprise du message précédent)

YESSSS Smiley ola
Ca fonctionne (du moins sous firefox...), c'est exactement ce que je cherche !

Merci merci merci QuentinC !!!! Smiley jap Smiley jap Smiley jap
(de m'avoir épargné l'ajax Smiley lol )
Modérateur
N'oublis pas d'ajouter un petit [Résolu] dans le titre de ton sujet. Smiley cligne

(Assure-toi aussi que ton site soit utilisable sans Javascript. Tu peux donc continuer à utiliser l'ancre.)
Modifié par Tony Monast (02 Nov 2006 - 22:12)
Pour répondre précisément au sujet original avant de mettre Résolu, le code complet pour "Lire plusieurs fichiers avec un seul dewplayer sans recharger la page" (ca a l'air de marcher sans javascript, mais pas sur à 100%...):

HTML


<div id="dewplayerdiv">
Aucun fichier son par defaut
</div>
href="dt/snare.mp3" onClick="chargerMp3('dt/snare.mp3'); return false;"
<a href="exemple1.mp3" onClick="chargerMp3('exemple1.mp3'); return false;">Steve</a>
<a href="exemple2.mp3" onClick="chargerMp3('exemple2.mp3'); return false;">Beastie</a>


JAVASCRIPT


function chargerMp3 (url) {
document.getElementById('dewplayerdiv').innerHTML = '<object id="dewplayer" type="application/x-shockwave-flash" data="dewplayer.swf?mp3='+url+'" width="200" height="20"><param name="movie" value="dewplayer.swf?mp3='+url+'" /></object>';
}


Encore MERCI ! Smiley biggrin
QuentinC a écrit :

Je sais pas mais voici peut-être dockteur Jeckil avec la solution du problème ...


Franchement Quentin quel intérêt de jouer au gentil alors qu'on est aussi près du vendredÿ !!!

Je te rappelle à tes responsabilités Smiley lol

Pour le reste (la solution javascript) oui je pense que c'est quelque chose d'aussi simple que ça. Raison de plus pour que ce soit en surcouche de php.

Bon je regarde ça. Même si je crains fort que misterhype soit tellement content d'avoir sa solution qu'il ne porte plus aucun intérêt au sujet et passe donc complètement à coté de l'enjeu enterme d'accessibilité / qualité.
Modifié par clb56 (02 Nov 2006 - 23:04)
Modérateur
Je remplacerais deux petites choses.

onClick en onclick

et


<a href="exemple1.mp3" onclick="chargerMp3(this.href); return false;">Steve</a>


this.href va chercher la valeur dans l'attribut href du lien actuel. Ca l'évite de tapper deux fois le nom du fichier dans le lien, ce qui peut parfois être une source d'erreur.

Il faudrait également savoir si les utilisateurs sans Javascript devraient pouvoir utiliser le Dew Player ? Actuellement, sans Javascript, les liens vont tout simplement ouvrir les fichiers mp3. C'est voulu ?
Modifié par Tony Monast (02 Nov 2006 - 23:03)
misterhype a écrit :

Rechargement, mise à jour ? je sais pas, comment veux-tu qu'on dise ?


Appel d'une nouvelle page comme je l'ai déjà dit...
Me prendrais-tu pour un ingrat clb56 ? Smiley langue

a écrit :
Appel d'une nouvelle page comme je l'ai déjà dit...
En tout cas, grace à quentinc, on n'aura meme pas à y penser Smiley smile

a écrit :
Il faudrait également savoir si les utilisateurs sans Javascript devraient pouvoir utiliser le Dew Player ? Actuellement, sans Javascript, les liens vont tout simplement ouvrir les fichiers mp3. C'est voulu ?
En fait je n'avais pas pensé à utiliser dewplayer hors javascript Smiley nut , donc j'avais mis les liens en dur... mais je n'y tiens pas particulièrement.

J'imagine que pour utiliser dew sans javascript, il suffit d'envoyer l'url en GET dans href
<a href="index.php?dewurl=exemple1.mp3" onclick="chargerMp3(this.href); return false;">Steve</a>

et d'insérer la variable $dewurl en php dans le dewplayer
<object id="dewplayer" type="application/x-shockwave-flash" data="dewplayer.swf?mp3=<?php echo $dewurl ?>" width="200" height="20"><param name="movie" value="dewplayer.swf?mp3=<?php echo $dewurl ?>" /></object>


Un truc dans le genre...
Non... ?
bon,

code html+php d'origine de mon lien précédent (une seule modification, j'ai placé l'<object> dewplayer dans un <div>) :

<div id="content_dew_player">
            <object type="application/x-shockwave-flash"
            data="dewplayer.swf?son=<? if ($son=='1') echo ('triotheyshall');
            else if ($son=='2') echo ('pnc_fallin');
            else if ($son=='3') echo ('browning');
            else if ($son=='4') echo ('guit2');
            else if ($son=='5') echo ('clairezaz_leo');
            else if ($son=='6') echo ('inpro');
            else if ($son=='7') echo ('palmier');
            else if ($son=='8') echo ('corazon');?>.mp3&autoplay=1">
            <param name="movie" value="dewplayer.swf?son=<? if ($son=='1') echo ('triotheyshall');
            else if ($son=='2') echo ('pnc_fallin');
            else if ($son=='3') echo ('browning');
            else if ($son=='4') echo ('guit2');
            else if ($son=='5') echo ('clairezaz_leo');
            else if ($son=='6') echo ('inpro');
            else if ($son=='7') echo ('palmier');
            else if ($son=='8') echo ('corazon');?>.mp3&autoplay=1" />
            <param name="bgcolor" value="#000000">
            </object>
        </div>
        <ul id="liste">
        <li><a href="?son=1" <? if ($son=='1') echo ('class="son_actif"'); ?>>They shall be as happy</a><br />(Purcell)</li>
        <li><a href="?son=2" <? if ($son=='2') echo ('class="son_actif"'); ?>>Fallin</a><br />(Alicia Keys)</li>
        <li><a href="?son=3" <? if ($son=='3') echo ('class="son_actif"'); ?>>Browning</a><br />(Baldwin)</li>
        <li><a href="?son=4" <? if ($son=='4') echo ('class="son_actif"'); ?>>Duo de guitares</a><br />(Cardoso)</li>
        <li><a href="?son=5" <? if ($son=='5') echo ('class="son_actif"'); ?>>Dal tuo soglio</a><br />(Leo)</li>
        <li><a href="?son=6" <? if ($son=='6') echo ('class="son_actif"'); ?>>In pro</a><br />(14ème siècle)</li>
        <li><a href="?son=7" <? if ($son=='7') echo ('class="son_actif"'); ?>>Palmier d'étoiles</a><br />(Auteur)</li>
        <li><a href="?son=8" <? if ($son=='8') echo ('class="son_actif"'); ?>>Corazon espinado</a><br />(Latino)</li>
        <li id="stop"><a href="?son=0" <? if ($son=='0') echo ('class="son_actif"'); ?>>Stop</a><br /></li>
        </ul>



Proposition de surcouche javascript :

fichier js lié (donc complètement externalisé) dew_player.js

function modif_lien_son() {

            referent=document.getElementById('liste');
            liens_son=referent.getElementsByTagName('a');
            var go_son=new Array(); 
            for (i=0; i<liens_son.length; ++i) {
            liens_son[ i ].no_ordre = i; 
            go_son[0]='triotheyshall';
            go_son[1]='pnc_fallin';
            go_son[2]='browning';
            go_son[3]='guit2';
            go_son[4]='clairezaz_leo';
            go_son[5]='inpro';
            go_son[6]='palmier';
            go_son[7]='corazon';
            liens_son[ i ].onclick=function() {document.getElementById('content_dew_player').innerHTML="<object type='application/x-shockwave-flash' data='dewplayer.swf?son="+ go_son[this.no_ordre] +".mp3&autoplay=1' width='240' height='20'><param name='movie' value='dewplayer.swf?son="+ go_son[this.no_ordre] +".mp3&autoplay=1' /></object>";}
            liens_son[ i ].href="#here"
            }
            }
            
window.onload=modif_lien_son;


démonstration
Modifié par clb56 (03 Nov 2006 - 02:10)
a écrit :

Franchement Quentin quel intérêt de jouer au gentil alors qu'on est aussi près du vendredÿ !!!
Je te rappelle à tes responsabilités

Oui, plus gros trolleur du vendred ... mais je n'ai pas le temps de troller avant 16h, en fait.
Pour ceusses que ça intéresserait, une version qui a l'air de fonctionner proprement (avec ancres quand javascript est désactivé):

HTML

<head>
...
<?php $soundFile = @$_GET['soundFile']; ?>
...
</head>

<body>

...PLAYER...

<div id="playerAudio">
	<object id="dewplayer" type="application/x-shockwave-flash" data="dewplayer.swf?mp3=<?php echo $soundFile; ?>&autoplay=1" width="200" height="20">
	<param name="movie" value="dewplayer.swf?mp3=<?php echo $soundFile; ?>" />
	</object>
</div>

...LIENS EN DUR...

<a name="bass.mp3" href="<?php echo "?soundFile=bass.mp3#bass.mp3"; ?>" onclick="chargerMp3(this.name); return false;">Bass</a>
<a name="snare.mp3" href="<?php echo "?soundFile=snare.mp3#snare.mp3"; ?>" onclick="chargerMp3(this.name); return false;">Snare</a>

...LIENS EN VARIABLE (pour ne taper qu'une fois le nom)

<?php $tmpSoundFile="bass.mp3"; ?>
<a name="<?php echo $tmpSoundFile; ?>" href="<?php echo "?soundFile=".$tmpSoundFile."#".$tmpSoundFile ?>" onclick="chargerMp3(this.name); return false;">Bass</a>

<?php $tmpSoundFile="snare.mp3"; ?>
<a name="<?php echo $tmpSoundFile; ?>" href="<?php echo "?soundFile=".$tmpSoundFile."#".$tmpSoundFile ?>" onclick="chargerMp3(this.name); return false;">Snare</a>

...

</body>




JAVASCRIPT

function chargerMp3 (soundFile) {
		document.getElementById('playerAudio').innerHTML = '<object id="dewplayer" type="application/x-shockwave-flash" data="dewplayer.swf?mp3='+soundFile+'&autoplay=1" width="200" height="20"><param name="movie" value="dewplayer.swf?mp3='+soundFile+'" /></object>';
}
Tiens je me suis piqué un peu au jeu. Ma version définitive est pour ainsi dire prête :

http://www.clb56.fr/test_php_js/playlist_dewplayer/

Je pense que j'aurai un truc complet pour demain (puisqu'il est déjà fini en fait mais que là je suis un peu crevé). Avec une liste des sons générée automatiquement en fonction des fichiers mp3 présents dans le répertoire ad hoc ^^

Je vais essayer d'optimiser le script JS en fonction des préconisations de bonnes pratiques de Koala... Si, si...

Comme quoi, et pour répondre à Sopo, il n'est peut être pas si dur d'au moins envisager pour un javascript un dispositif équivalent coté serveur dont il serait la surcouche, et de même pour un dispositif coté serveur une surcouche coté client qui assurerait au visiteur un maximum de souplesse de fonctionnement suivant ses choix.

Que cela soit possible rend ce type de démarche et de réflexion tout simplement obligatoire.
Eldebaran a écrit :
Il y en a qui s'amusent bien le week-end. Smiley langue


J'ai fait cela avec le plus grand sérieux. Donc l'aspect amusement n'est sans doute pas ce qui qualifie le mieux ce que je présente...
clb56 a écrit :
J'ai fait cela avec le plus grand sérieux. Donc l'aspect amusement n'est sans doute pas ce qui qualifie le mieux ce que je présente...
Loin de moi l'idée de remettre en cause le sérieux de ton travail. Smiley rolleyes
Modifié par Eldebaran (06 Nov 2006 - 08:09)
Pages :