18041 sujets
Questions générales et questions de débutants
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
JAVASCRIPT
Encore MERCI !
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 !
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
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)
Je remplacerais deux petites choses.
onClick en onclick
et
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)
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)
Me prendrais-tu pour un ingrat clb56 ?
J'imagine que pour utiliser dew sans javascript, il suffit d'envoyer l'url en GET dans href
et d'insérer la variable $dewurl en php dans le dewplayer
Un truc dans le genre...
Non... ?
a écrit :En tout cas, grace à quentinc, on n'aura meme pas à y penser
Appel d'une nouvelle page comme je l'ai déjà dit...
a écrit :En fait je n'avais pas pensé à utiliser dewplayer hors javascript , donc j'avais mis les liens en dur... mais je n'y tiens pas particulièrement.
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 ?
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>) :
Proposition de surcouche javascript :
fichier js lié (donc complètement externalisé) dew_player.js
démonstration
Modifié par clb56 (03 Nov 2006 - 02:10)
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)
Pour ceusses que ça intéresserait, une version qui a l'air de fonctionner proprement (avec ancres quand javascript est désactivé):
HTML
JAVASCRIPT
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.
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.
Salut,
allez hop, de mon point de vue c'est pas encore assez complet et un bon nombre de petits ajouts ingénieux et intéressants peuvent encore se greffer. Mais néanmoins l'essentiel est là :
Commande du Dewplayer en php avec surcouche javascript
C'est léger, simple et complètement opérationnel...
allez hop, de mon point de vue c'est pas encore assez complet et un bon nombre de petits ajouts ingénieux et intéressants peuvent encore se greffer. Mais néanmoins l'essentiel est là :
Commande du Dewplayer en php avec surcouche javascript
C'est léger, simple et complètement opérationnel...