webForumDet fria alternativet

Styra quick time med javascript

JavaScript

11 svar · 325 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#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 ?

Medlem sedan maj 20012 080 inlägg
#2

Ingen som har någon förklaring ?

Medlem sedan aug. 20039 340 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.

Medlem sedan maj 20012 080 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 ???

Medlem sedan aug. 20039 340 inlägg
#5

Vilken rad uppkommer felet på?

Medlem sedan maj 20012 080 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.

Medlem sedan jan. 20021 122 inlägg
#7

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

Medlem sedan maj 20012 080 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 ;)

Medlem sedan juni 200032 967 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.

Medlem sedan maj 20012 080 inlägg
#10

Oki... ska testa. :)

Nu fick jag klippa och klistra lite.

Medlem sedan jan. 20021 122 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

Medlem sedan maj 20012 080 inlägg
#12

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

Verkar inte fungera. Hmmm... :)

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)