embed - Einbetten von Windows Media Player für alle Browser

Translate

Wir benutzenWMVVideos auf einer internen Website, und wir binden sie in Websites ein. Dies funktioniert im Internet Explorer recht gut, aber nicht in Firefox. Ich habe Möglichkeiten gefunden, wie es in Firefox funktioniert, aber dann funktioniert es in Internet Explorer nicht mehr.

Wir möchten Silverlight noch nicht verwenden, zumal wir nicht sicher sein können, dass auf allen Clients Windows XP mit installiertem Windows Media Player ausgeführt wird.

Gibt es eine Art universellen Code, der WMP sowohl in Internet Explorer als auch in Firefox einbettet, oder müssen wir eine Benutzeragentenerkennung implementieren und unterschiedlichen HTML-Code für verschiedene Browser bereitstellen?

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

Alle Antworten

Translate

Folgendes funktioniert für mich in Firefox und 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>
Quelle
Translate

Darf ich das vorschlagenjQuery Media Plugin? Bietet Einbettungscode für alle Arten von Videos, nicht nur für WMV, und führt die Browsererkennung durch, sodass all diese unordentlichen Switch- / Case-Anweisungen nicht in Ihren Vorlagen enthalten sind.

Quelle
Abel Lee
Translate

Verwenden Sie Folgendes. Es funktioniert in Firefox und 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" />

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


        }
Quelle
Translate

Elizabeth Castro hat einen interessanten Artikel zu diesem Problem:Bye Bye Embed. Es lohnt sich zu lesen, wie sie dieses Problem angegriffen und mit QuickTime-Inhalten umgegangen ist.

Quelle
Translate

Sie können bedingte Kommentare verwenden, um IE und Firefox dazu zu bringen, verschiedene Dinge zu tun

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

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

Die Browser selbst ignorieren Code, den sie nicht lesen können.

Quelle
Translate

Der beste Weg, um Videos im Web bereitzustellen, ist die Verwendung von Flash. Es ist viel einfacher, sie sauber in eine Webseite einzubetten und kann in mehr oder weniger jeder Kombination aus Browser und Plattform wiedergegeben werden. Der einzige Grund für die Verwendung von Windows Media Player besteht darin, dass Sie Inhalte streamen und eine außerordentlich starke Verwaltung digitaler Rechte benötigen. Selbst dann beginnen Anbieter, Flash auch für diese zu verwenden. Ein hervorragendes Beispiel finden Sie im iPlayer von BBC.

Ich würde vorschlagen, dass Sie auch für den internen Gebrauch zu Flash wechseln. Sie wissen nie, wer in Zukunft darauf zugreifen muss, und dies gibt Ihnen die bestmögliche zukünftige Kompatibilität.

EDIT - 20. März 2013. Interessant, wie diese alten Fragen von Zeit zu Zeit wieder auftauchen! Wie anders die Welt heute ist und wie veraltet das alles scheint. Ich würde heute keinesfalls eine Nur-Flash-Route empfehlen - die beste Vorgehensweise heutzutage wäre wahrscheinlich, HTML 5 zum Einbetten von H264-codiertem Video mit einem Flash-Fallback zu verwenden, wie hier beschrieben:http://diveintohtml5.info/video.html

Quelle
Translate

Das Codieren von Flash-Videos ist mit ffmpeg eigentlich sehr einfach. Sie können einen Befehl verwenden, um aus nahezu jedem Videoformat zu konvertieren. Ffmpeg ist intelligent genug, um den Rest herauszufinden, und verwendet jeden Prozessor auf Ihrem Computer. Das Aufrufen ist einfach:

ffmpeg -i input.avi output.flv

ffmpeg errät die gewünschte Bitrate, aber wenn Sie eine angeben möchten, können Sie die Option -b verwenden-b 500000beträgt beispielsweise 500 kbps. Natürlich gibt es eine Menge Optionen, aber ich bekomme im Allgemeinen gute Ergebnisse, ohne viel zu basteln. Dies ist ein guter Ausgangspunkt, wenn Sie nach weiteren Optionen suchen:Videooptionen.

Sie benötigen keinen speziellen Webserver, um Flash-Videos anzuzeigen. Ich habe es ganz gut gemacht, indem ich einfach .flv-Dateien auf einen Standard-Webserver gepusht und mit einem guten SWF-Player wie diesen auf sie verlinkt habeFlowplayer.

WMVs sind in Ordnung, wenn Sie sicher sein können, dass alle Ihre Benutzer immer nur [eine aktuelle, aktuelle Version von] Windows verwenden, aber selbst dann ist Flash oft besser für das Web geeignet. Der Player ist sogar extrem skinnbar und kann mit Javascript gesteuert werden.

Quelle
Translate

Ich habe einen guten Artikel über gefundenVerwenden des WMP mit Firefoxauf MSDN.

Basierend auf dem Artikel von MSDN und nach einigen Versuchen und Fehlern fand ich, dass die Verwendung von JavaScript besser ist als die Verwendung von bedingten Kommentaren oder verschachtelten "EMBED / OBJECT" -Tags.

Ich habe eine JS-Funktion erstellt, die ein WMP-Objekt basierend auf den angegebenen Argumenten generiert:

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

Dann habe ich diese Funktion verwendet, indem ich einige Markups und Inline-JS wie diese geschrieben habe:

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

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

Sie können verwendenjQuery.readyAnstatt vonFensterladeereignisum die Codes abwärtskompatibler und browserübergreifender zu gestalten.

Ich habe die Codes über IE 9-10, Chrome 27, Firefox 21, Opera 12 und Safari 5 unter Windows 7/8 getestet.

Quelle
Translate

Ich habe auf der Website von Elizabeth Castro etwas gefunden, das sowohl in FireFox als auch im IE funktioniert (dank des Links auf dieser Website). Ich habe alle anderen Versionen hier ausprobiert, konnte sie jedoch nicht in beiden Browsern verwenden

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

Überprüfen Sie ihre Website aus:http://www.alistapart.com/articles/byebyeembed/und die Version mit der Klassen-ID im ursprünglichen Objekt-Tag

Quelle