Avatar billede para7 Nybegynder
07. maj 2008 - 15:50 Der er 11 kommentarer og
1 løsning

Tjekke om WMP er stoppet

Kan man tjekke om Windows Media Player embedded er stoppet?

Jeg vil nemlig gerne disble en onmouseover, hvis det er tilfældet.

onMouseOut="MediaPlayer1.controls.play()"

- har jeg på et billede, og vil gerne undgå at starte klippet, hvis det er stoppet (kørt til ende.
Avatar billede w13 Novice
07. maj 2008 - 16:03 #1
Jeg tror bare, du må fjerne billedet, ligeså snart filmen er sat i gang.

Mener ikke, man kan lytte på, om filmen er stoppet. I hvert fald ikke crossbrowser.
Avatar billede para7 Nybegynder
07. maj 2008 - 16:09 #2
Det går ikke at skjule billedet. Men kan man mon så lade WMP gå til en anden URL ved slut af et klip, uden at skulle lave det i selve klippet som et script?
Avatar billede w13 Novice
07. maj 2008 - 16:27 #3
Jeg mener, man kan aflæse "state" på en eller anden måde.. Hmm.. MediaPlayer1.controls.state måske?
Avatar billede w13 Novice
07. maj 2008 - 16:27 #4
Måske state() ...
Avatar billede para7 Nybegynder
07. maj 2008 - 17:53 #5
Jeg synes også at have set et script i en kildekode på en nettv side med state, men kan ikke huske hvor.
Avatar billede para7 Nybegynder
08. maj 2008 - 08:06 #6
Her er en funktion der indeholder fx WMState[1]  = "Stopped"; http://www.codeproject.com/KB/scripting/myrshewmp.aspx
Avatar billede w13 Novice
08. maj 2008 - 09:40 #7
Ok. Kan du bruge den så?
Avatar billede para7 Nybegynder
08. maj 2008 - 11:02 #8
Hvis jeg var skrap til javascript, måske. Men måske kan du finde ud af noget for mig ?-=
Avatar billede w13 Novice
08. maj 2008 - 11:52 #9
Du kan vist bruge:

MediaPlayer1.playState

Hvis den returnerer 1, er filmen stoppet.
Hvis den returnerer 8, er filmen slut, hvilket nok mere løser dit problem.

Men hvordan man "lytter" på det, ved jeg ikke.

Så det må nok løses med noget setInterval:

setInterval("if(MediaPlayer1.playState==8)window.location.href='nyurl.htm'",1000);
Avatar billede para7 Nybegynder
08. maj 2008 - 14:09 #10
Det ser nok ud som om du har fundet noget, w13. Jeg har startet med at prøve at udskrive status. Men der skal vist være noget der får javescriptet til at opdatere, når playeren ændres. Her er vist eksempler på states:

        var WMState = new Array();        WMState[0]  = "Undefined";          WMState[1]  = "Stopped";          WMState[2]  = "Paused";          WMState[3]  = "Playing";          WMState[4]  = "Scan Forward";          WMState[5]  = "Scan Reverse";          WMState[6]  = "Buffering";          WMState[7]  = "Waiting";          WMState[8]  = "Media Ended";          WMState[9]  = "Transitioning";          WMState[10] = "Ready";
Og her prøver jeg at vise state for playeren:
<script type="text/javascript">
document.write("WMP status: "+MediaPlayer1.playState)
</script>
Der vises 9 når jeg starter klippet. Det passer vist godt nok.
Avatar billede w13 Novice
08. maj 2008 - 15:17 #11
Min kode:
setInterval("if(MediaPlayer1.playState==8)window.location.href='nyurl.htm'",1000);
tjekker playerens status hvert 1000. ms., dvs. hvert sekund.
Havde jeg kunne finde ud af at "lytte" på playerens status, dvs. kun køre koden, når status ændrede sig, havde det jo været federe, men dette er vist også fint.
Avatar billede w13 Novice
08. maj 2008 - 15:17 #12
Og tak for point. :)
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