📄 wmp.htm
字号:
<html>
<head>
<title>STB Media Player</title>
<!-- script for=oMediaPlayer event="OpenStateChange(lOldState, lNewState)">
onopenstatechange(lOldState, lNewState);
</script -->
<script>
// HRESULT defines
var S_OK = 0;
// play states
var mpStopped = 0; // Playback is stopped.
var mpPaused = 1; // Playback is paused.
var mpPlaying = 2; // Stream is playing.
var mpWaiting = 3; // Waiting for stream to begin.
var mpScanForward = 4; // Stream is scanning forward.
var mpScanReverse = 5; // Stream is scanning in reverse.
var mpSkipForward = 6; // Skipping to next.
var mpSkipReverse = 7; // Skipping to previous.
var mpClosed = 8; // Stream is not open.
/*
// open states
var nsClosed = 0; // Content file is closed.
var nsLoadingASX = 1; // Loading an Advanced Stream Redirector (ASX) file.
var nsLoadingNSC = 2; // Loading an .nsc station file.
var nsLocating = 3; // Locating the server.
var nsConnecting = 4; // Connecting to the server.
var nsOpening = 5; // Opening or listening for the stream.
var nsOpen = 6; // Content file is open.
*/
// key codes
var vkStop = 0xb2;
var vkPlay = 0xfa;
var vkPrev = 0xb1;
var vkBScan = 0x21;
var vkFScan = 0x22;
var vkNext = 0xb0;
var vkPause = 0xb3;
var vkVolUp = 0xaf;
var vkVolDown = 0xae;
var vkMute = 0xad;
var vkLeft = 0x25;
var vkUp = 0x26;
var vkRight = 0x27;
var vkDown = 0x28;
var vkSelect = 0x0d;
var vkMenu = 0x12;
var vkWild = 0x24;
/*
// OSD commands
var osdStop = 1;
var osdPlay = 2;
var osdNextTrack = 3;
var osdPrevTrack = 4;
var osdFF = 5;
var osdFREV = 6;
var osdPause = 7;
var osdMenu = 8;
var osdResume = 9;
var osdRewindTrack = 10;
*/
//var osd;
var dbg;
function dbgmsg(error, str)
{
dbg.MessageOut("ERROR " + str + "!! (" + error.number + ": " + error.message + ")");
}
function bodyload()
{
// set up debug messages
try { dbg = window.external.DebugUtils; }
catch (e)
{
dbg = new Object();
dbg.MessageOut = new Function("str", "alert(str)");
}
// request full screen
try { window.external.FullScreen = true; }
catch (e) { dbgmsg(e, "setting FullScreen = true"); }
try
{
var rck = window.external.RemoteControlKeys;
rck.BeginRequest();
rck.Stop = true;
rck.Play = true;
rck.Previous = true;
rck.Next = true;
rck.Forward = true;
rck.Backward = true;
rck.Pause = true;
rck.VolumeUp = true;
rck.VolumeDown = true;
rck.Mute = true;
rck.Menu = true;
rck.Up = false;
rck.Down = false;
rck.Left = false;
rck.Right = false;
rck.Select = false;
rck.EndRequest();
}
catch (e) { dbgmsg(e, "remapping keys"); }
// give the body the focus so we can get key events
document.body.focus();
// set up media player
oMediaPlayer.ShowControls = false;
oMediaPlayer.ShowPositionControls = false;
oMediaPlayer.ShowStatusBar = false;
oMediaPlayer.ShowAudioControls = false;
oMediaPlayer.ShowTracker = false;
oMediaPlayer.DisplaySize = 0; // 0 == mpDefaultSize
oMediaPlayer.Volume = 0; // 0 == full volume
oMediaPlayer.AutoRewind = true;
/*
// set up OSD
oMediaPlayer.SendOpenStateChangeEvents = true;
try
{
osd = window.external.OSD;
osd.InitForMediaPlayer(oMediaPlayer);
}
catch (e) { dbgmsg(e, "initializing OSD"); }
*/
// play passed in media file
var path = location.hash.substr(1);
if (path.length > 0)
{
oMediaPlayer.Open(location.hash.substr(1));
}
}
function bodyunload()
{
try { window.external.FullScreen = false; }
catch (e) { dbgmsg(e, "setting FullScreen = false"); }
try { window.external.RemoteControlKeys.ReleaseRequest(); }
catch (e) { dbgmsg(e, "releasing key mappings"); }
}
/*
function onopenstatechange(lOldState, lNewState)
{
if (nsOpen == lNewState)
{
try
{
osd.SignalOpenState(true);
osd.ProvideFeedback(osdPlay, S_OK);
}
catch (e) { dbgmsg(e, "signaling new media source to OSD"); }
}
else if (nsClosed == lNewState)
{
try { osd.SignalOpenState(false); }
catch (e) { dbgmsg(e, "signaling end of media source to OSD"); }
}
}
*/
function keyup()
{
var fCancelBubble = true;
switch (event.keyCode)
{
case vkStop:
oMediaPlayer.Stop();
// osd.ProvideFeedback(osdStop, S_OK);
if (oMediaPlayer.CanSeek)
{
oMediaPlayer.CurrentPosition = 0;
}
break;
case vkPlay:
oMediaPlayer.Play();
// osd.ProvideFeedback(osdPlay, S_OK);
break;
case vkPrev:
if (mpStopped == oMediaPlayer.PlayState)
{
window.history.back();
break;
}
if (oMediaPlayer.CanSeekToMarkers
&& oMediaPlayer.MarkerCount > 0
&& oMediaPlayer.CurrentMarker - 1 > 0)
{
oMediaPlayer.CurrentMarker = oMediaPlayer.CurrentMarker - 1;
// osd.ProvideFeedback(osdPrevTrack, S_OK);
}
break;
case vkBScan:
if (oMediaPlayer.CanScan && oMediaPlayer.AllowScan)
{
oMediaPlayer.FastReverse();
// osd.ProvideFeedback(osdFREV, S_OK);
}
break;
case vkFScan:
if (oMediaPlayer.CanScan && oMediaPlayer.AllowScan)
{
oMediaPlayer.FastForward();
// osd.ProvideFeedback(osdFF, S_OK);
}
break;
case vkNext:
if (oMediaPlayer.CanSeekToMarkers
&& oMediaPlayer.MarkerCount > 0
&& oMediaPlayer.CurrentMarker + 1 <= MediaPlayer.MarkerCount)
{
oMediaPlayer.CurrentMarker = oMediaPlayer.CurrentMarker + 1;
// osd.ProvideFeedback(osdNextTrack, S_OK);
}
break;
case vkPause:
oMediaPlayer.Pause();
// osd.ProvideFeedback(osdPause, S_OK);
break;
case vkVolUp:
if (oMediaPlayer.Volume + 50 <= 0)
oMediaPlayer.Volume = oMediaPlayer.Volume + 50;
else
oMediaPlayer.Volume = 0;
break;
case vkVolDown:
if (oMediaPlayer.Volume - 50 >= -10000)
oMediaPlayer.Volume = oMediaPlayer.Volume - 50;
else
oMediaPlayer.Volume = -10000;
break;
case vkMute:
oMediaPlayer.Mute = !oMediaPlayer.Mute;
break;
case vkMenu:
window.history.back();
break;
case vkLeft:
case vkUp:
case vkRight:
case vkDown:
case vkSelect:
case vkWild:
default:
fCancelBubble = false;
break;
}
event.cancelBubble = fCancelBubble;
}
</script>
</head>
<body bgcolor=black onload=bodyload() onunload=bodyunload() onkeyup=keyup()>
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id=oMediaPlayer height=100% width=100% onkeyup=keyup()>
Error: Media Player object did not load!!
</object>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -