一个javascript写的media player播放器

界面较为简单,支持播放列表 。
建立播放列表的步骤为:
1)在文本框中输入媒体资源的地址,可以是HTTP地址,相对地址和绝对地址
2)点击“添加到媒体列表”按钮,将媒体资源信息放到媒体列表中
3)在媒体列表中,点击“添加”链接,将媒体加入到播放列表中
4)重复若干遍,加入所有歌曲
5)点击“播放选中的歌曲“,就开始播放 播放列表中的所有打勾的媒体文件

完整代码如下:
 

Code:
  1. <script language="JavaScript">   
  2.     function el(objname)   
  3.     {   
  4.         return document.getElementById(objname);   
  5.     }   
  6. //增加一首歌到播放器列表,这样,播放器放完一首歌之后,会继续放下一首   
  7. function addmedia(url)   
  8. {     
  9.     // 取得当前的播放列表   
  10.     var playlist=Player.currentPlaylist;//新建一个指定URL的Media。   
  11.     var currMedia = Player.newMedia(url);   
  12.     //把新建的Media item添加到播放器列表   
  13.     playlist.appendItem(currMedia);   
  14. }   
  15.   
  16. function clearlist()   
  17. {                   
  18.     //Player.currentPlaylist.count返回列表中的歌曲数量   
  19.     while(Player.currentPlaylist.count>0)    
  20.     {   
  21.         var item =Player.currentPlaylist.item(Player.currentPlaylist.count-1);   
  22.     Player.currentPlaylist.removeItem(item);                   //从播放列表中删除项   
  23.     }              
  24. }   
  25. //清空播放列表   
  26. function clearPlaylist()   
  27. {                   
  28.     clearlist();   
  29.        
  30.     var l_tb = el("tabPlayList");   
  31.     var row_len = l_tb.rows.length;   
  32.     for(var i = 0; i < row_len; i++)   
  33.         l_tb.firstChild.removeChild(l_tb.firstChild.childNodes[0]);             
  34. }   
  35. //清空媒体列表   
  36. function clearMedialist()   
  37. {                   
  38.     var l_tb = el("tabMediaList");   
  39.     var row_len = l_tb.rows.length;   
  40.     for(var i = 0; i < row_len; i++)   
  41.         l_tb.firstChild.removeChild(l_tb.firstChild.childNodes[0]);   
  42. }   
  43. //播放选中的歌曲   
  44. function addSeletedSongToPlayList()   
  45. {   
  46.     clearlist();        
  47.     var l_tb = el("tabPlayList");   
  48.     var row_len = l_tb.rows.length;   
  49.     if(row_len == 0)   
  50.     {   
  51.         //alert("无歌曲");   
  52.         return;   
  53.     }                  
  54.   for(var i=0;i<row_len;i++)   
  55.   {   
  56.       var check = l_tb.rows[i].cells[0].childNodes[0];   
  57.       var songname = l_tb.rows[i].cells[1].innerText;   
  58.       if(check.checked==true)   
  59.         {   
  60.             addmedia(songname);      
  61.         }   
  62.     }   
  63.        
  64.     SetPlayMode(el("setplay").options[el("setplay").selectedIndex].value)   
  65.        
  66.     Player.controls.play();              //让播放器开始播放   
  67. }   
  68.   
  69. //添加文本输入框中的url到播放列表   
  70. function addUrlToList()   
  71. {   
  72.     //addmedia(document.getElementById("songURL").value );   
  73.     var l_tb = el("tabMediaList");   
  74.     var row_len = l_tb.rows.length;   
  75.     var tr = document.createElement("tr");   
  76.     var td = document.createElement("td");   
  77.     var strSong = el("songURL").value;   
  78.     var strHtml = strSong + " <a href='#' οnclick='addSong("" + strSong + "");'>添加</a>";   
  79.     strHtml += " <a href='#' οnclick='removeSong(this.parentElement.parentElement);'>移除</a>";   
  80.     td.innerHTML = strHtml;   
  81.     tr.appendChild(td);   
  82.     l_tb.firstChild.appendChild(tr);   
  83.        
  84.     el("songURL").value = "http://";   
  85. }   
  86.   
  87. //添加文本输入框中的url到播放列表   
  88. function addSong(strSongName)   
  89. {   
  90.     var l_tb = el("tabPlayList");   
  91.     var row_len = l_tb.rows.length;   
  92.     var tr = document.createElement("tr");   
  93.        
  94.     var td = document.createElement("td");   
  95.     var strChecked = "<input type='checkbox' checked value='" + strSongName + "'>";   
  96.     td.innerHTML = strChecked;   
  97.     tr.appendChild(td);   
  98.        
  99.     td = document.createElement("td");   
  100.     td.innerHTML = strSongName;   
  101.     tr.appendChild(td);   
  102.        
  103.     td = document.createElement("td");   
  104.     var strHtml = " <a href='#' οnclick='removePlaySong(this.parentElement.parentElement);'>移除</a>";   
  105.     td.innerHTML = strHtml;   
  106.     tr.appendChild(td);   
  107.        
  108.     l_tb.firstChild.appendChild(tr);   
  109. }   
  110.   
  111. //从媒体列表删除   
  112. function removeSong(tr)   
  113. {   
  114.     var l_tb = el("tabMediaList");   
  115.     l_tb.firstChild.removeChild(tr);   
  116. }   
  117.   
  118. //从播放列表删除   
  119. function removePlaySong(tr)   
  120. {   
  121.     var l_tb = el("tabPlayList");   
  122.     l_tb.firstChild.removeChild(tr);   
  123. }   
  124.   
  125. //到指定位置播放   
  126. function playposition()   
  127. {   
  128.     Player.controls.currentPosition = parseFloat(el("txtPosition").value);   
  129.     el("txtPosition").value = "1.0";   
  130. }   
  131.   
  132. function StartMeUp(){Player.controls.play()}   
  133. function ShutMeDown(){Player.controls.stop()}   
  134. function Pause(){Player.controls.pause()}   
  135. function Next(){Player.controls.next()}   
  136. function Prev(){Player.controls.previous()}   
  137. function Forward(){Player.controls.fastForward()}   
  138. function reverse(){Player.controls.fastReverse()}   
  139. function SetPlayMode(value){Player.settings.setMode(value,true)}   
  140. function ChangeuiMode(value){Player.uiMode=value;}   
  141. function AjustSound(){   
  142. if(event.srcElement.name=="turnup" && Player.settings.volume<=100)   
  143. {Player.settings.volume+=10}   
  144. if(event.srcElement.name=="turndown" && Player.settings.volume>=0)   
  145. {Player.settings.volume-=10}   
  146. }   
  147. </script>   
  148.   
  149. <SCRIPT LANGUAGE  = "JScript" FOR = "Player" EVENT = "MediaChange">     
  150.   el("spnCurrentMediaName").innerText = Player.currentMedia.name;   
  151.   el("spnCurrentMediaDuration").innerText = Player.currentMedia.durationString;   
  152.   el("spnCurrentMediaWidth").innerText = Player.currentMedia.imageSourceWidth;   
  153.   el("spnCurrentMediaHeight").innerText = Player.currentMedia.imageSourceHeight;   
  154.   el("spnCurrentMediaMarkerCount").innerText = Player.currentMedia.markerCount;   
  155.   el("spnCurrentSourceURL").innerText = Player.currentMedia.sourceURL;   
  156. </SCRIPT>   
  157.   
  158. <object id="Player" width=300 height=300 classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6">   
  159.                     <param name="URL" value="test.wmv">   
  160.                     <param name="autoStart" value="1">   
  161.                     <param name="balance" value="0">   
  162.                     <param name="baseURL" value>   
  163.                     <param name="captioningID" value>   
  164.                     <param name="currentPosition" value="0">   
  165.                     <param name="currentMarker" value="0">   
  166.                     <param name="defaultFrame" value="0">        
  167.                     <param name="enabled" value="1">   
  168.                     <param name="enableErrorDialogs" value="0">   
  169.                     <param name="enableContextMenu" value="1">                  
  170.                     <param name="fullScreen" value="0">         
  171.                     <param name="invokeURLs" value="1">   
  172.                     <param name="mute" value="0">   
  173.                     <param name="playCount" value="1">      
  174.                     <param name="rate" value="1">   
  175.                     <param name="SAMIStyle" value>   
  176.                     <param name="SAMILang" value>   
  177.                     <param name="SAMIFilename" value>   
  178.                     <param name="stretchToFit" value="0">   
  179.                     <param name="uiMode" value="full">   
  180.                     <param name="volume" value="100">   
  181.                     <param name="windowlessVideo" value="0">   
  182. </object>   
  183. <br>   
  184. <INPUT TYPE="BUTTON" NAME="BtnPlay" VALUE="播放" OnClick="StartMeUp()">   
  185. <INPUT TYPE="BUTTON" NAME="BtnStop" VALUE="停止" OnClick="ShutMeDown()">   
  186. <input type="BUTTON" name="BtnPause" value="暂停" onClick="Pause()">   
  187. <label>   
  188.     <input name="turnup" type="button" id="turnup" value="+" onClick="AjustSound()">   
  189.     调节声音   
  190. </label>   
  191. <input name="turndown" type="button" id="turndown" value="-" onClick="AjustSound()">   
  192. <br>   
  193. <input type="BUTTON" name="BtnNext" value="下一个" onClick="Next()">   
  194. <input type="BUTTON" name="BtnPrev" value="前一个" onClick="Prev()">   
  195. <INPUT TYPE="BUTTON" NAME="BtnForw" VALUE="快进" OnClick="Forward()">   
  196. <INPUT TYPE="BUTTON" NAME="BtnReve" VALUE="快退" OnClick="reverse()">   
  197. <br>   
  198. <label>播放模式</label>   
  199. <select id="setplay" name="setplay" onChange="SetPlayMode(this.options[this.selectedIndex].value)">   
  200.   <option value="loop" >循环播放</option>   
  201.   <option value="shuffle">随机播放</option>   
  202. </select>   
  203. <label>显示模式</label>   
  204. <select name="Changeui" onChange="ChangeuiMode(this.options[this.selectedIndex].value)">   
  205.   <option value="none">none</option>   
  206.   <option value="mini">mini</option>   
  207.   <option value="invisible">invisible</option>   
  208.   <option value="full" selected>full</option>   
  209. </select>   
  210. <br><br><br><br>   
  211. 媒体列表:<br>   
  212. <div id = "divMediaList">   
  213.     <table id="tabMediaList">   
  214.     </table>   
  215. </div>   
  216. <br>   
  217. 播放列表:<br>   
  218. <div id="divPlayList">   
  219.     <table id="tabPlayList">   
  220.     </table>   
  221. </div>   
  222. <br>   
  223. 当前播放媒体信息:<br>   
  224. 名称:<span id="spnCurrentMediaName"></span><br>   
  225. 长度:<span id="spnCurrentMediaDuration"></span>秒<br>   
  226. 宽度:<span id="spnCurrentMediaWidth"></span>像素<br>   
  227. 高度:<span id="spnCurrentMediaHeight"></span>像素<br>   
  228. 标志数:<span id="spnCurrentMediaMarkerCount"></span><br>   
  229. 源地址:<span id="spnCurrentSourceURL"></span><br>   
  230. <br>   
  231. <br>   
  232. <INPUT TYPE = "BUTTON" ID = "play" Name="play" VALUE = "播放选中的歌曲" onClick = "addSeletedSongToPlayList();">   
  233. <INPUT TYPE = "BUTTON" ID = "clear" Name="clear" VALUE = "清空播放列表" onClick = "clearPlaylist();">   
  234. <INPUT TYPE = "BUTTON" ID = "clear" Name="clear" VALUE = "清空媒体列表" onClick = "clearMedialist();">   
  235. <br>   
  236. <input type="Text" name="songURL" value ="http://" size="33">   
  237. <INPUT TYPE = "BUTTON" ID = "add" Name="add" VALUE = "添加到媒体列表" onClick = "addUrlToList();">   
  238. <br>可输入:1)HTTP地址: 如http://www.aaa.com/xxx.mp3   
  239. <br>2).相对位置: 如yyy.wmv   
  240. <br>3).绝对位置: 如file:///D:/bbb/zzz.wma   
  241. <br>   
  242. <br>   
  243. <input type="button" οnclick="alert(Player.versionInfo);" value="播放器版本">   
  244. <input type="button" οnclick="alert(Player.controls.currentPosition);" value="获取当前位置">   
  245. 跳到<input type="text" id="txtPosition" size="5" value="1.0">秒播放   
  246. <input type="button" οnclick="playposition();" value="确定">  

 

注意:该代码仅能在IE下运行,系统必须安装Windows Media Player
源代码:http://files.cnblogs.com/redleaf1995/testwmp.rar

原文转自:http://www.cnblogs.com/redleaf1995/archive/2008/04/21/1163896.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值