转自:/article/2/2//1116884.shtml
比较吃力的地方是drop到播放列表,查MSDN查了n久,还有WindowMediaPlayer6.x插件的play有些奇怪,所以我的代码也有些奇怪........
拜托各位多测测,有Bug您说话,看我做的也挺不容易的,觉得好的您也多捧捧场。
运行代码框
<html>
<head>
<title>MyHTMLPlayer</title>
<style>
body{
overflow:auto;
font-size:12px;
cursor:default;
}
#table01{
font-size:12px;
background-Color:black;
color:white;
text-align:center;
}
#playListTitle{
background-Color:#001122;
color:white;
font-size:12px;
font-weight:bold;
width:100%;
height:16px;
padding:2px;
}
#playList{
width:150px;
height:225px;
margin:0px;
font-size:12px;
background-Color:black;
color:white;
}
#musicList{
width:200px;
border:buttonface4pxgroove;
height:80px;
position:absolute;
right:5px;
top:5px;
}
#musicListTitle{
font-size:13px;
width:100%;
height:20px;
background-Color:#C5FFC5;
padding:3px;
font-weight:bold;
}
#musicLista{
text-decoration:none;
width:100%;
height:20px;
line-height:20px;
font-szie:20px;
line-height:20px;
padding-top:5px;
padding-left:10px;
}
#musicLista:hover{
background-Color:#E5FFE5;
}
</style>
<script>
functionplayList_dragOver(){
event.returnValue=false;
}
functionplayList_dragEnter(){
event.returnValue=false;
event.dataTransfer.dropEffect=’link’;
}
functionaddMusic(){
if(event.srcElement.tagName==’A’){
strTxt=event.srcElement.innerText;
strURL=event.srcElement.href;
playList.innerHTML="";
playList.options[0]=newOption(strTxt,strURL);
playList.options[0].selected=true;
}
event.returnValue=false;
playList_dblClick();
return(false);
}
functionplayList_drop(){
strTxt=unescape(event.dataTransfer.getData(’Text’).split(":")[0]);
strURL=unescape(event.dataTransfer.getData(’Text’).split(":")[1]);
playList.options[playList.options.length]=newOption(strTxt,strURL);
}
functionplayList_keyDown(){
if(event.keyCode==46){
try{
playList.options[playList.options.selectedIndex].outerHTML="";
}catch(e){}
return(false);
}
if(event.keyCode==13){
playList_dblClick();
return(false);
}
}
functionplayList_dblClick(){
MediaPlayer1.detachEvent("PlayStateChange",checkPlayStatus);
MediaPlayer1.fileName=playList.value;
MediaPlayer1.play();
setTimeout(’MediaPlayer1.play();MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus);’,1000);
}
functionmusicList_dragStart(){
if(event.srcElement.tagName==’A’){
event.dataTransfer.setData(’Text’,escape(event.srcElement.innerText)+":"+escape(event.srcElement.href));
}else{
return(false);
}
}
functioninit(){
MediaPlayer1.AutoRewind=false;
MediaPlayer1.AutoStart=true;
MediaPlayer1.SendPlayStateChangeEvents=true;
MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus);
}
functioncheckPlayStatus(oldState,newState){
try{
if(MediaPlayer1.PlayState==0){
MediaPlayer1.detachEvent("PlayStateChange",checkPlayStatus);
MediaPlayer1.stop();
if(playList.options.selectedIndex<playList.options.length-1){
playList.options[playList.options.selectedIndex+1].selected=true;
}else{
playList.options[0].selected=true;
}
MediaPlayer1.fileName=playList.value;
MediaPlayer1.play();
setTimeout(’MediaPlayer1.play();MediaPlayer1.attachEvent("PlayStateChange",checkPlayStatus);’,1000);
}
}catch(e){}
}
</script>
<bodyοnlοad="init();">
<tableid=table01>
<tr>
<td>
<objectclassid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"id="MediaPlayer1"width="286"height="225"STANDBY="LoadingWindowsMediaPlayercomponents..."TYPE="application/x-oleobject">
<paramname="AudioStream"value="-1">
<paramname="AutoSize"value="-1">
<!--是否自动调整播放大小-->
<paramname="AutoStart"value="0">
<!--是否自动播放-->
<paramname="AnimationAtStart"value="-1">
<paramname="AllowScan"value="-1">
<paramname="AllowChangeDisplaySize"value="-1">
<paramname="AutoRewind"value="0">
<paramname="Balance"value="0">
<!--左右声道平衡,最左-9640,最右9640-->
<paramname="BaseURL"value>
<paramname="BufferingTime"value="15">
<!--缓冲时间-->
<paramname="CaptioningID"value>
<paramname="ClickToPlay"value="-1">
<paramname="CursorType"value="0">
<paramname="CurrentPosition"value="0">
<!--当前播放进度-1表示不变,0表示开头单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0-->
<paramname="CurrentMarker"value="0">
<paramname="DefaultFrame"value>
<paramname="DisplayBackColor"value="0">
<paramname="DisplayForeColor"value="16777215">
<paramname="DisplayMode"value="0">
<paramname="DisplaySize"value="0">
<!--视频1-50%,0-100%,2-200%,3-全屏其它的值作0处理,小数则采用四舍五入然后按前的处理-->
<paramname="Enabled"value="-1">
<paramname="EnableContextMenu"value="-1">
<!-是否用右键弹出菜单控制-->
<paramname="EnablePositionControls"value="-1">
<paramname="EnableFullScreenControls"value="-1">
<paramname="EnableTracker"value="-1">
<!--是否允许拉动播放进度条到任意地方播放-->
<paramname="Filename"value=""valuetype="ref">
<paramname="InvokeURLs"value="-1">
<paramname="Language"value="-1">
<paramname="Mute"value="0">
<!--是否静音-->
<paramname="PlayCount"value="10">
<!--重复播放次数,0为始终重复-->
<paramname="PreviewMode"value="-1">
<paramname="Rate"value="1">
<!--播放速度1.0-2.0倍的速度播放-->
<paramname="SAMILang"value>
<paramname="SAMIStyle"value>
<paramname="SAMIFileName"value>
<!--选择同时播放(伴音)的歌曲-->
<paramname="SelectionStart"value="-1">
<paramname="SelectionEnd"value="-1">
<paramname="SendOpenStateChangeEvents"value="-1">
<paramname="SendWarningEvents"value="-1">
<paramname="SendErrorEvents"value="-1">
<paramname="SendKeyboardEvents"value="0">
<paramname="SendMouseClickEvents"value="0">
<paramname="SendMouseMoveEvents"value="0">
<paramname="SendPlayStateChangeEvents"value="-1">
<paramname="ShowCaptioning"value="0">
<!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示-->
<paramname="ShowControls"value="-1">
<!--是否显示控制,比如播放,停止,暂停-->
<paramname="ShowAudioControls"value="-1">
<!--是否显示音量控制-->
<paramname="ShowDisplay"value="0">
<!--显示节目信息,比如版权等-->
<paramname="ShowGotoBar"value="0">
<!--一条框,在下面,有往下箭头-->
<paramname="ShowPositionControls"value="-1">
<!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制-->
<paramname="ShowStatusBar"value="-1">
<!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间-->
<paramname="ShowTracker"value="-1">
<!--是否显示当前播放跟踪条,即当前的播放进度条-->
<paramname="TransparentAtStart"value="-1">
<paramname="VideoBorderWidth"value="0">
<!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小-->
<paramname="VideoBorderColor"value="0">
<!--显示黑色框的颜色,为RGB值,比如ffff00为黄色-->
<paramname="VideoBorder3D"value="0">
<paramname="Volume"value="0">
<!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640,最大0-->
<paramname="WindowlessVideo"value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
</object>
</td>
<td>
<divid=playListTitle>PlayList:</div>
<selectid=playListsize=2οndragοver="playList_dragOver();"οndragenter="playList_dragEnter();"
οndrοp="playList_drop();"οnkeydοwn="playList_keyDown();"οndblclick="playList_dblClick();">
</select>
</td>
</tr>
</table>
<divid=musicListοndragstart="musicList_dragStart();">
<divid=musicListTitle>AllMusic</div>
<ahref="/jaymp3/yequ.mp3"οnclick="addMusic();">夜曲-周杰伦</a><br>
<ahref="/biji.mp3"οnclick="addMusic();">笔记-周笔畅</a><br>
<ahref="/ddr/music/hfmusic/Y.mp3"οnclick="addMusic();">不得不爱-潘玮柏</a><br>
<ahref="http://web./~kkyhm/music/3.wma"οnclick="addMusic();">发如雪-周杰伦</a><br>
<hr>
Tips:把歌曲拖入播放列表
</div>
<divid=info></div>
<body>
</html>