Til þess að setja video inná vefsíðu, þá mælir w3c með að nota <object> í staðinn fyrir <embed>. En þegar ég reyndi það, þá lenti ég fljótlega í vandræðum. Ég fann ég kóðann á netinu sem ég notaði fyrst:

 <OBJECT id="VIDEO" width="320" height="305" 
	style="position:absolute; left:0;top:0;"
	type="x-ms-wmv"
    	CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
	
	<PARAM NAME="URL" VALUE="http://static.hugi.is/video/stuttmyndir/sjalfsoryggi2.wmv">
	<PARAM NAME="AutoStart" VALUE="false">
	<PARAM name="uiMode" value="full">
</OBJECT>
type skilgreinir hvað tegund af video þetta er, CLASSID kallar á ActiveX til að stjórna playernum.
Síðan er PARAM:URL notað til að segja hvaða video á að spila.

Þetta virkaði mjög vel, þangað til ég fór að prófa aðra browsera en IE. Þetta virkaði hvorki í operu (OP) né firefox (FF). En báðir þessir vafrar styðja samt <object>
Til að fá þetta til að virka í OP þá þarf að bæta við einu PARAM við:

 <PARAM NAME="SRC" VALUE="http://static.hugi.is/video/stuttmyndir/sjalfsoryggi2.wmv">

En þá er firefox eftir. Að bæta við PARAM:src er ekki nóg. Til að fá þetta til að virka í FF þá þarf að henda út CLASSID og setja í staðinn data="http://static.hugi.is/video/stuttmyndir/sjalfsoryggi2.wmv“. En merkilegt nokk, þá notar FF samt PARAM:src til að ákveða hvað á að spila. Flókið? Kannski. Ef þú setur data=clipA og param:src = clipB þá spilarðu clipB. Ef þú sleppir data=clipA, þá spilarðu ekki neitt! Svo að núna virkar þetta í FF og OP….. en EKKI IE. Týpískt.

En af hverju bara ekki að nota bara <embed> og losna við þetta fokking bögg? Af því að w3c segir svo? Það finnst mér ekki vera nógu góð ástæða. En, með því að nota object og CLASSID, þá fær maður aukna stjórn yfir videoinu. Þá getur maður farið að stjórna spilaranum með javascript í IE. id=”VIDEO" var sett inline í <object> til þess að geta gert þetta í js:

 VIDEO.url = "clip02.wmv"  //spila næstu klippu
VIDEO.controls.stop()	//þarf að útskýra frekar?
Fleiri methods er hægt að finna á MSDN. Og þá er maður alltí einu kominn með þann möguleika að setja upp langana lista af video linkum á síðuna og láta þá birtast í spilaranum með því að klikka á þá. Engir external media player glugga og ekki nauðsynlegt að hafa eina html síðu fyrir hvert video. Og þá er líka kominn möguleiki til að byggja sitt eigið skin fyrir WMP!

En OP og FF styðja ekki ActiveX (ekki by default), þannig að hjá flestum myndi þetta bara virka í IE. En mér finnst það þess virði að geta þetta. Þannig að ef maður vill nota bara OBJECT og láta það virka í ie,op og ff þá geri ég svona:

1. nota javascript til að byggja object element í síðunni með öllum nauðsynlegum stillingum.
- og nota if (document.all) til að ákveða hvort CLASSID er notað eða ekki.

2. til að stjórna spilaranum í ie, nota VIDEO.url og VIDEO.controls.stop() eða next()


Að skipta um klippu í op og ff er flóknara. Það er ekki hægt að nota javascript til að breyta param:src. Þ.e. það er hægt, en það hefur engin áhrif á playerinn. Eina lausnin sem ég fann var að setja auka container div (t.d id=“extra”) utanum <object>, og nota svo document.getElementById(“extra”).removeChild() til að hreinlega rífa playerinn útúr síðunni og setja hann svo inn aftur með js og nota þá næsta klippunafn í param:src.
Dálítið mikið ofbeldi kannski, en ef einhver getur bent mér á lausn sem virkar í öllum þremur browserum og spilar klippur á sömu síðunni, ekki hika.

Tilvitnun: http://www.mioplanet.com/rsc/embed_mediaplayer.htm

Testað á: IE6.0sp2, OP v8.51, FF v1.5
—–

http://arul.dk