Toon posts:

[Media Player / Video algemeen] Plaatje tonen na video

Pagina: 1
Acties:

Verwijderd

Topicstarter
Op een website werk ik met een embedded media player element. Hierin begint bij het openen van de pagina automatisch een video af te spelen. Als de video is afgelopen moet deze zich niet automatisch herhalen, dit heb ik dan ook zo ingesteld. Als de video echter afgelopen is wordt nu dus het scherm van de player zwart. Ik zou in plaats hiervan graag een JPG plaatje (met dezelfde afmeting als de video) tonen op de plaats van de media player. Dit plaatje zou dan simpelweg moeten blijven staan en op dit plaatje moet ook geklikt kunnen worden, waarna men naar een andere pagina gelinkt wordt. Er moet dus een <a> tag aan het plaatje toegevoegd worden.

Ik heb zitten denken, maar ik kan geen opzet bedenken waarin ik het bovenstaande kan realiseren. Iemand (met meer kennis) die wellicht wel een oplossing heeft?

BVD!!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10 08:18
volgens mij kan je niet aan een embed object vragen wat zijn status is, wat dus resulteerd in het feit dat je niet weet wanneer je filmpje afgelopen is.
enige manier om het dan te doen is van te voren weten hoe lang het filmpje duurt, en dan na die tijd het filmpje vervangen door het plaatje.

echter, je kan de laadtijd van het filmpje niet weten, waardoor je dit ook niet kan doen...

enige wat ik kan bedenken is flash...

This message was sent on 100% recyclable electrons.


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Het kan wel met Javascript hoor, daarvoor heb je de playState nodig van een Windows Media Player-object. Die kan aangeven wanneer een filmpje is gestopt (je moet wel regelmatig om de status vragen)

[ Voor 30% gewijzigd door Alex) op 05-03-2007 18:06 ]

We are shaping the future


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Alex) schreef op maandag 05 maart 2007 @ 18:06:
Die kan aangeven wanneer een filmpje is gestopt (je moet wel regelmatig om de status vragen)
Pollen ;)
Zo ver ik weet, maar dat is uit de blote bol, is er niet echt een event dat je kunt vangen (onEndMovie ofzo).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Inderdaad :) Ik dacht: ik gebruik die term niet, ik weet niet of TS die kent...
Zo ver ik weet, maar dat is uit de blote bol, is er niet echt een event dat je kunt vangen (onEndMovie ofzo).
Ik heb net even de MSDN erbijgepakt, voor zowel <embed> als <object> zijn er geen elementen voor. Wat wél interessant is is om de source van uitzendinggemist.nl eens te bekijken, in data.js handelen zij alles af wat betreft de playState e.d.

We are shaping the future


Verwijderd

Topicstarter
bedankt voor de reacties de term "pollen" kende ik inderdaad nog niet :P

maar in ieder geval werkt het met playstate best aardig, ik heb tot nu toe dit:
code:
1
2
3
4
5
6
7
8
9
10
11
function removePlayer(oldPlayer) {
    var holder = document.getElementById('playerHolder');
    var oldPlayer = document.getElementById(oldPlayer);
    holder.removeChild(oldPlayer);
}
function ReplaceVideo() {
  if (document.getElementById("MediaPlayer").PlayState == 10) {
    removePlayer('MediaPlayer');}
  else {
    setTimeout('ReplaceVideo()',1000);}
}


Ik werk met een streaming server en kennelijk gaat de playstate aan het einde van het filmpje over in 10 (reconnecting). Ik controleer hier op door de functie ReplaceVideo() tegelijk met het filmpje te laten draaien. Als dit het geval is dan wordt middels de functie removePlayer het player object verwijderd. Ik kan nu een plaatje tonen door het plaatje alvast op de achtergrond te hebben staan, zodat het plaatje te zien is zo gauw het player object weg is.

Echter twee problemen met deze opzet:

- Ik wil graag dat het plaatje interactief is, de bezoeker moet op het plaatje kunnen klikken en dan naar een andere pagina worden gelinkt. Dit regel ik als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        <a class="link" href="doel.html">
        <div id="playerHolder">
        <object id="MediaPlayer" width="320" height="240" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject">
          <param name="URL" value="../../video.php?V=<?=$G?>&L=<?=$L?>&C=<?=$Code?>" />
          <PARAM NAME="stretchToFit" VALUE="0">
          <param name="ShowControls" value="0" />
          <param name="AnimationAtStart" value="0" />
          <param name="ShowStatusBar" value="0" />
          <param name="ShowDisplay" value="0" />
          <param name="Autostart" value="1" />
          <param name="TransparentAtStart" value="0" />
          <param name="uiMode" value="none" />
            <embed
            name = "MediaPlayer"
            stretchToFit = "0"
            type = "application/x-mplayer2"
            pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/download/default.asp"
            FileName = "../../video.php?V=<?=$G?>&L=<?=$L?>&C=<?=$Code?>"
            autostart = "1"
            showcontrols = "0"
            showdisplay = "0"
            showstatusbar = "0"
            width = "320"
            height = "240"
            ></embed>   
        </object>   
        </div>
        </a>


zo gauw het object weggehaald wordt dan wordt de div interactief. De link staat er de hele tijd al, maar werkt immers toch niet als er een video in staat, bij klikken op de video wordt de klik afgevangen door media player. Op zich wordt de div inderdaad interactief na het verdwijnen van het object. Er kan op geklikt worden alleen: er komt geen handje wanneer ik over de div ga met de muis!!!! Ik kan dus wel klikken, maar de muispointer laat dit niet zien als ik er overheen ga. Is hier een oplossing voor??

- Tweede probleem: de hele opzet werkt niet in FF, omdat ik er niet in slaag via JS de playstate op te vragen in FF. Zowel document.getElementById("MediaPlayer").PlayState als document.MediaPlayer.PlayState geven het resultaat undefined...

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Maak van je player en van de link eens losse objecten, waarvan je de link standaard verbergt. Na je removeVideo()-ding voeg je dan een regeltje toe dat de link toont (kan gewoon met een div met style="display: none;")

We are shaping the future


Verwijderd

Topicstarter
bedankt, dat werkt inderdaad goed, was ik nog niet op gekomen |:(

En zou er ook nog een mogelijkheid zijn om de oplossing in FF werkend te krijgen??
Pagina: 1