L'autre jour, je me suis confronté à quelques curiosités/expérimentations en Flash (une fois n'est pas coutume) et en HTML5 (deux fois ne sont pas coutume). Autant le préciser ici, mes connaissances en Flash sont très très limitées.
Un client me demande d'avoir un .flv (vidéo format flash, que je lis via un player flv) sans la barre de défilement de la vidéo. Après quelques essais infructueux, je décide d'ouvrir ce fichier flv sous Flash CS4 histoire de voir si ce dont ce dernier est capable d'en faire.
Surprise agréable, en quelques minutes, j'arrive à convertir mon .flv en un classique .swf, hormis Flash CS4 qui n'est pas capable d'ajuster la taille de la scène au moment de l'import (ce qui me parait pourtant être du bon sens), il faut juste la spécifier avant de faire glisser le fichier .flv sur la scène.
Rappelons la méthode pour insérer du Flash proprement :
<object type="application/x-shockwave-flash" data="clip.swf" width="550" height="400" id="clip">
<param name="movie" value="clip.swf" />
<param name="quality" value="high" />
<param name="loop" value="false" />
Ici le contenu alternatif (image, texte)
</object>
Une partie du problème était résolue, mon animation se lançait automatiquement sans la barre de défilement propre à la lecture d'une vidéo .flv. J'ai juste dû ajouter le paramètre loop
dans le code ci-dessus pour éviter une lecture en boucle, inadaptée dans mon cas.
Seulement, le contenu en question devait pouvoir fonctionner sur iPad… et ce dernier n'est pas ami avec Flash (flv ou swf, même combat). Je décide d'utiliser la balise vidéo d'HTML5 en contenu alternatif de l'animation flash.
Curiosité, j'ai un gros problème de son décalé… après investigation, je m'aperçois qu'il ne faut surtout pas utiliser l'attribut autoplay
sur la balise video
, car sous Firefox, ce dernier lit le Flash et la balise video
, avec un léger décalage (!).
Du reste, comme l'iPad désactive l'attribut autoplay
par défaut (merci Apple pour le respect des standards, vite oubliés quand ils vous gênent), aucun regret.
Au final, grâce à quelques ruses combinant vieilles méthodes et très récentes, je trouve une solution parfaite à mon problème. Moralité : osez !
Il faut encoder ta vidéo en formats mp4 (qui servira pour Apple ET pour Flash) et en webm (les autres). Ton player en Flash, fera pas plus de 15ko et le tout sera plus facilement maintenable.