Commit 2b2cb996 authored by Damien Fouilleul's avatar Damien Fouilleul

test.html: improved user feedback, especially for live stream

parent 83974ced
<HTML> <HTML>
<TITLE>VLC ActiveX plugin test page</TITLE> <TITLE>VLC ActiveX plugin test page</TITLE>
<BODY> <BODY>
<TABLE>
<TR><TD colspan="2">
MRL:
<INPUT size="90" name="targetTextField" value="">
<INPUT type=submit value="Go" onClick="doGo(targetTextField.value);">
</TD></TR>
<TR><TD colspan="2">
<!--
Insert VideoLAN.VLCPlugin.1 activex control
-->
<OBJECT classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8" codebase="axvlc.cab"
width="640" height="480" id="vlc" events="True">
<param name="Src" value="" />
<param name="ShowDisplay" value="True" />
<param name="Loop" value="False" />
<param name="AutoPlay" value="False" />
</OBJECT>
</TD></TR>
<TR><TD>
<!--
Insert MSComctlLib.Slider.2 activex control
-->
<OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"
width="540" height="20" id="slider" events="True">
<param name="TickStyle" value="3" />
<param name="Min" value="0" />
<param name="Max" value="0" />
<param name="Value" value="0" />
<param name="Enabled" value="False" />
</OBJECT>
</TD><TD width="15%">
<DIV id="info" style="text-align:center">-:--:--/-:--:--</DIV>
</TD></TR>
<TR><TD colspan="2">
<INPUT type=button id="PlayOrPause" value=" Play " onClick='doPlayOrPause()'>
<INPUT type=button value="Stop" onClick='document.vlc.stop();'>
<INPUT type=button value=" << " onClick='document.vlc.playSlower();'>
<INPUT type=button value=" >> " onClick='document.vlc.playFaster();'>
<INPUT type=button value="Mute" onClick='document.vlc.toggleMute();'>
<INPUT type=button value="Show" onClick='document.vlc.Visible = true;'>
<INPUT type=button value="Hide" onClick='document.vlc.Visible = false;'>
<INPUT type=button value="Version" onClick='alert(document.vlc.VersionInfo);'>
</TD></TR>
</TABLE>
<SCRIPT LANGUAGE="JScript"> <SCRIPT LANGUAGE="JScript">
<!-- <!--
var sliderTimerId = 0; var sliderTimerId = 0;
...@@ -22,82 +66,84 @@ function formatTime(timeVal) ...@@ -22,82 +66,84 @@ function formatTime(timeVal)
else else
return timeMin+":"+timeSec; return timeMin+":"+timeSec;
}; };
function go(targetURL) function onPlay()
{ {
var options = new Array(":input-repeat"); document.getElementById("PlayOrPause").value = "Pause";
document.vlc.addTarget(targetURL, options, 4+8, -666); };
if( ! sliderTimerId ) function onPause()
{
document.getElementById("PlayOrPause").value = " Play ";
};
function onStop()
{
if( slider.Enabled )
{ {
sliderTimerId = setTimeout("updateInterface()", 1000); slider.Value = slider.Min;
slider.Enabled = false;
} }
info.innerText = "-:--:--/-:--:--";
document.getElementById("PlayOrPause").value = " Play ";
}; };
function updateInterface() var liveFeedText = new Array("Live", "((Live))", "(( Live ))", "(( Live ))");
var liveFeedRoll = 0;
function doUpdate()
{ {
if( vlc.Playing )
{
if( ! sliderScrolling ) if( ! sliderScrolling )
{ {
if( vlc.Length > 0 ) if( vlc.Length > 0 )
{ {
// seekable stream
slider.Enabled = true; slider.Enabled = true;
slider.Max = vlc.Length; slider.Max = vlc.Length;
slider.Value = vlc.Time; slider.Value = vlc.Time;
info.innerText = formatTime(vlc.Time)+"/"+formatTime(vlc.Length); info.innerText = formatTime(vlc.Time)+"/"+formatTime(vlc.Length);
document.getElementById("PlayOrPause").Enabled = true;
} }
else if( slider.Enabled ) else {
// non-seekable "live" stream
if( slider.Enabled )
{ {
slider.Enabled = false;
slider.Value = slider.Min; slider.Value = slider.Min;
info.innerText = "--:--/--:--"; slider.Enabled = false;
} }
liveFeedRoll = liveFeedRoll & 3;
info.innerText = liveFeedText[liveFeedRoll++];
} }
}
if( vlc.Playing ) sliderTimerId = setTimeout("doUpdate()", 1000);
{
sliderTimerId = setTimeout("updateInterface()", 1000);
} }
else else
{ {
onStop();
sliderTimerId = 0; sliderTimerId = 0;
} }
}; };
//--> function doGo(targetURL)
</SCRIPT> {
<TABLE> var options = new Array(":input-repeat=1");
<TR><TD colspan="2"> document.vlc.addTarget(targetURL, options, 4+8, -666);
MRL: };
<INPUT size="90" name="targetTextField" value=""> function doPlayOrPause()
<INPUT type=submit value="Go" onClick="go(targetTextField.value);"> {
</TD></TR> if( document.vlc.playing )
<TR><TD colspan="2"> {
<!-- document.vlc.pause();
Insert VideoLAN.VLCPlugin.1 activex control }
--> else
<OBJECT classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8" codebase="axvlc.cab" {
width="640" height="480" id="vlc" events="True"> document.vlc.play();
<param name="Src" value="" /> }
<param name="ShowDisplay" value="True" /> };
<param name="Loop" value="False" />
<param name="AutoPlay" value="False" />
</OBJECT>
</TD></TR>
<TR><TD>
<!--
Insert MSComctlLib.Slider.2 activex control
-->
<OBJECT classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628"
width="540" height="20" id="slider" events="True">
<param name="TickStyle" value="3" />
<param name="Min" value="0" />
<param name="Max" value="0" />
<param name="Value" value="0" />
<param name="Enabled" value="False" />
</OBJECT>
<SCRIPT LANGUAGE="JScript">
function vlc::play() function vlc::play()
{ {
if( ! sliderTimerId ) if( ! sliderTimerId )
{ {
sliderTimerId = setTimeout("updateInterface()", 1000); sliderTimerId = setTimeout("doUpdate()", 1000);
} }
onPlay();
}; };
function vlc::pause() function vlc::pause()
{ {
...@@ -106,6 +152,7 @@ function vlc::pause() ...@@ -106,6 +152,7 @@ function vlc::pause()
clearTimeout(sliderTimerId) clearTimeout(sliderTimerId)
sliderTimerId = 0; sliderTimerId = 0;
} }
onPause();
}; };
function vlc::stop() function vlc::stop()
{ {
...@@ -113,13 +160,8 @@ function vlc::stop() ...@@ -113,13 +160,8 @@ function vlc::stop()
{ {
clearTimeout(sliderTimerId) clearTimeout(sliderTimerId)
sliderTimerId = 0; sliderTimerId = 0;
if( slider.Enabled )
{
slider.Value = slider.Min;
slider.Enabled = false;
info.innerText = "--:--/--:--";
}
} }
onStop();
}; };
function slider::Scroll() function slider::Scroll()
{ {
...@@ -143,20 +185,5 @@ function slider::Change() ...@@ -143,20 +185,5 @@ function slider::Change()
}; };
//--> //-->
</SCRIPT> </SCRIPT>
</TD><TD width="15%">
<DIV id="info" style="text-align:right">--:--/--:--</DIV>
</TD></TR>
<TR><TD colspan="2">
<INPUT type=button value="Play" onClick='document.vlc.play();'>
<INPUT type=button value="Stop" onClick='document.vlc.stop();'>
<INPUT type=button value="Pause" onClick='document.vlc.pause();'>
<INPUT type=button value=" << " onClick='document.vlc.playSlower();'>
<INPUT type=button value=" >> " onClick='document.vlc.playFaster();'>
<INPUT type=button value="Mute" onClick='document.vlc.toggleMute();'>
<INPUT type=button value="Show" onClick='document.vlc.Visible = true;'>
<INPUT type=button value="Hide" onClick='document.vlc.Visible = false;'>
<INPUT type=button value="Version" onClick='alert(document.vlc.VersionInfo);'>
</TD></TR>
</TABLE>
</BODY> </BODY>
</HTML> </HTML>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment