Intégration du lecteur Windows Media pour tous les navigateurs

Nous utilisons des vidéos WMV sur un site interne et nous les intégrons à des sites Web. Cela fonctionne assez bien sur Internet Explorer, mais pas sur Firefox. J’ai trouvé des moyens de le faire fonctionner dans Firefox, mais il cesse de fonctionner dans Internet Explorer.

Nous ne voulons pas utiliser Silverlight pour le moment, surtout que nous ne pouvons pas être certains que tous les clients utiliseront Windows XP avec Windows Media Player installé.

Existe-t-il une sorte de code universel qui intègre WMP dans Internet Explorer et Firefox, ou devons-nous implémenter une détection par agent utilisateur et fournir un code HTML différent pour différents navigateurs?

    Ce qui suit fonctionne pour moi dans Firefox et Internet Explorer:

              

    Puis-je suggérer le plugin jQuery Media ? Fournit du code d’intégration pour tous les types de vidéos, pas seulement le WMV et la détection de navigateurs, en gardant toutes les instructions de commutateur / casse hors de vos modèles.

    Utilisez le suivant. Cela fonctionne dans Firefox et Internet Explorer.

                  

    Et en JavaScript,

      function playVideo() { try{ if(-1 != navigator.userAgent.indexOf("MSIE")) { var obj = document.getElementById("MediaPlayer1"); obj.Play(); } else { var player = document.getElementById("MediaPlayer2"); player.controls.play(); } } catch(error) { alert(error) } } 

    Elizabeth Castro a un article intéressant sur ce problème: Bye Bye Embed . Vaut la peine de lire comment elle a attaqué ce problème, ainsi que de gérer le contenu QuickTime.

    Le meilleur moyen de déployer de la vidéo sur le Web consiste à utiliser Flash – il est beaucoup plus facile de l’intégrer proprement dans une page Web et de jouer sur plus ou moins n’importe quelle combinaison de navigateur et de plate-forme. La seule raison d’utiliser Windows Media Player est que vous diffusiez du contenu en continu et que vous ayez besoin d’une gestion extrêmement rigoureuse des droits numériques, et même à ce moment-là, les fournisseurs commencent même à utiliser Flash. Voir iPlayer de la BBC pour un superbe exemple.

    Je vous suggère de passer à Flash même pour un usage interne. Vous ne saurez jamais qui aura besoin d’y accéder à l’avenir, ce qui vous donnera la meilleure compatibilité future possible.

    EDIT – 20 mars 2013. Intéressant de voir comment ces vieilles questions refont surface de temps en temps! À quel point le monde est différent aujourd’hui et à quel point tout cela semble daté. Je ne recommanderais pas un itinéraire Flash uniquement par tous les moyens – la meilleure pratique de nos jours serait probablement d’utiliser HTML 5 pour intégrer la vidéo codée H264, avec une solution de secours Flash comme décrit ici: http://diveintohtml5.info/video.html

    Vous pouvez utiliser des commentaires conditionnels pour que IE et Firefox fassent des choses différentes

      

    Firefox only code

    Les navigateurs eux-mêmes ignoreront le code qui ne leur est pas destiné à être lu.

    Encodage vidéo flash est en fait très facile avec ffmpeg. Vous pouvez utiliser une commande pour convertir à partir de n’importe quel format vidéo, ffmpeg est assez intelligent pour trouver le rest, et il utilisera tous les processeurs de votre machine. Invoquer c’est facile:

     ffmpeg -i input.avi output.flv 

    ffmpeg va deviner le bitrate que vous voulez, mais si vous voulez en spécifier un, vous pouvez utiliser l’option -b, donc -b 500000 est 500kbps par exemple. Il y a une tonne d’options bien sûr, mais j’obtiens généralement de bons résultats sans beaucoup de bricolage. C’est un bon sharepoint départ si vous recherchez plus d’options: les options vidéo .

    Vous n’avez pas besoin d’un serveur Web spécial pour afficher la vidéo flash. Je me suis bien débrouillé en poussant simplement les fichiers .flv sur un serveur Web standard et en les reliant à un bon joueur swf, comme flowplayer .

    Les WMV conviennent bien si vous pouvez être sûr que tous vos utilisateurs utiliseront toujours [une version récente et à jour] de Windows uniquement, mais même dans ce cas, Flash est souvent mieux adapté au Web. Le lecteur est même extrêmement personnalisable et peut être contrôlé avec JavaScript.

    J’ai trouvé un bon article sur l’ utilisation du WMP avec Firefox sur MSDN.

    Basé sur l’article de MSDN et après avoir fait des essais et des erreurs, j’ai trouvé que l’utilisation de JavaScript était préférable à l’utilisation de commentaires conditionnels ou de balises “EMBED / OBJECT” nestedes.

    J’ai créé une fonction JS qui génère un object WMP en fonction d’arguments donnés:

      

    Ensuite, j’ai utilisé cette fonction en écrivant des balises et en ligne JS comme celles-ci:

     

    Vous pouvez utiliser jQuery.ready au lieu de l’événement de chargement de la fenêtre pour rendre les codes plus rétrocompatibles et inter-navigateurs.

    J’ai testé les codes sur IE 9-10, Chrome 27, Firefox 21, Opera 12 et Safari 5, sur Windows 7/8.

    J’ai trouvé quelque chose qui fonctionne réellement dans FireFox et IE, sur le site d’Elizabeth Castro (grâce au lien sur ce site) – j’ai essayé toutes les autres versions ici, mais je ne pouvais pas les faire fonctionner dans les deux navigateurs

                  

    Vérifiez son site: http://www.alistapart.com/articles/byebyeembed/ et la version avec le classid dans la balise d’object initiale