Question

Je fais une application Web qui utilise Mediaeenment.js (Me.js) pour lire de l'audio et afficher la vidéo sur différents navigateurs. Cependant, j'ai des problèmes avec IE8: lorsque j'instantie la médiation avec un <audio>Élément du DOM, l'objet flash est créé et inséré dans DOM mais le support n'est pas chargé. Aucune erreur n'est signalée. Au lieu de cela, rien ne se passe.

En essayant de le déboguer, j'ai créé une petite page de test qui utilise également me.js qui essaie de lire le même fichier audio. Étrangement, cette page fonctionne bien. IE8 charge et joue le fichier. J'ai essayé de regarder ce que ces deux pages sortent dans le DOM pour voir si je pouvais obtenir un indice sur ce qui ne va pas.

Ceci provient de l'application Web:

<OBJECT id=me_flash_0 codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=1 height=1><PARAM NAME="_cx" VALUE="26"><PARAM NAME="_cy" VALUE="26"><PARAM NAME="FlashVars" VALUE="id=me_flash_0&amp;isvideo=false&amp;autoplay=false&amp;preload=auto&amp;width=1&amp;startvolume=0.8&amp;timerrate=250&amp;height=1&amp;file=http%3A%2F%2Fgsv%2Felearning%2Fapp%2F_dev%2Ftest1.mp3"><PARAM NAME="Movie" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:06:01 UTC+0100 2011"><PARAM NAME="Src" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:06:01 UTC+0100 2011"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="-1"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE=""><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="Scale" VALUE="ShowAll"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE="000000"><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true"></OBJECT>

… Et cela vient de la page de test:

<OBJECT id=me_flash_0 codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=1 height=1><PARAM NAME="_cx" VALUE="26"><PARAM NAME="_cy" VALUE="26"><PARAM NAME="FlashVars" VALUE="id=me_flash_0&amp;isvideo=false&amp;autoplay=false&amp;preload=auto&amp;width=1&amp;startvolume=0.8&amp;timerrate=250&amp;height=1&amp;file=http%3A%2F%2Fgsv%2Felearning%2Fapp%2F_dev%2Ftest1.mp3"><PARAM NAME="Movie" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:08:13 UTC+0100 2011"><PARAM NAME="Src" VALUE="plugins/flashmediaelement.swf?x=Tue Dec 6 16:08:13 UTC+0100 2011"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="0"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE="LT"><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE="always"><PARAM NAME="Scale" VALUE="NoScale"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE="000000"><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true"></OBJECT>

Remarquez qu'il y a une différence: dans le premier extrait, il dit <PARAM NAME="Play" VALUE="-1">Et dans la seconde, il dit <PARAM NAME="Play" VALUE="0">. Cela semble significatif d'une manière ou d'une autre, mais je ne sais pas comment l'interpréter. Veuillez ne pas que ce ne soit pas le balisage généré par moi.js, mais quelque chose qui est généré d'une manière ou d'une autre lorsque le fichier .swf a chargé. N'étant pas un expert flash, je ne peux pas vraiment expliquer comment.

Quand j'utilise Violoneux Pour surveiller quels actifs sont chargés, la différence entre les deux pages est que la première page charge le fichier .swf comme la dernière chose et le second charge le fichier .swf, puis charge le .mp3.

Je dois mentionner que l'application Web fonctionne dans Chrome lorsque je le force à utiliser le plugin flash au lieu d'éléments HTML natifs.

Était-ce utile?

La solution

Il s'avère que les objets flash ne chargeront pas son fichier multimédia s'il se trouve à l'intérieur d'un élément qui a visibility:hidden. Seulement dans IE cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top