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

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

parent 83974ced
<HTML>
<TITLE>VLC ActiveX plugin test page</TITLE>
<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">
<!--
var sliderTimerId = 0;
......@@ -22,82 +66,84 @@ function formatTime(timeVal)
else
return timeMin+":"+timeSec;
};
function go(targetURL)
function onPlay()
{
var options = new Array(":input-repeat");
document.vlc.addTarget(targetURL, options, 4+8, -666);
if( ! sliderTimerId )
document.getElementById("PlayOrPause").value = "Pause";
};
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( ! sliderScrolling )
if( vlc.Playing )
{
if( vlc.Length > 0 )
if( ! sliderScrolling )
{
slider.Enabled = true;
slider.Max = vlc.Length;
slider.Value = vlc.Time;
info.innerText = formatTime(vlc.Time)+"/"+formatTime(vlc.Length);
}
else if( slider.Enabled )
{
slider.Enabled = false;
slider.Value = slider.Min;
info.innerText = "--:--/--:--";
if( vlc.Length > 0 )
{
// seekable stream
slider.Enabled = true;
slider.Max = vlc.Length;
slider.Value = vlc.Time;
info.innerText = formatTime(vlc.Time)+"/"+formatTime(vlc.Length);
document.getElementById("PlayOrPause").Enabled = true;
}
else {
// non-seekable "live" stream
if( slider.Enabled )
{
slider.Value = slider.Min;
slider.Enabled = false;
}
liveFeedRoll = liveFeedRoll & 3;
info.innerText = liveFeedText[liveFeedRoll++];
}
}
sliderTimerId = setTimeout("doUpdate()", 1000);
}
if( vlc.Playing )
else
{
sliderTimerId = setTimeout("updateInterface()", 1000);
onStop();
sliderTimerId = 0;
}
};
function doGo(targetURL)
{
var options = new Array(":input-repeat=1");
document.vlc.addTarget(targetURL, options, 4+8, -666);
};
function doPlayOrPause()
{
if( document.vlc.playing )
{
document.vlc.pause();
}
else
{
sliderTimerId = 0;
document.vlc.play();
}
};
//-->
</SCRIPT>
<TABLE>
<TR><TD colspan="2">
MRL:
<INPUT size="90" name="targetTextField" value="">
<INPUT type=submit value="Go" onClick="go(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>
<SCRIPT LANGUAGE="JScript">
function vlc::play()
{
if( ! sliderTimerId )
{
sliderTimerId = setTimeout("updateInterface()", 1000);
sliderTimerId = setTimeout("doUpdate()", 1000);
}
onPlay();
};
function vlc::pause()
{
......@@ -106,6 +152,7 @@ function vlc::pause()
clearTimeout(sliderTimerId)
sliderTimerId = 0;
}
onPause();
};
function vlc::stop()
{
......@@ -113,13 +160,8 @@ function vlc::stop()
{
clearTimeout(sliderTimerId)
sliderTimerId = 0;
if( slider.Enabled )
{
slider.Value = slider.Min;
slider.Enabled = false;
info.innerText = "--:--/--:--";
}
}
onStop();
};
function slider::Scroll()
{
......@@ -143,20 +185,5 @@ function slider::Change()
};
//-->
</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>
</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