Bonjour,
Je viens de découvrir GRAFIKART, et chapeau pour ce site!
Je n'ai qu'un regret c'est de ne pas l'avoir connu + tôt !

Depuis quelques jours je m'acharne à essayer de lire des fichiers mp3 dont le nom des fichiers a des caractères accentués é è à .. et aussi le caractère simple cote '
J'ai essayé avec le player ecolo-player , dans lequel le nom du fichier est "son.mp3"
function init(e:MouseEvent){
if(loaderInfo.parameters.son!=null){
s.load(new URLRequest("son.mp3"));

}
else{ s.load(new URLRequest("son.mp3"));}
.....
avec un nom aussi simple pas de pb ça marche, mais si je rajoute le moindre accent je ne vois pas de solutions.
j'ai essayé
1 Dans le contener avec la fonction php rawurlencode pour le transfert du nom
2 Au niveau de AS3 et de javascript par la fonction externalInterface.call
3 Par toutes les combinaisons possibles avec le paramètre flashvars
....
Bref , je ne trouve pas de solutions ..
Merci d'éclairer ma lanterne si solution il y a ...

1 réponse


xavdk29
Auteur
Réponse acceptée

Je pense avoir trouvé une solution satisfaisante qui peut servir à d'autres qui ont le même souci que moi .
Je prends pour exemple le tuto lecteur mp3 "ecolo-player"
Je procède par étape.
On va travailler avec le fichier html généré par flash , qui est donc ecolo-player.html.
1- Transformer ce fichier en fichier php
2- Dans ce fichier changer le charset de la balise meta qui devient
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
3- Après la balise body insérer le code php suivant
<?php $nfori="soné.mp3" ; if(!is_file($nfori) ){ echo "$nfori n'existe pas !!"; exit;}
$nf="";
for ($i=0;$i<strlen($nfori)-4;$i++) $nf.="".ord( $nfori$i]).";";
$nf.=".mp3";

echo "nom du fichier : $nf";
?>

4- Ensuite mettre le paramètre son= accolé au fichier swf avec du code php (ceci pour le "loaderInfo.parameters.son")

le fichier php devient donc
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<title>ecolo-player</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css" media="screen">
html, body { height:100%; background-color: #ffffff;}
body { margin:0; padding:0; overflow:hidden; }

flashContent { width:100%; height:100%; }

</style>

</head>
<body>
<?php $nfori="soné.mp3" ; if(!is_file($nfori) ){ echo "$nfori n'existe pas !!"; exit;}
$nf=""; // $nf=nom fichier avec chaque caractère transformé par sa valeur ascii
for ($i=0;$i<strlen($nfori)-4;$i++) $nf.="".ord( $nfori$i]).";";
$nf.=".mp3";

echo "nom du fichier : $nf";
?>
<div id="flashContent">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="370" height="200" id="ecolo-player" align="middle">
<param name="movie" value="ecolo-player.swf?son=<?php echo $nf;?>" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="ecolo-player.swf?son=<?php echo $nf;?>" width="370" height="200">
<param name="movie" value="ecolo-player.swf?son=<?php echo $nf;?>" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download\_buttons/get\_flash\_player.gif" alt="Obtenir Adobe Flash Player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>

</body>
</html>

J'ai procédé à plusieurs essais avec les caractères accentué, l'apostrophe, des blancs dans le nom du chier mp3.
C'est ok (sauf en localhost avec wamp, mais je vais cogiter pourquoi, le principal étant que ce soit ok sur un site web)
écouter ici La moldau
et ici la Moldau avec un nom de fichier un peu transformé..