Inbedding Windows Media Player voor alle browsers

stemmen
53

Wij maken gebruik van WMV- video's op een interne plaats, en we zijn het integreren ze in websites. Dit werkt heel goed op Internet Explorer, maar niet op Firefox. Ik heb manieren om het te laten werken in Firefox gevonden, maar dan stopt met werken in Internet Explorer.

We willen niet Silverlight gewoon nog niet gebruiken, vooral omdat we er niet zeker van kan zijn dat alle clients Windows XP zal worden uitgevoerd met Windows Media Player is geïnstalleerd.

Is er een soort van universele code die WMP inbedt in zowel Internet Explorer als Firefox, of moeten we een aantal user-agent-detectie implementeren en leveren verschillende HTML voor verschillende browsers?

De vraag is gesteld op 01/08/2008 om 19:02
bron van user
In andere talen...                            


9 antwoorden

stemmen
5

Je zou kunnen gebruiken voorwaardelijke reacties op IE en Firefox te krijgen om verschillende dingen te doen

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

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

De browsers zelf zullen code die niet voor hen bestemd is om te lezen te negeren.

antwoordde op 01/08/2008 om 19:08
bron van user

stemmen
6

De beste manier om te zetten video op het web met behulp van Flash - het is veel makkelijker om netjes insluiten in een webpagina en zal op min of meer elke browser en platform combinatie spelen. De enige reden om Windows Media Player te gebruiken is als je tevreden bent streaming en je buitengewoon sterke digital rights management nodig hebben, en zelfs dan providers beginnen nu Flash gebruiken, zelfs voor deze. Zie BBC iPlayer voor een prachtig voorbeeld.

Ik stel voor dat u overschakelt naar Flash zelfs voor intern gebruik. Je weet nooit wie er gaat nodig hebben om toegang te krijgen in de toekomst, en dit zal u de best mogelijke toekomst compatibiliteit te geven.

EDIT - 20 maart 2013. Interessant hoe deze oude vragen opduiken van tijd tot tijd! Hoe anders is de wereld van vandaag en hoe gedateerd dit alles lijkt. Ik zou vandaag niet aanraden een alleen Flash route met alle middelen - de beste praktijk zijn deze dagen zou waarschijnlijk gebruik van HTML 5 om H264 gecodeerde video vast te leggen, met een Flash-fallback zoals hier beschreven: http://diveintohtml5.info/video.html

antwoordde op 02/08/2008 om 12:05
bron van user

stemmen
42

De volgende werken voor mij in Firefox 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>
antwoordde op 03/08/2008 om 15:27
bron van user

stemmen
4

Encoding flash video is eigenlijk heel eenvoudig met ffmpeg. U kunt één opdracht gebruiken om te zetten van zowat elk videoformaat, ffmpeg is slim genoeg om de rest erachter te komen, en het zal elke processor te gebruiken op uw machine. Een beroep op het is gemakkelijk:

ffmpeg -i input.avi output.flv

ffmpeg zal gissen naar de bitrate die je wilt, maar als je zou willen opgeeft, kunt u gebruik maken van de optie -b, dus -b 500000is 500 kbps bijvoorbeeld. Er is een heleboel opties natuurlijk, maar ik over het algemeen goede resultaten te krijgen zonder al te veel sleutelen. Dit is een goede plek om te beginnen als je op zoek bent naar meer opties: video-opties .

U hoeft niet een speciale web server nodig om flash video te tonen. Ik heb prima door simpelweg omhoog te duwen FLV-bestanden naar een standaard web server, en het koppelen van hen met een goede swf-speler, net gedaan Flowplayer .

WMVs zijn prima als je kunt er zeker van zijn dat al uw gebruikers altijd zullen gebruiken [een recente, up-to-date versie van] alleen voor Windows, maar zelfs dan, Flash is vaak een betere pasvorm voor het web. De speler is nog uiterst skinnable en kan worden bediend met javascript.

antwoordde op 04/08/2008 om 03:14
bron van user

stemmen
20

Mag ik suggereren dat de jQuery Media Plugin ? Voorziet embed code voor alle soorten video, niet alleen WMV en doet browser detectie, het bijhouden van alles wat rommelig switch / case-statements uit je templates.

antwoordde op 08/08/2008 om 19:29
bron van user

stemmen
7

Elizabeth Castro heeft een interessant artikel over dit probleem: Bye Bye insluiten . Worth een gelezen over hoe ze dit probleem aangevallen, evenals de behandeling van QuickTime content.

antwoordde op 10/11/2008 om 20:52
bron van user

stemmen
8

Gebruik het volgende. Het werkt in Firefox en 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" />

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


        }
antwoordde op 04/08/2009 om 15:55
bron van user

stemmen
3

Ik heb iets dat echt werkt in zowel Firefox en IE, op de site Elizabeth Castro's (met dank aan de link op deze site) gevonden - Ik heb alle andere versies hier geprobeerd, maar kon niet ze te laten werken in zowel de browsers

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

Check haar website uit: http://www.alistapart.com/articles/byebyeembed/ en de versie met de classid in de eerste object tag

antwoordde op 06/11/2009 om 21:00
bron van user

stemmen
4

Ik vond een goed artikel over het gebruik van de WMP met Firefox op MSDN.

Op basis van MSDN's artikel en na wat vallen en opstaan, vond ik het gebruik van JavaScript is beter dan het gebruik van voorwaardelijke opmerkingen of geneste "EMBED / OBJECT"-tags.

Ik maakte een JS functie die WMP object te genereren op basis van gegeven argumenten:

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

Daarna heb ik die functie door het schrijven van een aantal markeringen en inline JS zoals deze:

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

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

U kunt gebruik maken jQuery.ready in plaats van window gebeurtenis load aan het maken van de codes meer backward-compatible en cross-browser.

Ik testte de codes via IE 9-10, Chrome 27, Firefox 21, Opera 12 en Safari 5, op Windows 08/07.

antwoordde op 06/06/2013 om 17:03
bron van user

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