/** 定义一个新的player类 */
/* MediaPlayer类定义 冰点原创 */
function MediaPlayerE()
{
this.dom=null;
}
MediaPlayerE.uiMode=
{
Full:"full",
Mini:"mini",
None:"none",
Invisible:"invisible"
}
MediaPlayerE.prototype={
CreateAt:function(id) //在指定ID的标签中创建MediaPlayer控件,大小由该标签决定
{
this.dom=document.createElement("object");
this.dom.classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6";
this.dom.style.width="800px";
this.dom.style.height="600px";
var container=document.getElementById(id);
container.innerHTML="";
container.appendChild(this.dom);
this._Init();
},
BindID:function(id) //绑定一个已存在的Object标签,该标签应该为一个MediaPlayer控件
{
this.dom=document.getElementById(id);
this._Init();
},
_Init:function() //初始化,注册事件
{
var _this=this;
this.dom.addEventListener("PlayStateChange",
function(newState){_this.onPlayStateChange(newState)},true);
this.dom.addEventListener("Buffering",function(bStart){ _this.onBuffering(bStart) },true);
this.dom.addEventListener("Error",function(){ _this.onError(); },true);
this.dom.addEventListener("PositionChange",
function(oldPos,newPos){ _this.onPositionChange(oldPos,newPos); } ,true);
this.dom.addEventListener("StatusChange",function(){ _this.onStatusChange(); },true)
},
onPlayStateChange:function(newState)
{
switch(newState)
{
case 1: //wmppsStopped
this.onStop();
break;
case 2: //wmppsPaused
this.onPaused();
break;
case 3: //wmppsPlaying
this.onPlay();
break;
case 4: //wmppsScanForward
break;
case 5: //wmppsScanReverse
break;
case 6: //wmppsBuffering
this.onBuffering_SC();
break;
case 7: //wmppsWaiting
break;
case 8: //wmppsMediaEnded
this.onMediaEnded();
break;
case 9: //wmppsTransitioning
this.onTransitioning();
break;
case 10: //wmppsReady
break;
case 11: //wmppsReconnecting
break;
case 12: //wmppsLast
break;
case 0: //wmppsUndefined
break;
default:
break;
}
},
// 事件列表
onStop:function(){alert("停止事件");},
onPaused:function(){alert("暂停事件")},
onPlay:function(){alert("播放事件")},
onBuffering_SC:function(){},
onTransitioning:function(){},
onMediaEnded:function(){},
onError:function(){},
onPositionChange:function(oldPos,newPos){},
onStatusChange:function(){},
onBuffering:function(bStart){},
// 设置 暂时只做两个
setMode:function(mode){ this.dom.uiMode=mode; },
setValume:function(v){ this.dom.settings.volume=v; },
// 各种属性
getMediaName:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.name;
}
return "";
},
getMediaDuration:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.duration;
}
return "";
},
getMediaDurationString:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.durationString;
}
return "";
},
getStatus:function(){ return this.dom.status; },
getPosition:function(){ return this.dom.controls.currentPosition; },
getPositionString:function(){ return this.dom.controls.currentPositionString; },
getPlayState:function(){ return this.dom.playState; },
//赋值方法
setPosition:function(n){ this.dom.controls.currentPosition=n; },
// 操作方法
OpenUrl:function(URL){ this.dom.URL=URL; },
Play:function(){ this.dom.controls.play(); },
Pause:function(){ this.dom.controls.pause();},
Stop:function(){ this.dom.controls.stop(); }
}
/* MediaPlayer类定义 冰点原创 */
function MediaPlayer()
{
this.dom=null;
}
MediaPlayer.uiMode=
{
Full:"full",
Mini:"mini",
None:"none",
Invisible:"invisible"
}
MediaPlayer.prototype={
CreateAt:function(id) //在指定ID的标签中创建MediaPlayer控件,大小由该标签决定
{
this.dom=document.createElement("object");
this.dom.classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6";
this.dom.style.width="800px";
this.dom.style.height="600px";
var container=document.getElementById(id);
container.innerHTML="";
container.appendChild(this.dom);
this._Init();
},
BindID:function(id) //绑定一个已存在的Object标签,该标签应该为一个MediaPlayer控件
{
this.dom=document.getElementById(id);
this._Init();
},
_Init:function() //初始化,注册事件
{
var _this=this;
this.dom.attachEvent("PlayStateChange",
function(newState){_this.onPlayStateChange(newState)});
this.dom.attachEvent("Buffering",function(bStart){ _this.onBuffering(bStart) });
this.dom.attachEvent("Error",function(){ _this.onError(); });
this.dom.attachEvent("PositionChange",
function(oldPos,newPos){ _this.onPositionChange(oldPos,newPos); } );
this.dom.attachEvent("StatusChange",function(){ _this.onStatusChange(); })
},
onPlayStateChange:function(newState)
{
switch(newState)
{
case 1: //wmppsStopped
this.onStop();
break;
case 2: //wmppsPaused
this.onPaused();
break;
case 3: //wmppsPlaying
this.onPlay();
break;
case 4: //wmppsScanForward
break;
case 5: //wmppsScanReverse
break;
case 6: //wmppsBuffering
this.onBuffering_SC();
break;
case 7: //wmppsWaiting
break;
case 8: //wmppsMediaEnded
this.onMediaEnded();
break;
case 9: //wmppsTransitioning
this.onTransitioning();
break;
case 10: //wmppsReady
break;
case 11: //wmppsReconnecting
break;
case 12: //wmppsLast
break;
case 0: //wmppsUndefined
break;
default:
break;
}
},
// 事件列表
onStop:function(){alert("停止事件");},
onPaused:function(){alert("暂停事件")},
onPlay:function(){alert("播放事件")},
onBuffering_SC:function(){},
onTransitioning:function(){},
onMediaEnded:function(){},
onError:function(){},
onPositionChange:function(oldPos,newPos){},
onStatusChange:function(){},
onBuffering:function(bStart){},
// 设置 暂时只做两个
setMode:function(mode){ this.dom.uiMode=mode; },
setValume:function(v){ this.dom.settings.volume=v; },
// 各种属性
getMediaName:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.name;
}
return "";
},
getMediaDuration:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.duration;
}
return "";
},
getMediaDurationString:function()
{
var media=this.dom.currentMedia;
if(media)
{
return media.durationString;
}
return "";
},
getStatus:function(){ return this.dom.status; },
getPosition:function(){ return this.dom.controls.currentPosition; },
getPositionString:function(){ return this.dom.controls.currentPositionString; },
getPlayState:function(){ return this.dom.playState; },
//赋值方法
setPosition:function(n){ this.dom.controls.currentPosition=n; },
// 操作方法
OpenUrl:function(URL){ this.dom.URL=URL; },
Play:function(){ this.dom.controls.play(); },
Pause:function(){ this.dom.controls.pause();},
Stop:function(){ this.dom.controls.stop(); }
}
media.player.js
最新推荐文章于 2025-06-05 09:06:24 发布