Embedding Windows Media Player for alle nettlesere

stemmer
55

Vi bruker WMV videoer på et internt nettsted, og vi bygge dem inn i nettsider. Dette fungerer ganske bra på Internet Explorer, men ikke på Firefox. Jeg har funnet måter å gjøre det fungere i Firefox, men da den slutter å fungere i Internet Explorer.

Vi ønsker ikke å bruke Silverlight ennå, spesielt siden vi ikke kan være sikker på at alle kunder skal kjøre Windows XP med Windows Media Player installert.

Er det noen slags universell kode som bygger WMP inn i både Internet Explorer og Firefox, eller trenger vi å gjennomføre noen brukeragent-deteksjon og levere forskjellig HTML for forskjellige nettlesere?

Publisert på 01/08/2008 klokken 18:02
kilden bruker
På andre språk...                            


9 svar

stemmer
44

Følgende fungerer for meg i Firefox og 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>
Svarte 03/08/2008 kl. 14:27
kilden bruker

stemmer
20

Kan jeg foreslå jQuery Media Plugin ? Gir koden for alle typer video, ikke bare WMV og gjør nettleser gjenkjenning, holde alt det rotete switch / case uttalelser ut av dine maler.

Svarte 08/08/2008 kl. 18:29
kilden bruker

stemmer
9

Bruk følgende. Det fungerer i Firefox og 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" />

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


        }
Svarte 04/08/2009 kl. 14:55
kilden bruker

stemmer
7

Elizabeth Castro har en interessant artikkel om dette problemet: Bye Bye Embed . Verdt å lese om hvordan hun angrepet dette problemet, samt håndtering av QuickTime-innhold.

Svarte 10/11/2008 kl. 19:52
kilden bruker

stemmer
7

Den beste måten å distribuere video på nettet bruker Flash - det er mye enklere å legge inn en ren i en web-side og vil spille på mer eller mindre alle nettlesere og plattform kombinasjon. Den eneste grunnen til å bruke Windows Media Player er hvis du streaming av innhold og du trenger usedvanlig sterk digital rights management, og selv da leverandører er nå begynt å bruke Flash selv for disse. Se BBCs iPlayer for et ypperlig eksempel.

Jeg vil foreslå at du bytter til Flash selv for internt bruk. Du vet aldri hvem som kommer til å trenge å få tilgang til det i fremtiden, og dette vil gi deg best mulig fremtidig kompatibilitet.

EDIT - 20 mars 2013. Interessant hvordan disse gamle spørsmålene gjenoppstår fra tid til annen! Hvor annerledes verden er i dag og hvordan datert dette virker. Jeg vil ikke anbefale en eneste Flash rute i dag på noen måte - beste praksis i disse dager vil trolig være å bruke HTML 5 for å legge H264 kodet video, med en Flash-reserve som beskrevet her: http://diveintohtml5.info/video.html

Svarte 02/08/2008 kl. 11:05
kilden bruker

stemmer
6

Du kan bruke betinget kommentarer å få IE og Firefox til å gjøre forskjellige ting

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

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

Nettlesere selv vil ignorere kode som ikke er ment for dem å lese.

Svarte 01/08/2008 kl. 18:08
kilden bruker

stemmer
4

Jeg fant en god artikkel om bruk av WMP med Firefox på MSDN.

Basert på MSDN artikkel og etter å gjøre noen forsøk og feil, fant jeg bruke Javascript er bedre enn å bruke betinget kommentarer eller nøstede "EMBED / objekt" tags.

Jeg gjorde en JS funksjon som genererer WMP objekt basert på gitte argumenter:

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

Så jeg brukte den funksjonen ved å skrive noen markeringer og inline JS som disse:

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

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

Du kan bruke jQuery.ready stedet for vindu belastning arrangementet til å gjøre kodene mer bakoverkompatible og kryss-nettleser.

Jeg testet kodene løpet IE 9-10, Chrome 27, Firefox 21, Opera 12 og Safari 5, på Windows 7/8.

Svarte 06/06/2013 kl. 16:03
kilden bruker

stemmer
4

Koding flash video er faktisk veldig enkelt med ffmpeg. Du kan bruke en kommando for å konvertere fra nesten alle videoformater, er ffmpeg smart nok til å finne resten ut, og det vil bruke hver prosessor på din maskin. Starte det er enkelt:

ffmpeg -i input.avi output.flv

ffmpeg vil gjette på bitrate du vil, men hvis du ønsker å spesifisere en, kan du bruke b alternativet, så -b 500000er 500 kbps for eksempel. Det er massevis av muligheter selvfølgelig, men jeg vanligvis får gode resultater uten mye fiksing og triksing. Dette er et bra sted å starte hvis du leter etter flere alternativer: video alternativer .

Du trenger ikke en spesiell web-server for å vise flash video. Jeg har gjort helt fint ved ganske enkelt å skyve flv filer opp til en standard web server, og linke til dem med en god swf-spiller, som Flowplayer .

WMV er fint hvis du kan være sikker på at alle brukerne skal alltid bruke [en fersk, oppdatert versjon av] kun Windows, men selv da, er ofte en bedre passform for web Flash. Spilleren er selv ekstremt skinnable og kan styres med javascript.

Svarte 04/08/2008 kl. 02:14
kilden bruker

stemmer
3

Jeg har funnet noe som faktisk fungerer i både Firefox og IE, på Elizabeth Castro nettsted (takk til linken på denne siden) - Jeg har prøvd alle andre versjoner her, men kunne ikke gjøre dem arbeide i begge nettlesere

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

Sjekk hennes side ut: http://www.alistapart.com/articles/byebyeembed/ og versjonen med classid i den innledende objekt tag

Svarte 06/11/2009 kl. 20:00
kilden bruker

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