2 <TITLE>VLC ActiveX plugin test page</TITLE>
\r
7 <INPUT size="90" id="targetTextField" value="">
\r
8 <INPUT type=submit value="Go" onClick="doGo(document.getElementById('targetTextField').value);">
\r
10 <TR><TD colspan="2">
\r
12 Insert VideoLAN.VLCPlugin.2 activex control
\r
14 <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"
\r
15 codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab#Version=0,8,6,0"
\r
20 <param name="MRL" value="" />
\r
21 <param name="ShowDisplay" value="True" />
\r
22 <param name="AutoLoop" value="False" />
\r
23 <param name="AutoPlay" value="False" />
\r
24 <param name="Volume" value="50" />
\r
25 <param name="StartTime" value="0" />
\r
30 Insert MSComctlLib.Slider.2 activex control
\r
32 <OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"
\r
37 <param name="TickStyle" value="3" />
\r
38 <param name="Min" value="0" />
\r
39 <param name="Max" value="0" />
\r
40 <param name="Value" value="0" />
\r
41 <param name="Enabled" value="False" />
\r
43 </TD><TD width="15%">
\r
44 <DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
\r
46 <TR><TD colspan="2">
\r
47 <INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause();'>
\r
48 <INPUT type=button value="Stop" onClick='doStop();'>
\r
50 <INPUT type=button value=" << " onClick='doPlaySlower();'>
\r
51 <INPUT type=button value=" >> " onClick='doPlayFaster();'>
\r
53 <INPUT type=button value="Show" onClick='document.getElementById("vlc").Visible = true;'>
\r
54 <INPUT type=button value="Hide" onClick='document.getElementById("vlc").Visible = false;'>
\r
56 <INPUT type=button id="VersionBut" value="Version" onClick='alert(document.getElementById("vlc").VersionInfo);'>
\r
57 <SPAN style="text-align:center">Volume:</SPAN>
\r
58 <INPUT type=button value=" - " onClick='updateVolume(-10)'>
\r
59 <SPAN id="volumeTextField" style="text-align: center">--</SPAN>
\r
60 <INPUT type=button value=" + " onClick='updateVolume(+10)'>
\r
61 <INPUT type=button value="Mute" onClick='document.getElementById("vlc").audio.toggleMute();'>
\r
65 <SCRIPT language="javascript">
\r
69 var monitorTimerId = 0;
\r
70 var sliderScrolling = false;
\r
71 var ignoreSliderChange = false;
\r
73 function updateVolume(deltaVol)
\r
75 var vlc = document.getElementById("vlc");
\r
76 vlc.audio.volume += deltaVol;
\r
77 document.getElementById("volumeTextField").innerHTML = vlc.audio.volume+"%";
\r
79 function formatTime(timeVal)
\r
81 var timeHour = Math.round(timeVal / 1000);
\r
82 var timeSec = timeHour % 60;
\r
84 timeSec = '0'+timeSec;
\r
85 timeHour = (timeHour - timeSec)/60;
\r
86 var timeMin = timeHour % 60;
\r
88 timeMin = '0'+timeMin;
\r
89 timeHour = (timeHour - timeMin)/60;
\r
91 return timeHour+":"+timeMin+":"+timeSec;
\r
93 return timeMin+":"+timeSec;
\r
97 var vlc = document.getElementById("vlc");
\r
98 var newState = vlc.input.state;
\r
99 if( vlc.log.messages.count > 0 )
\r
101 var iter = vlc.log.messages.iterator();
\r
102 while( iter.hasNext )
\r
104 var msg = iter.next();
\r
107 vlc.log.messages.clear();
\r
109 if( prevState != newState )
\r
111 if( newState == 0 )
\r
113 // current media has stopped
\r
116 else if( newState == 1 )
\r
118 // current media is openning/connecting
\r
121 else if( newState == 2 )
\r
123 // current media is buffering data
\r
126 else if( newState == 3 )
\r
128 // current media is now playing
\r
131 else if( vlc.input.state == 4 )
\r
133 // current media is now paused
\r
136 prevState = newState;
\r
138 else if( newState == 3 )
\r
140 // current media is playing
\r
143 monitorTimerId = setTimeout("monitor()", 1000);
\r
148 function doGo(targetURL)
\r
150 var vlc = document.getElementById("vlc");
\r
151 var options = new Array(":vout=directx");
\r
152 vlc.playlist.clear();
\r
153 //vlc.playlist.add(targetURL, null, options);
\r
154 vlc.playlist.add(targetURL);
\r
155 vlc.playlist.play();
\r
156 vlc.log.verbosity = 3;
\r
157 vlc.log.messages.clear();
\r
158 if( monitorTimerId == 0 )
\r
163 function doPlayOrPause()
\r
165 var vlc = document.getElementById("vlc");
\r
166 if( vlc.playlist.isPlaying )
\r
168 vlc.playlist.togglePause();
\r
172 vlc.log.messages.clear();
\r
173 vlc.playlist.play();
\r
174 if( monitorTimerId == 0 )
\r
182 document.getElementById("vlc").playlist.stop();
\r
183 if( monitorTimerId != 0 )
\r
185 clearTimeout(monitorTimerId);
\r
186 monitorTimerId = 0;
\r
190 function doPlaySlower()
\r
192 var vlc = document.getElementById("vlc");
\r
193 vlc.input.rate = vlc.input.rate / 2;
\r
195 function doPlayFaster()
\r
197 var vlc = document.getElementById("vlc");
\r
198 vlc.input.rate = vlc.input.rate * 2;
\r
205 document.getElementById("info").innerHTML = "Opening...";
\r
206 document.getElementById("PlayOrPause").value = "Pause";
\r
208 function onBuffer()
\r
210 document.getElementById("info").innerHTML = "Buffering...";
\r
211 document.getElementById("PlayOrPause").value = "Pause";
\r
216 document.getElementById("PlayOrPause").value = "Pause";
\r
218 var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");
\r
219 var liveFeedRoll = 0;
\r
220 function onPlaying()
\r
222 if( ! sliderScrolling )
\r
224 var slider = document.getElementById("slider");
\r
225 if( vlc.input.length > 0 )
\r
228 slider.Enabled = true;
\r
229 slider.Max = slider.width;
\r
230 ignoreSliderChange = true;
\r
231 slider.Value = vlc.input.position*slider.width;
\r
232 ignoreSliderChange = false;
\r
233 document.getElementById("info").innerHTML = formatTime(vlc.input.time)+"/"+formatTime(vlc.input.length);
\r
237 // non-seekable "live" media
\r
238 if( slider.Enabled )
\r
240 slider.Value = slider.Min;
\r
241 slider.Enabled = false;
\r
243 liveFeedRoll = liveFeedRoll & 3;
\r
244 document.getElementById("info").innerHTML = liveFeedText[liveFeedRoll++];
\r
250 document.getElementById("PlayOrPause").value = " Play ";
\r
254 vlc.log.verbosity = -1;
\r
255 if( slider.Enabled )
\r
257 slider.Value = slider.Min;
\r
258 slider.Enabled = false;
\r
260 document.getElementById("info").innerHTML = "-:--:--/-:--:--";
\r
261 document.getElementById("PlayOrPause").value = " Play ";
\r
265 <SCRIPT language="JScript">
\r
268 document.onreadystatechange=onVLCStateChange;
\r
269 function onVLCStateChange()
\r
271 if( document.readyState == 'complete' )
\r
276 function slider::Scroll()
\r
278 var vlc = document.getElementById("vlc");
\r
279 var slider = document.getElementById("slider");
\r
280 var oldPos = vlc.input.position;
\r
281 var newPos = slider.Value/slider.width;
\r
282 if( (vlc.input.state == 3) && (oldPos != newPos) )
\r
284 vlc.input.position = newPos;
\r
285 slider.Text = formatTime(vlc.input.time);
\r
286 document.getElementById("info").innerHTML = slider.Text+"/"+formatTime(vlc.input.length);
\r
288 sliderScrolling = true;
\r
290 function slider::Change()
\r
292 var vlc = document.getElementById("vlc");
\r
293 var slider = document.getElementById("slider");
\r
294 var oldPos = vlc.input.position;
\r
295 var newPos = slider.Value/slider.width;
\r
296 if( sliderScrolling )
\r
298 sliderScrolling = false;
\r
300 else if( !ignoreSliderChange && (vlc.input.state == 3) && (oldPos != newPos) )
\r
302 vlc.input.position = newPos;
\r