embed - Intégration de Windows Media Player pour tous les navigateurs

Translate

Nous utilisonsWMVdes vidéos sur un site interne, et nous les intégrons dans 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 cela cesse de fonctionner dans Internet Explorer.

Nous ne voulons pas encore utiliser Silverlight, d'autant plus que nous ne pouvons pas être sûrs que tous les clients exécuteront Windows XP avec Windows Media Player installé.

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

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

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

<object id="mediaplayer" classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=5,1,52,701" standby="loading microsoft windows media player components..." type="application/x-oleobject" width="320" height="310">
<param name="filename" value="./test.wmv">
     <param name="animationatstart" value="true">
     <param name="transparentatstart" value="true">
     <param name="autostart" value="true">
     <param name="showcontrols" value="true">
     <param name="ShowStatusBar" value="true">
     <param name="windowlessvideo" value="true">
     <embed src="./test.wmv" autostart="true" showcontrols="true" showstatusbar="1" bgcolor="white" width="320" height="310">
</object>
La source
Translate

Puis-je suggérer lePlugin média jQuery? Fournit du code intégré pour tous les types de vidéo, pas seulement WMV et effectue la détection du navigateur, en gardant toutes ces instructions de commutation / cas désordonnées hors de vos modèles.

La source
Abel Lee
Translate

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

        <object id="MediaPlayer1" width="690" height="500" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
            codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
            standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject"
            >
            <param name="FileName" value='<%= GetSource() %>' />
            <param name="AutoStart" value="True" />
            <param name="DefaultFrame" value="mainFrame" />
            <param name="ShowStatusBar" value="0" />
            <param name="ShowPositionControls" value="0" />
            <param name="showcontrols" value="0" />
            <param name="ShowAudioControls" value="0" />
            <param name="ShowTracker" value="0" />
            <param name="EnablePositionControls" value="0" />


            <!-- BEGIN PLUG-IN HTML FOR FIREFOX-->
            <embed  type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
                src='<%= GetSource() %>' align="middle" width="600" height="500" defaultframe="rightFrame"
                 id="MediaPlayer2" />

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)
        } 


        }
La source
Translate

Elizabeth Castro a un article intéressant sur ce problème:Bye Bye Embed. Mérite une lecture sur la façon dont elle a attaqué ce problème, ainsi que sur la gestion du contenu QuickTime.

La source
Translate

Vous pouvez utiliser des commentaires conditionnels pour amener IE et Firefox à faire des choses différentes

<![if !IE]>
<p> Firefox only code</p>
<![endif]>

<!--[if IE]>
<p>Internet Explorer only code</p>
<![endif]-->

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

La source
Translate

La meilleure façon de déployer une vidéo sur le Web est d'utiliser Flash - il est beaucoup plus facile de l'intégrer proprement dans une page Web et sera lue sur plus ou moins n'importe quelle combinaison de navigateur et de plate-forme. La seule raison d'utiliser Windows Media Player est si vous diffusez du contenu et que vous avez besoin d'une gestion des droits numériques extrêmement solide, et même dans ce cas, les fournisseurs commencent maintenant à utiliser Flash même pour ces derniers. Voir iPlayer de la BBC pour un superbe exemple.

Je vous suggère de passer à Flash même pour un usage interne. Vous ne savez jamais qui devra y accéder à l'avenir, et cela 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 en aucun cas un itinéraire Flash uniquement aujourd'hui - la meilleure pratique de nos jours serait probablement d'utiliser HTML 5 pour incorporer une vidéo encodée H264, avec une solution de secours Flash comme décrit ici:http://diveintohtml5.info/video.html

La source
Translate

L'encodage de la vidéo flash est en fait très simple avec ffmpeg. Vous pouvez utiliser une commande pour convertir à partir de n'importe quel format vidéo, ffmpeg est suffisamment intelligent pour comprendre le reste et il utilisera tous les processeurs de votre machine. L'invoquer est simple:

ffmpeg -i input.avi output.flv

ffmpeg devinera le débit souhaité, mais si vous souhaitez en spécifier un, vous pouvez utiliser l'option -b, donc-b 500000est de 500 kbps par exemple. Il y a une tonne d'options bien sûr, mais j'obtiens généralement de bons résultats sans trop de bricolage. C'est un bon point de départ si vous recherchez plus d'options:options vidéo.

Vous n'avez pas besoin d'un serveur Web spécial pour afficher la vidéo flash. Je me suis très bien débrouillé en poussant simplement les fichiers .flv sur un serveur Web standard et en les reliant avec un bon lecteur swf, commeflowplayer.

Les WMV conviennent 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 convient souvent mieux au Web. Le lecteur est même extrêmement skinnable et peut être contrôlé avec javascript.

La source
Translate

J'ai trouvé un bon article surutiliser le WMP avec Firefoxsur MSDN.

Sur la base de l'article de MSDN et après avoir fait quelques essais et erreurs, j'ai trouvé que l'utilisation de JavaScript est meilleure que l'utilisation de commentaires conditionnels ou de balises "EMBED / OBJECT" imbriquées.

J'ai créé une fonction JS qui génère un objet WMP basé sur des arguments donnés:

<script type="text/javascript">
    function generateWindowsMediaPlayer(
        holderId,   // String
        height,     // Number
        width,      // Number
        videoUrl    // String
        // you can declare more arguments for more flexibility
        ) {
        var holder = document.getElementById(holderId);

        var player = '<object ';
        player += 'height="' + height.toString() + '" ';
        player += 'width="' + width.toString() + '" ';

        videoUrl = encodeURI(videoUrl); // Encode for special characters

        if (navigator.userAgent.indexOf("MSIE") < 0) {
            // Chrome, Firefox, Opera, Safari
            //player += 'type="application/x-ms-wmp" '; //Old Edition
            player += 'type="video/x-ms-wmp" '; //New Edition, suggested by MNRSullivan (Read Comments)
            player += 'data="' + videoUrl + '" >';
        }
        else {
            // Internet Explorer
            player += 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" >';
            player += '<param name="url" value="' + videoUrl + '" />';
        }

        player += '<param name="autoStart" value="false" />';
        player += '<param name="playCount" value="1" />';
        player += '</object>';

        holder.innerHTML = player;
    }
</script>

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

<div id='wmpHolder'></div>

<script type="text/javascript">        
    window.addEventListener('load', generateWindowsMediaPlayer('wmpHolder', 240, 320, 'http://mysite.com/path/video.ext'));
</script>

Vous pouvez utiliserjQuery.readyau lieu deévénement de chargement de fenêtrepour rendre les codes plus rétrocompatibles et multi-navigateurs.

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

La source
Translate

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 n'ai pas pu les faire fonctionner dans les deux navigateurs

<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
  id="player" width="320" height="260">
  <param name="url" 
    value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
  <param name="src" 
    value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
  <param name="showcontrols" value="true" />
  <param name="autostart" value="true" />
  <!--[if !IE]>-->
  <object type="video/x-ms-wmv" 
    data="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" 
    width="320" height="260">
    <param name="src" 
      value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
    <param name="autostart" value="true" />
    <param name="controller" value="true" />
  </object>
  <!--<![endif]-->
</object>

Consultez son site:http://www.alistapart.com/articles/byebyeembed/et la version avec le classid dans la balise d'objet initiale

La source