Windows Media Player 网页嵌入与音乐列表自动播放实现

作者:半夏时间:2026-10-23 08:59:32浏览:524

本文详细解析了如何在网页中通过JavaScript嵌入并控制Windows Media Player组件。内容涵盖WMP的核心属性、常用控制方法及媒体信息获取,并重点提供了实现音乐列表自动循环播放的完整代码逻辑,包括利用playState状态判断歌曲结束及切换下一首的实现方案。

Windows Media Player 嵌入与基础控制

Windows Media Player在网页开发中常通过嵌入对象进行控制,掌握其常见属性和方法是实现自定义播放功能的基础。


<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" id="wmp" width="0" height="0" style="width:0px;height:px;"></object>


基本属性配置


wmp.URL:String; //指定媒体位置,本机或网络地址


wmp.uiMode:String; //播放器界面模式,可为Full, Mini, None, Invisible


wmp.playState:integer; //播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪


wmp.enableContextMenu:Boolean; //启用/禁用右键菜单


wmp.fullScreen:boolean; //是否全屏显示


播放器常用控制


wmp.controls.play; //播放


wmp.controls.pause; //暂停


wmp.controls.stop; //停止


wmp.controls.currentPosition:double; //当前进度


wmp.controls.currentPositionString:string; //当前进度,字符串格式。如“00:23”


wmp.controls.fastForward; //快进


wmp.controls.fastReverse; //快退


wmp.controls.next; //下一曲


wmp.controls.previous; //上一曲


播放器常用设置


wmp.settings.volume:integer; //音量,0-100


wmp.settings.autoStart:Boolean; //是否自动播放


wmp.settings.mute:Boolean; //是否静音


wmp.settings.playCount:integer; //播放次数


wmp.settings.balance = -100; //(左声)


wmp.settings.balance=100; //(右声)


wmp.settings.balance=0; //(全声)


常用当前媒体属性


wmp.currentMedia.duration:double; //媒体总长度


wmp.currentMedia.durationString:string; //媒体总长度,字符串格式。如“03:24”


wmp.currentMedia.getItemInfo(const string); //获取当前媒体信息


//"Title"=媒体标题 "Author"=艺术家 "Copyright"=版权信息


//"Description"=媒体内容描述 "Duration"=持续时间(秒)


//"FileSize"=文件大小 "FileType"=文件类型 "sourceURL"=原始地址


wmp.currentMedia.setItemInfo(const string); //通过属性名设置媒体信息


wmp.currentMedia.name:string; //同currentMedia.getItemInfo("Title")


wmp.network.bufferingProgress; //缓冲百分比


wmp.network.downloadProgress; //下载百分比


较全面的页面参数设置


<object id="Player" height="10" width="100" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">


<param name="URL" value="" />


<param name="rate" value="1" />


<param name="balance" value="0" />


<param name="currentPosition" value="0" />


<param name="defaultFrame" />


<param name="playCount" value="1" />


<param name="autoStart" value="true" />


<param name="currentMarker" value="0" />


<param name="invokeURLs" value="-1" />


<param name="baseURL" />


<param name="volume" value="50" />


<param name="mute" value="0" />


<param name="uiMode" value="invisible" />


<param name="stretchToFit" value="0" />


<param name="windowlessVideo" value="0" />


<param name="enabled" value="-1" />


<param name="enableContextMenu" value="-1" />


<param name="fullScreen" value="0" />


<param name="SAMIStyle" />


<param name="SAMILang" />


<param name="SAMIFilename" />


<param name="captioningID" />


<param name="enableErrorDialogs" value="0" />


<param name="_cx" value="6482" />


<param name="_cy" value="6350" />


</object>


相关引用及解释参见上面!


<script language="javascript">


var WMP=this.document.getElementById("Player");


//播放


function playthis(url)


{

WMP.URL = url;


WMP.controls.play();


}

</script>


音乐列表自动播放实现逻辑

如何播放一个音乐列表?


思路:播放一个音乐列表,需要实现两个目的,一是循环,二是判断是否当前歌曲播放完成.只有当前歌曲播放完成后才进行循环.实现检测.


var i=0;


playthis(firstmusic)


//实时检测器,间隔时间为1秒


d=setInterval(function shwotimer()


{

if(WMP.playState==1)


{

if(i>=SoundArray.length)


{

//当播放所有完成后清空循环


clearInterval(d);


}

else


{

//当播放完成后播放下一首


playthis(url);


}
}
}

,1000);


如有其它控制需要,如暂停,可设置一个标识,即当前暂停,则下一步为播放,反之亦然


var pauseflag=0;


function Command_Pause()


{

if(pauseflag==0)


{

WMP.controls.Pause();


}

else


{

WMP.controls.play();


}

pauseflag=pauseflag==1?0:1;


}
作者最新文章