Incorporação do Windows Media Player para todos os navegadores

votos
53

Estamos usando WMV vídeos em um site interno, e nós estamos incorporando-os em sites da web. Isso funciona muito bem no Internet Explorer, mas não no Firefox. Eu encontrei maneiras de fazê-lo funcionar no Firefox, mas, em seguida, ele pára de funcionar no Internet Explorer.

Nós não queremos usar o Silverlight ainda, especialmente porque não podemos ter certeza de que todos os clientes irão estar executando o Windows XP com o Windows Media Player instalado.

Existe algum tipo de código universal que incorpora WMP para Internet Explorer e Firefox, ou precisamos de implementar algumas-agente de detecção do usuário e entregar HTML diferente para diferentes navegadores?

Publicado 01/08/2008 em 19:02
fonte usuário
Em outras línguas...                            


9 respostas

votos
42

As seguintes obras para mim no Firefox e 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>
Respondeu 03/08/2008 em 15:27
fonte usuário

votos
20

Posso sugerir o jQuery plugin de mídia ? Fornece código para todos os tipos de vídeo, e não apenas WMV e faz a detecção do navegador, mantendo tudo o que desarrumado declarações switch / case fora de seus modelos.

Respondeu 08/08/2008 em 19:29
fonte usuário

votos
8

Use o seguinte. Ele funciona no Firefox e 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" />

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


        }
Respondeu 04/08/2009 em 15:55
fonte usuário

votos
7

Elizabeth Castro tem um artigo interessante sobre este problema: Bye Bye Embed . Vale a pena ler sobre a forma como ela atacou este problema, bem como a movimentação de conteúdo QuickTime.

Respondeu 10/11/2008 em 20:52
fonte usuário

votos
6

A melhor maneira de implantar vídeo na web está usando Flash - é muito mais fácil para incorporar de forma limpa em uma página web e vai jogar em mais ou menos qualquer navegador e combinação plataforma. A única razão para usar o Windows Media Player é se você está streaming de conteúdo e você precisa extraordinariamente forte gerenciamento de direitos digitais, e mesmo assim os fornecedores estão agora a começar a usar o Flash, mesmo para estes. Veja iPlayer da BBC para um excelente exemplo.

Gostaria de sugerir que você alternar para flash mesmo para uso interno. Você nunca sabe quem vai precisar acessá-lo no futuro, e isso vai lhe dar a melhor compatibilidade possível futuro.

EDIT - 20 de Março de 2013. Interessante como essas questões antigas ressurgem de vez em quando! Quão diferente o mundo é hoje e como datada tudo isso parece. Eu não recomendaria uma única rota do Flash hoje por qualquer meio - melhores práticas nos dias de hoje provavelmente seria usar HTML 5 para incorporar H264 vídeo codificado, com um fallback em Flash conforme descrito aqui: http://diveintohtml5.info/video.html

Respondeu 02/08/2008 em 12:05
fonte usuário

votos
5

Você pode usar comentários condicionais para obter IE e Firefox para fazer coisas diferentes

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

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

Os navegadores si irá ignorar o código que não é para eles lerem.

Respondeu 01/08/2008 em 19:08
fonte usuário

votos
4

Eu encontrei um bom artigo sobre usando o WMP com o Firefox no MSDN.

Com base no artigo do MSDN e depois de fazer algumas tentativas e erros, eu descobri usando JavaScript é melhor do que usar comentários condicionais ou aninhadas tags "EMBED / objeto".

Eu fiz uma função JS que geram WMP objeto com base em dados 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>

Então eu usei essa função escrevendo algumas marcações e em linha JS como estes:

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

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

Você pode usar jQuery.ready em vez de evento de carregamento de janela para fazer os códigos mais compatível com versões anteriores e cross-browser.

Eu testei os códigos sobre IE 9-10, Chrome 27, Firefox 21, Opera 12 e Safari 5, no Windows 7/8.

Respondeu 06/06/2013 em 17:03
fonte usuário

votos
4

vídeo flash codificação é realmente muito fácil com ffmpeg. Você pode usar um comando para converter a partir de praticamente qualquer formato de vídeo, ffmpeg é inteligente o suficiente para descobrir o resto para fora, e ele vai usar cada processador em sua máquina. Invocando é fácil:

ffmpeg -i input.avi output.flv

ffmpeg vai adivinhar o bitrate que você quer, mas se você gostaria de especificar um, você pode usar a opção -b, então -b 500000é 500kbps, por exemplo. Há uma tonelada de opções de curso, mas eu geralmente obter bons resultados sem muito ajustes. Este é um bom lugar para começar, se você está procurando mais opções: opções de vídeo .

Você não precisa de um servidor web especial para mostrar o vídeo flash. Eu fiz muito bem, basta apertar arquivos .flv-se a um servidor web padrão, e ligando para eles com um bom jogador swf, como Flowplayer .

WMVs são muito bem se você pode ter certeza que todos os seus usuários sempre usar [a recente, até a versão data de] apenas para Windows, mas mesmo assim, o Flash é frequentemente um ajuste melhor para a web. O jogador é ainda extremamente skinnable e pode ser controlado com javascript.

Respondeu 04/08/2008 em 03:14
fonte usuário

votos
3

Eu encontrei algo que realmente funciona no Firefox e IE, no site da Elizabeth Castro (graças ao link neste site) - Tentei todas as outras versões aqui, mas não pôde fazê-los trabalhar em ambos os 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>

Confira seu local out: http://www.alistapart.com/articles/byebyeembed/ ea versão com o classid na marca de objeto inicial

Respondeu 06/11/2009 em 21:00
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more