天天看点

音乐连播功能主要用到的 JS对WMP的操作

wmp-网页中常见属性和方法

<object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" type="application/x-oleobject" id="wmp" width="0" height="0" style="width:0px;height:0px;"></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;                  

继续阅读