Avatar billede moejensen Nybegynder
17. marts 2004 - 17:26 Der er 15 kommentarer og
1 løsning

tjek af player - og vælg fil herudfra

Jeg har en side hvor man i øjeblikket kan se en .mov fil i quicktime. Jeg åbner filen på følgende måde:

<a href="#" onClick="window.open('/mov/final.mov','new_page','width=320,height=250,scrollbars=no,toolbars=no,menubar=no,statusbar=no,resizable=no')">Film</a>

Jeg kunne godt tænke mig at lave en side der bliver åbnet, som tjekker hvilken player der er tilgængelig.

ex.

<a href="#" onClick="window.open('/mov/film.htm','new_page','width=320,height=250,scrollbars=no,toolbars=no,menubar=no,statusbar=no,resizable=no')">Film</a>

filen "/mov/film.htm", skal så tjekke om brugeren har quicktime, mediaplayer eller ingen player, og alt efter hvad der er til rådighed skal den rigtige fil vælges mpg, mov eller en fejlbesked.

Kan dette lade sig gøre, og hvordan?
Avatar billede moejensen Nybegynder
17. marts 2004 - 17:27 #1
jeg ved ikke lige hvad der er galt med eksperten i øjeblikket, men den skære kode sætninger af, så her kommer koden lige igen

<a href="#" onClick="window.open('/mov/final.mov','new_page',
'width=320,height=250,scrollbars=no,toolbars=no,menubar=no,statusbar=no,
resizable=no')">Film</a>
Avatar billede thesurfer Nybegynder
17. marts 2004 - 17:34 #2
Der er ikke noget "galt" med eksperten.. den klipper bare tekst af, hvor linien bliver for lang, og den ikke kan forsætte den på næste linie. :-)

Ja, det kan lade sig gøre. Du skal bruge et "sniffer" script, der finder ud af hvilke plugins er installeret.
Du kan så have en variabel der indeholder et nøgleord fra starten af. F.eks.: player = "no". Når den så finder ud af at der er installere QuickTime, kan "player" f.eks. ændres til "QT". Og når den har fundet ud af, at der er installeret Windows Media Player, kan du ændre "player" til "WMP".
I slutning kan koden, checker du så hvad variablen "player" indeholder, og derfor afvikler koden i forhold til det.

Nemmere sagt end gjort :-)
Men det er faktisk ikke særligt svært.. du skal bare søge på "sniffer media player" (erstat også "media player" med de andre afspillere) på f.eks. www.google.com

Så skulle du gerne finde nogle scripts.. og så er det bare af smide dem i 1 fil/script.

-- Held & lykke :-)
Avatar billede moejensen Nybegynder
17. marts 2004 - 17:41 #3
jeg får ingen hits på google, når jeg søger på "sniffer media player"
Avatar billede moejensen Nybegynder
17. marts 2004 - 17:46 #4
Er det et komponent der skal installeres på serveren?? eller er det et javascript??
Avatar billede thesurfer Nybegynder
17. marts 2004 - 17:47 #5
Det er JavaScript.. jeg skulle have skrevet "sniffer script media player" :-)
Se i bunder (links til scripts): http://webreference.com/tools/browser/javascript.html
Avatar billede thesurfer Nybegynder
17. marts 2004 - 17:58 #6
Det er ikke fordi, jeg ikke gider at hjælpe dig.. jeg er bare træt og orker ikke at sætte mig ind i det :-)
Avatar billede moejensen Nybegynder
17. marts 2004 - 18:44 #7
jeg synes det virker lidt uoverskueligt, så jeg venter lige og ser om der er en der har en stump kode der kan gøre det.
Avatar billede mik789 Nybegynder
18. marts 2004 - 12:58 #8
Gå ind på http://gemal.dk/browserspy/ scroll ned til de playere du vil tjekke for, klik og se på hans kode ;-) Jeg har selv lige brugt det og det virker fint.
Avatar billede mik789 Nybegynder
18. marts 2004 - 13:06 #9
forklarer lige lidt mere...
problemet er (som sædvanlig) Internet Explorer. De andre browsere tillader at man tjekker hvilke plugins er installeret. Dat kan man ikke for IE. Her bruger man i stedet et vbscript. Så man ender med at spille noget javascript og noget vbscript sammen. Men du kan se hvordan han gør det. Her er den centrale stump af koden som jeg endte med at bruge den:

var i_mediaplayer;
var v_mediaplayer;

var i_quicktime;
var v_quicktime;

var i_realplayer;
var v_realplayer;
var i_realone;
var v_realone;
var i_realplayerg2;
var v_realplayerg2;
var i_realplayerplus;

if (navigator.plugins) {
  for (var i=0; i < navigator.plugins.length; i++) {
    if (navigator.plugins[i].name.toLowerCase().indexOf("windows media player") >= 0) {
      i_mediaplayer = true;
    }if (navigator.plugins[i].name.toLowerCase().indexOf("quicktime") >= 0) {
      i_quicktime = true;
      v_quicktime = navigator.plugins[i].name.substring(17, navigator.plugins[i].name.length);
    }if (navigator.plugins[i].name.toLowerCase().indexOf("realone player") >= 0) {
      i_realone = true;
      v_realone = navigator.plugins[i].description;
    }if (navigator.plugins[i].name.toLowerCase().indexOf("realplayer") >= 0) {
      i_realplayer = true;
      i_realplayerg2 = true;
    }if (navigator.plugins[i].name.toLowerCase().indexOf("realjukebox") >= 0) {
      i_realjukebox = true;
    }
  }
}

if(Gecko&&i_mediaplayer==true){
v_mediaplayer=1;
  try {
    if (window.GeckoActiveXObject) {
      i_mediaplayer_viamo = new GeckoActiveXObject("WMPlayer.OCX.7");
      v_mediaplayer = i_mediaplayer_viamo.versionInfo;
    }
  } catch(e) {
  //alert(e);
  }
}

Det sidste tjek er med henblik på Netscape 7.1 der kan embedde Window Media Player som activeX object. Dertil kommer så vbscript-et der ser sådan ud:

<script type="text/vbscript"><!--
Rem DETTE SCRIPT ER FRA: http://gemal.dk/browserspy/ - TAK TIL HENRIK GEMAL(c)
on error resume next
set tmp = CreateObject("MediaPlayer.MediaPlayer.1")
if IsObject(tmp) then
i_mediaplayer = true
v_mediaplayer = tmp.versionInfo
end if
if not v_mediaplayer then
set tmp7 = CreateObject("WMPlayer.OCX.7")
if IsObject(tmp7) then
i_mediaplayer = true
v_mediaplayer = tmp7.versionInfo
end if
end if
Function UnpackVersionNumber(n)
UnpackVersionNumber = (((n And &HF0000000) / &H10000000) & "." & ((n And &HFF00000) / &H100000) & "." & ((n And &HFF000) / &H1000) & "." & (n And &HFFF))
End Function
i_realplayer = IsObject(CreateObject("RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)"))
set tmp = CreateObject("rmocx.RealPlayer G2 Control")
if (IsObject(tmp)) then
i_realplayer = true
i_realplayerg2 = true
i_realplayerplus = tmp.GetIsPlus
v_realplayer = tmp.GetVersionInfo
end if
set tmp = CreateObject("IERPCtl.IERPCtl.1")
if (IsObject(tmp)) then
i_realone = true
v_realone = UnpackVersionNumber(tmp.RealPlayerVersion)
end if
// --></script>

Og når du så skal videre med at anvende hvad der er fundet, bruger du så disse variabler. Altså f.eks. if(i_mediaplayer==true) så et eller andet osv.
Avatar billede moejensen Nybegynder
18. marts 2004 - 23:34 #10
det funker sku, laver du et svar :-)
Avatar billede moejensen Nybegynder
19. marts 2004 - 13:47 #11
jeg kan se at jeg bliver nød til at tjekke for versionsnummer i mediaplayeren fordi der findes tre formater 4, 7 og 8, så jeg har lavet følgende, som jeg ikke kan få til at virke:

<script language="JavaScript">
<!--
    if(i_mediaplayer == true){
        if(v_mediaplayer.charat(0) > 7) {
            document.writeln('<embed src="final8.wmv" width="320" height="250" autostart="false" loop="false" volume="75" align="center" controls="smallconsole"  border="0"></embed>');
        }
        else if(v_mediaplayer.charat(0) == 7) {
            document.writeln('<embed src="final7.wmv" width="320" height="250" autostart="false" loop="false" volume="75" align="center" controls="smallconsole"  border="0"></embed>');
        }
        else if(v_mediaplayer.charat(0) == 4) {
            document.writeln('<embed src="final4.wmv" width="320" height="250" autostart="false" loop="false" volume="75" align="center" controls="smallconsole"  border="0"></embed>');
        }
        else {
            if(i_quicktime == true) {
                window.location='final.mov';
            }
            else {
                document.writeln("You have no player installed - please install Media Player or Quicktime to see this movie")
            }
        }
    }
    else if(i_quicktime) {
        window.location='final.mov';
    }
    else {
        document.writeln("You have no player installed - please install Media Player or Quicktime to see this movie")
    }
// -->
</script>
Avatar billede moejensen Nybegynder
19. marts 2004 - 13:48 #12
den fejler i linie 3: if(i_mediaplayer == true){
Avatar billede thesurfer Nybegynder
19. marts 2004 - 14:03 #13
Du har ikke skrevet hvilken fejl du får. Det skal du *altid* gøre, når du får en fejl. Så skal vi ikke bruge tid, på at gætte hvilken fejl det er.

Hvis det er hele din kode, dvs der er ikke noget kode før det, vil jeg gætte på at den siger "'i_mediaplayer' er ikke defineret".

Hvis det er tilfældet, er det fordi du mangler at definer "i_mediaplayer", med f.eks.:
var i_mediaplayer;

Det skal også gøres med de andre variabler.


En IF-sætning checker altid, om noget er "true", med mindre at andet er specificeret. Så du burde kunne nøjes med:

if (i_mediaplayer) {
Avatar billede moejensen Nybegynder
19. marts 2004 - 14:21 #14
det er sammensat med det kode der er sat ind ovenfor, men jeg har løst problemet, så jeg ikke behøver alle if sætningene. Fandt ud af at wmp var bagudkompatibel
Avatar billede mik789 Nybegynder
19. marts 2004 - 14:25 #15
fint du fik det til at virke ;-)
Avatar billede moejensen Nybegynder
19. marts 2004 - 14:48 #16
yep det virker nu
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester