embed - Vložení Windows Media Player pro všechny prohlížeče

Translate

PoužívámeWMVvidea na interním webu a vkládáme je do webových stránek. To funguje docela dobře v prohlížeči Internet Explorer, ale ne ve Firefoxu. Našel jsem způsoby, jak zajistit, aby to fungovalo ve Firefoxu, ale pak přestane fungovat v Internet Exploreru.

Silverlight zatím nechceme používat, zejména proto, že si nemůžeme být jisti, že všichni klienti budou používat Windows XP s nainstalovaným Windows Media Playerem.

Existuje nějaký univerzální kód, který vkládá WMP do Internet Exploreru i Firefoxu, nebo musíme implementovat nějakou detekci user-agent a dodat různé HTML pro různé prohlížeče?

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

Všechny odpovědi

Translate

Ve Firefoxu a Internet Exploreru pro mě funguje následující:

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

Mohu navrhnoutjQuery Media Plugin? Poskytuje kód pro vložení pro všechny druhy videa, nejen pro WMV, a detekuje prohlížeč, takže všechny vaše chaotické výpisy přepínačů / případů jsou mimo vaše šablony.

Zdroj
Abel Lee
Translate

Použijte následující. Funguje ve Firefoxu a Internet Exploreru.

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

A v JavaScriptu,

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


        }
Zdroj
Translate

Elizabeth Castro má zajímavý článek o tomto problému:Ahoj Vlož. Stojí za to si přečíst, jak na tento problém zaútočila, stejně jako zacházení s obsahem QuickTime.

Zdroj
Translate

Můžete použít podmíněné komentáře a přimět IE a Firefox dělat různé věci

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

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

Samotné prohlížeče budou ignorovat kód, který není určen ke čtení.

Zdroj
Translate

Nejlepší způsob, jak nasadit video na web, je použití Flash - je mnohem snazší vložit jej čistě na webovou stránku a bude se hrát na víceméně jakékoli kombinaci prohlížeče a platformy. Jediným důvodem, proč používat Windows Media Player, je to, že streamujete obsah a potřebujete mimořádně silnou správu digitálních práv, a dokonce i poté poskytovatelé začínají Flash používat i pro tyto účely. Skvělý příklad najdete v iPlayer BBC.

Navrhuji, abyste přepnuli na Flash i pro interní použití. Nikdy nevíte, kdo k němu v budoucnu bude potřebovat přístup, a to vám zajistí nejlepší možnou budoucí kompatibilitu.

EDIT - 20. března 2013. Zajímavé, jak se tyto staré otázky čas od času znovu objeví! Jak odlišný je svět dnes a jak starý je tento údaj. V žádném případě bych dnes nedoporučoval trasu pouze pro Flash - nejlepším postupem v dnešní době by pravděpodobně bylo použití HTML 5 pro vložení videa kódovaného H264, s Flash záložní, jak je popsáno zde:http://diveintohtml5.info/video.html

Zdroj
Translate

Kódování flash videa je s ffmpeg ve skutečnosti velmi snadné. Můžete použít jeden příkaz k převodu z téměř jakéhokoli formátu videa, ffmpeg je dostatečně chytrý, aby zjistil zbytek a použije každý procesor ve vašem počítači. Vyvolání je snadné:

ffmpeg -i input.avi output.flv

ffmpeg uhodne na bitrate, který chcete, ale pokud byste ho chtěli určit, můžete použít volbu -b, takže-b 500000je například 500 kb / s. Samozřejmě existuje spousta možností, ale obecně dosahuji dobrých výsledků bez velkého vrtání. Toto je dobré místo pro začátek, pokud hledáte další možnosti:možnosti videa.

K zobrazování flash videa nepotřebujete speciální webový server. Udělal jsem dobře, když jsem jednoduše posunul soubory .flv na standardní webový server a propojil je s dobrým přehrávačem SWF, jakoflowplayer.

Soubory WMV jsou v pořádku, pokud si můžete být jisti, že všichni vaši uživatelé budou vždy používat pouze [nejnovější a aktuální verzi] systému Windows, ale i tak je Flash pro web lépe vhodný. Přehrávač je dokonce extrémně skinovatelný a lze jej ovládat pomocí JavaScriptu.

Zdroj
Translate

Našel jsem dobrý článek opomocí WMP s Firefoxemna MSDN.

Na základě článku MSDN a po provedení několika pokusů a chyb jsem zjistil, že používání JavaScriptu je lepší než používání podmíněných komentářů nebo vnořených značek „EMBED / OBJECT“.

Vytvořil jsem funkci JS, která generuje objekt WMP na základě daných argumentů:

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

Pak jsem použil tuto funkci tím, že jsem napsal nějaké značky a vložil JS jako tyto:

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

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

Můžeš použítjQuery.readynamístoudálost načtení oknaaby byly kódy zpětně kompatibilní a více prohlížečů.

Testoval jsem kódy přes IE 9-10, Chrome 27, Firefox 21, Opera 12 a Safari 5, na Windows 7/8.

Zdroj
Translate

Na webu Elizabeth Castra (díky odkazu na tomto webu) jsem našel něco, co ve skutečnosti funguje jak v FireFox, tak v IE - vyzkoušel jsem zde všechny ostatní verze, ale nemohl jsem je přimět, aby fungovaly v obou prohlížečích

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

Podívejte se na její stránky:http://www.alistapart.com/articles/byebyeembed/a verze s classid v počáteční značce objektu

Zdroj