webForumDet fria alternativet

Styra quick time med javascript

11 svar · 325 visningar · startad av mattiasnordin

mattiasnordinMedlem sedan maj 20012 062 inlägg
#1

Sitter och labbar lite med att styra QuickTime pluginen i webläsaren med javascript enligt:

http://developer.apple.com/documentation/QuickTime/Conceptual/QTScripting_JavaScript/QTScripting_JavaScri_Document/chapter_1000_section_4.html

Exempel:

	 <OBJECT classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" 
	                  codebase="http://www.apple.com/qtactivex/qtplugin.cab" 
	                   width="180" height="160" 
	 		autostart="true" 
	                   id="movie1" > 
	            <PARAM name="src" value="/trailers/<%=varMovieSrc%>"> 
	            <EMBED width="180" height="160" 
	 		autostart="true" 
	                   src="/trailers/<%=varMovieSrc%>"
	                   TYPE="video/quicktime"
	                   PLUGINSPAGE="www.apple.com/quicktime/download"
	                   name="movie1" 
	                   enablejavascript="true"> 
	            </EMBED> 
	           </OBJECT> 
	<hr>
	
	<a href="javascript:document.movie1.Play();">movie1.Play()</a><br>
	<a href="javascript:document.movie1.Stop();">movie1.Play()</a><br>
	<a href="javascript:alert(document.movie1.GetEndTime());">movie1.Play()</a><br>
	<script language ="JavaScript">
	alert(document.movie1.GetEndTime())
	</script>

Varför fungerar länken <a href="javascript:alert(document.movie1.GetEndTime());">movie1.Play()</a><br> men inte alerten nedanför?

Måste man skapa en funktion som triggas på onLoad för att det inte ska generera ett fel ?

mattiasnordinMedlem sedan maj 20012 062 inlägg
#2

Ingen som har någon förklaring ?

nitro2k01Medlem sedan aug. 20037 630 inlägg
#3

Helt enkelt därför att quicktime-pluggen inte är inladdad vid det tillfället. Du måste vänta på onload. I ditt fall så funkar det om du klickar på länkarna, men det är inget du ska ta för givet. Om sidan av någon anledning skulle laddas så långsamt att du hann klicka på en av länkarna innan pluggen var laddad, så skulle även detta skapa ett fel.

mattiasnordinMedlem sedan maj 20012 062 inlägg
#4

Tack för ditt svar. Jag drar samma slutsats. Men jag får det inte att fungera med onLoad heller.

<body bgcolor="black" text=white Onload="funGetInfo()">

<script language ="JavaScript">
	function funGetInfo(){
	varMovieLength = document.movie1.GetDuration()
	varMovieTimeScale = document.movie1.GetTimeScale() 
	alert(varMovieTimeScale +" - " +document.movie1.GetDuration())
	varMovieLength = varMovieLength / varMovieTimeScale / 60
	document.frmSaveData.req_end_tim.value = varMovieLength
	//alert(document.movie1.GetEndTime() +"\n" +document.movie1.GetQuickTimeVersion() +"\n" +document.movie1.GetQuickTimeLanguage() +"\n" +document.movie1.GetQuickTimeConnectionSpeed()   )
	//alert(document.movie1.GetPluginStatus() +"\n" +document.movie1.GetTime() +"\n" +document.movie1.GetKioskMode() +"\n" +document.movie1.GetDuration()   )
	//alert(document.movie1.GetMovieSize() +"\n" +document.movie1.GetMaxBytesLoaded() +"\n" )
	}
</script>

Ger "UNSPECIFIED ERROR"

Det måste väl gå att trigga det på något annat sätt ???

nitro2k01Medlem sedan aug. 20037 630 inlägg
#5

Vilken rad uppkommer felet på?

mattiasnordinMedlem sedan maj 20012 062 inlägg
#6

Line 81
car 2

	<script language ="JavaScript">
	function funGetInfo(){
	[b]varMovieLength = document.movie1.GetDuration()[/b]
	varMovieTimeScale = document.movie1.GetTimeScale() 
	alert(varMovieTimeScale +" - " +document.movie1.GetDuration())
	varMovieLength = varMovieLength / varMovieTimeScale / 60
	document.frmSaveData.req_end_tim.value = varMovieLength
	//alert(document.movie1.GetEndTime() +"\n" +document.movie1.GetQuickTimeVersion() +"\n" +document.movie1.GetQuickTimeLanguage() +"\n" +document.movie1.GetQuickTimeConnectionSpeed()   )
	//alert(document.movie1.GetPluginStatus() +"\n" +document.movie1.GetTime() +"\n" +document.movie1.GetKioskMode() +"\n" +document.movie1.GetDuration()   )
	//alert(document.movie1.GetMovieSize() +"\n" +document.movie1.GetMaxBytesLoaded() +"\n" )
	}
	</script>

Lite drygt att ta reda på vilket som var rad 81. Men det ska vara den med fet stil ovan.

pettssonMedlem sedan jan. 2002777 inlägg
#7

Misstänker att detta, infogat på rätt rader kommer avhjälpa det hela: ";;;;;" :stud
I javascript avslutar man rader med ;

mattiasnordinMedlem sedan maj 20012 062 inlägg
#8

Har testat att lägga till alla ; men det hjälper inte.

Känns som att det tar någon sekund att ladda objektet och innan det är laddat så smäller skriptet. Men om man inte kan autoköra något med onLoad så vet jag inte hur jag ska kunna få det att fungera.... grrr....

Lös det åt mig så får ni det alternativa nobelpriset ;)

@ndersMedlem sedan juni 200026 914 inlägg
#9

Lite drygt att ta reda på vilket som var rad 81.

Använd en webbläsare med en riktig javascriptavlusare (ex. Firefox) så är det mycket lättare att finna javascriptfel.

mattiasnordinMedlem sedan maj 20012 062 inlägg
#10

Oki... ska testa. :)

Nu fick jag klippa och klistra lite.

pettssonMedlem sedan jan. 2002777 inlägg
#11

Går det inte att sätta en onLoad event på filmspelaren då? Den borde inte gå igång innan hela filmen är laddad

mattiasnordinMedlem sedan maj 20012 062 inlägg
#12

<EMBED onLoad="alert('test')" width="180" height="160"
autostart="true"
...

Verkar inte fungera. Hmmm... :)

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb