Pregunta

Estamos utilizando WMV videos en un sitio interno, y estamos incrustar en sitios web.Esto funciona bastante bien en Internet Explorer, pero no en Firefox.He encontrado la manera de hacer que funcione en Firefox, pero luego deja de funcionar en Internet Explorer.

No queremos usar Silverlight todavía, especialmente puesto que no podemos estar seguros de que todos los clientes se puede ejecutar en Windows XP con Windows Media Player instalado.

¿Hay algún tipo de Código Universal que incorpora WMP a Internet Explorer y Firefox, o tenemos la necesidad de implementar algunos de agente de usuario y de detección de entregar HTML diferente para diferentes navegadores?

¿Fue útil?

Solución

El siguiente me funciona en Firefox y en 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>

Otros consejos

Me permito sugerir la jQuery Plugin Medios de comunicación?Proporciona el código para insertar todo tipo de vídeo, no sólo WMV y hace la detección del navegador, manteniendo todos los que desordenado switch/case declaraciones de sus plantillas.

Utilice el siguiente.Funciona en Firefox y 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" />

Y 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 tiene un interesante artículo sobre este problema: Bye Bye Embed.Vale la pena leer sobre cómo ella atacado este problema, así como el manejo de contenido de QuickTime.

Usted podría utilizar los comentarios condicionales para conseguir IE y Firefox para hacer cosas diferentes

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

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

Los navegadores de los mismos ignorar código que no está pensado para que lo lean.

La mejor manera de implementar vídeo en la web es el uso de Flash - es mucho más fácil de incrustar limpiamente en una página web y se podrán reproducir en más o menos cualquier navegador y plataforma de combinación.La única razón para usar el Reproductor de Windows Media si está contenido en streaming y necesita extraordinariamente fuerte de gestión de derechos digitales, e incluso entonces los proveedores están empezando a utilizar el Flash, incluso para estos.Ver BBC iPlayer para un excelente ejemplo.

Yo le sugiero que cambie a Flash, incluso para uso interno.Nunca se sabe que va a necesitar para acceder a ella en el futuro, y esto le dará el mejor futuro posible compatibilidad.

EDITAR - 20 de Marzo de 2013.Interesante cómo estas viejas preguntas que reaparece de vez en cuando!Cuán diferente es el mundo de hoy y cómo fechada todo esto parece.Yo no recomendaría un solo Flash ruta de hoy por cualquier medio a las mejores prácticas en estos días probablemente sería el uso de HTML 5 para incrustar H264 codificación de vídeo, con un Flash de reserva como se describe aquí: http://diveintohtml5.info/video.html

Codificación de vídeo flash es realmente muy fácil con ffmpeg.Puede utilizar un comando para convertir casi cualquier formato de vídeo, ffmpeg es lo suficientemente inteligente como para calcular el resto, y que va a utilizar cada procesador de la máquina.La invocación es fácil:

ffmpeg -i input.avi output.flv

ffmpeg adivinar el bitrate que queremos, pero si desea especificar una, puede utilizar la opción-b, por lo que -b 500000 es 500kbps por ejemplo.Hay un montón de opciones, por supuesto, pero en general se obtienen buenos resultados sin mucho juguetear.Este es un buen lugar para empezar si usted está buscando para obtener más opciones: opciones de vídeo.

Usted no necesita un servidor web para mostrar vídeo flash.Yo lo he hecho igual de bien, simplemente empujando .archivos flv a un servidor web estándar, y la vinculación a ellos con un buen reproductor de swf, como flowplayer.

WMVs están bien si usted puede estar seguro de que todos los usuarios van a utilizar siempre [un reciente a la fecha, la versión de Windows, pero aun entonces, el Flash es a menudo una mejor opción para la web.El jugador es muy personalizable y puede ser controlado con javascript.

He encontrado un buen artículo acerca de usando el WMP con Firefox en MSDN.

Basado en el artículo de MSDN y después de hacer algunas pruebas y errores, me encontré con el uso de JavaScript es mejor que el uso de los comentarios condicionales o anidada "INSERTAR/OBJETO" las etiquetas.

He hecho una función JS que generan WMP objeto basado en dado argumentos:

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

Entonces yo que la función de la escritura de algunas marcas y en línea JS como estos:

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

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

Puede utilizar jQuery.listo en lugar de la ventana de evento load para hacer los códigos más compatible con versiones anteriores y cross-browser.

He probado los códigos de más de IE 9 y 10, Chrome 27, Firefox 21, Opera 12 y Safari 5, en Windows 7/8.

He encontrado algo que Realmente funciona en FireFox y IE, en Elizabeth Castro del sitio (gracias a un enlace en este sitio) - he intentado todas las demás versiones aquí, pero no podía hacer que funcionen en ambos navegadores

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

Compruebe su sitio: http://www.alistapart.com/articles/byebyeembed/ y la versión con la propiedad en el objeto inicial de la etiqueta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top