注:此范例转子 红叶的blog: http://blog.csdn.net/redleaf1995/archive/2008/03/12/2174122.aspx
此范例界面较为简单,支持播放列表 。建立播放列表的步骤为:
1)在文本框中输入媒体资源的地址,可以是HTTP地址,相对地址和绝对地址
2)点击“添加到媒体列表”按钮,将媒体资源信息放到媒体列表中
3)在媒体列表中,点击“添加”链接,将媒体加入到播放列表中
4)重复若干遍,加入所有歌曲
5)点击“播放选中的歌曲“,就开始播放 播放列表中的所有打勾的媒体文件
6)循环播放,部分代码贴出来了,但此范例没有实现此功能

<script language="JavaScript">...
    function el(objname)
    ...{
        return document.getElementById(objname);
    }
//增加一首歌到播放器列表,这样,播放器放完一首歌之后,会继续放下一首
function addmedia(url)
...{
    // 取得当前的播放列表
    var playlist=Player.currentPlaylist;//新建一个指定URL的Media。
    var currMedia = Player.newMedia(url);
    //把新建的Media item添加到播放器列表
    playlist.appendItem(currMedia);
}

function clearlist()
...{              
    //Player.currentPlaylist.count返回列表中的歌曲数量
    while(Player.currentPlaylist.count>0)
    ...{
        var item =Player.currentPlaylist.item(Player.currentPlaylist.count-1);
    Player.currentPlaylist.removeItem(item);                   //从播放列表中删除项
    }         
}
//清空播放列表
function clearPlaylist()
...{              
    clearlist();
  
    var l_tb = el("tabPlayList");
    var row_len = l_tb.rows.length;
    for(var i = 0; i < row_len; i++)
        l_tb.firstChild.removeChild(l_tb.firstChild.childNodes[0]);        
}
//清空媒体列表
function clearMedialist()
...{              
    var l_tb = el("tabMediaList");
    var row_len = l_tb.rows.length;
    for(var i = 0; i < row_len; i++)
        l_tb.firstChild.removeChild(l_tb.firstChild.childNodes[0]);
}
//播放选中的歌曲
function addSeletedSongToPlayList()
...{
    clearlist();   
    var l_tb = el("tabPlayList");
    var row_len = l_tb.rows.length;
    if(row_len == 0)
    ...{
        //alert("无歌曲");
        return;
    }             
  for(var i=0;i<row_len;i++)
  ...{
      var check = l_tb.rows[i].cells[0].childNodes[0];
      var songname = l_tb.rows[i].cells[1].innerText;
      if(check.checked==true)
        ...{
            addmedia(songname); 
        }
    }
  
    SetPlayMode(el("setplay").options[el("setplay").selectedIndex].value)
  
    Player.controls.play();              //让播放器开始播放
}

//添加文本输入框中的url到播放列表
function addUrlToList()
...{
    //addmedia(document.getElementById("songURL").value );
    var l_tb = el("tabMediaList");
    var row_len = l_tb.rows.length;
    var tr = document.createElement("tr");
    var td = document.createElement("td");
    var strSong = el("songURL").value;
    var strHtml = strSong + "&nbsp;<a href='#' οnclick='addSong("" + strSong + "");'>添加</a>";
    strHtml += "&nbsp;<a href='#' οnclick='removeSong(this.parentElement.parentElement);'>移除</a>";
    td.innerHTML = strHtml;
    tr.appendChild(td);
    l_tb.firstChild.appendChild(tr);
  
    el("songURL").value = "http://";
}

//添加文本输入框中的url到播放列表
function addSong(strSongName)
...{
    var l_tb = el("tabPlayList");
    var row_len = l_tb.rows.length;
    var tr = document.createElement("tr");
  
    var td = document.createElement("td");
    var strChecked = "<input type='checkbox' checked value='" + strSongName + "'>";
    td.innerHTML = strChecked;
    tr.appendChild(td);
  
    td = document.createElement("td");
    td.innerHTML = strSongName;
    tr.appendChild(td);
  
    td = document.createElement("td");
    var strHtml = "&nbsp;<a href='#' οnclick='removePlaySong(this.parentElement.parentElement);'>移除</a>";
    td.innerHTML = strHtml;
    tr.appendChild(td);
  
    l_tb.firstChild.appendChild(tr);
}

//从媒体列表删除
function removeSong(tr)
...{
    var l_tb = el("tabMediaList");
    l_tb.firstChild.removeChild(tr);
}

//从播放列表删除
function removePlaySong(tr)
...{
    var l_tb = el("tabPlayList");
    l_tb.firstChild.removeChild(tr);
}

//到指定位置播放
function playposition()
...{
    Player.controls.currentPosition = parseFloat(el("txtPosition").value);
    el("txtPosition").value = "1.0";
}

function StartMeUp()...{Player.controls.play()}
function ShutMeDown()...{Player.controls.stop()}
function Pause()...{Player.controls.pause()}
function Next()...{Player.controls.next()}
function Prev()...{Player.controls.previous()}
function Forward()...{Player.controls.fastForward()}
function reverse()...{Player.controls.fastReverse()}
function SetPlayMode(value)...{Player.settings.setMode(value,true)}
function ChangeuiMode(value)...{Player.uiMode=value;}
function AjustSound()...{
if(event.srcElement.name=="turnup" && Player.settings.volume<=100)
...{Player.settings.volume+=10}
if(event.srcElement.name=="turndown" && Player.settings.volume>=0)
...{Player.settings.volume-=10}
}
</script>

<SCRIPT LANGUAGE  = "JScript" FOR = "Player" EVENT = "MediaChange">...
  el("spnCurrentMediaName").innerText = Player.currentMedia.name;
  el("spnCurrentMediaDuration").innerText = Player.currentMedia.durationString;
  el("spnCurrentMediaWidth").innerText = Player.currentMedia.imageSourceWidth;
  el("spnCurrentMediaHeight").innerText = Player.currentMedia.imageSourceHeight;
  el("spnCurrentMediaMarkerCount").innerText = Player.currentMedia.markerCount;
  el("spnCurrentSourceURL").innerText = Player.currentMedia.sourceURL;
</SCRIPT>

<object id="Player" width=300 height=300 classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6">
                    <param name="URL" value="test.wmv">
                    <param name="autoStart" value="1">
                    <param name="balance" value="0">
                    <param name="baseURL" value>
                    <param name="captioningID" value>
                    <param name="currentPosition" value="0">
                    <param name="currentMarker" value="0">
                    <param name="defaultFrame" value="0">   
                    <param name="enabled" value="1">
                    <param name="enableErrorDialogs" value="0">
                    <param name="enableContextMenu" value="1">             
                    <param name="fullScreen" value="0">    
                    <param name="invokeURLs" value="1">
                    <param name="mute" value="0">
                    <param name="playCount" value="1"> 
                    <param name="rate" value="1">
                    <param name="SAMIStyle" value>
                    <param name="SAMILang" value>
                    <param name="SAMIFilename" value>
                    <param name="stretchToFit" value="0">
                    <param name="uiMode" value="full">
                    <param name="volume" value="100">
                    <param name="windowlessVideo" value="0">
</object>
<br>
<INPUT TYPE="BUTTON" NAME="BtnPlay" VALUE="播放" OnClick="StartMeUp()">
<INPUT TYPE="BUTTON" NAME="BtnStop" VALUE="停止" OnClick="ShutMeDown()">
<input type="BUTTON" name="BtnPause" value="暂停" onClick="Pause()">
<label>
    <input name="turnup" type="button" id="turnup" value="+" onClick="AjustSound()">
    调节声音
</label>
<input name="turndown" type="button" id="turndown" value="-" onClick="AjustSound()">
<br>
<input type="BUTTON" name="BtnNext" value="下一个" onClick="Next()">
<input type="BUTTON" name="BtnPrev" value="前一个" onClick="Prev()">
<INPUT TYPE="BUTTON" NAME="BtnForw" VALUE="快进" OnClick="Forward()">
<INPUT TYPE="BUTTON" NAME="BtnReve" VALUE="快退" OnClick="reverse()">
<br>
<label>播放模式</label>
<select id="setplay" name="setplay" onChange="SetPlayMode(this.options[this.selectedIndex].value)">
  <option value="loop" >循环播放</option>
  <option value="shuffle">随机播放</option>
</select>
<label>显示模式</label>
<select name="Changeui" onChange="ChangeuiMode(this.options[this.selectedIndex].value)">
  <option value="none">none</option>
  <option value="mini">mini</option>
  <option value="invisible">invisible</option>
  <option value="full" selected>full</option>
</select>
<br><br><br><br>
媒体列表:<br>
<div id = "divMediaList">
    <table id="tabMediaList">
    </table>
</div>
<br>
播放列表:<br>
<div id="divPlayList">
    <table id="tabPlayList">
    </table>
</div>
<br>
当前播放媒体信息:<br>
名称:<span id="spnCurrentMediaName"></span><br>
长度:<span id="spnCurrentMediaDuration"></span>秒<br>
宽度:<span id="spnCurrentMediaWidth"></span>像素<br>
高度:<span id="spnCurrentMediaHeight"></span>像素<br>
标志数:<span id="spnCurrentMediaMarkerCount"></span><br>
源地址:<span id="spnCurrentSourceURL"></span><br>
<br>
<br>
<INPUT TYPE = "BUTTON" ID = "play" Name="play" VALUE = "播放选中的歌曲" onClick = "addSeletedSongToPlayList();">
<INPUT TYPE = "BUTTON" ID = "clear" Name="clear" VALUE = "清空播放列表" onClick = "clearPlaylist();">
<INPUT TYPE = "BUTTON" ID = "clear" Name="clear" VALUE = "清空媒体列表" onClick = "clearMedialist();">
<br>
<input type="Text" name="songURL" value ="http://" size="33">
<INPUT TYPE = "BUTTON" ID = "add" Name="add" VALUE = "添加到媒体列表" onClick = "addUrlToList();">
<br>可输入:1)HTTP地址: 如http://www.aaa.com/xxx.mp3
<br>2).相对位置: 如yyy.wmv
<br>3).绝对位置: 如file:///D:/bbb/zzz.wma
<br>
<br>
<input type="button" onclick="alert(Player.versionInfo);" value="播放器版本">
<input type="button" onclick="alert(Player.controls.currentPosition);" value="获取当前位置">
跳到<input type="text" id="txtPosition" size="5" value="1.0">秒播放
<input type="button" onclick="playposition();" value="确定">

//另附连续播放功能部分代码,主要实现多条节目连续播放,而且多条节目有自己的出点和入点。以及播放器的相关播放状态控制。
xml数据格式如下:

    <filegroup>
    <clip>
        <filename>//198.9.0.149/pdd共享文件夹/Temp/35_相声test.avi</filename>
        <inframe>00:00:00:00</inframe>
        <outframe>00:05:21:06</outframe>
        <audiofilename/>
    </clip>
    <clip>
        <filename>//198.9.0.149/pdd共享文件夹/Temp/dvcam_00.mov</filename>
        <inframe>00:00:00:00</inframe>
        <outframe>00:00:15:24</outframe>
        <audiofilename/>
    </clip>
    <clip>
        <filename>//198.9.0.149/pdd共享文件夹/Temp/jm1.wmv</filename>
        <inframe>00:00:00:00</inframe>
        <outframe>00:04:35:00</outframe>
        <audiofilename/>
    </clip>
</filegroup>
var  FileListIndex = -1;
function MediaPlayFunc()
...{
    var ItemNodeList=FileListXmlDoc.documentElement.selectNodes("/filegroup/clip");
    var len = ItemNodeList.length;
    if (len>0)
    ...{
        if(FileListIndex == -1)
            FileListIndex = 0;
        else if(FileListIndex + 1 == len)
        ...{
            el("xplayer").controls.stop();
            //el("xplayer").controls.play();
            return;
        }
        else
            FileListIndex = FileListIndex + 1;
      
        if(ItemNodeList[FileListIndex].selectSingleNode("filename") != null)
        ...{
            var url = ItemNodeList[FileListIndex].selectSingleNode("filename").text;
            //需要转换成桢格式
            var inframe = ItemNodeList[FileListIndex].selectSingleNode("inframe").text;
            var outframe = ItemNodeList[FileListIndex].selectSingleNode("outframe").text;
            /**//***********用此方法报权限不足错误*****************
            //addmedia(ItemNodeList[i].selectSingleNode("filename").text); 
            //新建一个指定URL的Media。
            //var playlist=el("xplayer").currentPlaylist;
            //var currMedia = el("xplayer").newMedia(url);
            //把新建的Media item添加到播放器列表
            //playlist.appendItem(currMedia);
            /****************************************************/
            el("xplayer").controls.currentPosition = inframe/25.0;

            var timelong = (outframe - inframe)/25.0*1000.0
            //让播放器开始播放
            XPlayer.setUrl(url);

            if(el("xplayer").openState!=13)             //13 open state
            ...{
                el("xplayer").controls.play();
                if(el("xplayer").openState!=6)         //6 open but no flow state
                ...{
                    pubListTimer = setTimeout(MediaPlayFunc,timelong);
                }
                return;
            }
            else
            ...{
                if(el("xplayer").playState == 3)    //3 play state
                ...{
                    el("xplayer").controls.pause();
                }
            }
        }
    }
}

用javascript控制调用media player播放器例子相关推荐

  1. 用javascript控制调用media player播放器例子[转]

    此范例界面较为简单,支持播放列表 .建立播放列表的步骤为: 1)在文本框中输入媒体资源的地址,可以是HTTP地址,相对地址和绝对地址 2)点击"添加到媒体列表"按钮,将媒体资源信息 ...

  2. VS2010/MFC对话框程序调用Windows Media Player播放器控件

    MFC对话框程序调用Windows Media Player播放器控件播放打开的avi格式的文件,具体步骤如下: 1.根据MFC向导提示,创建一个默认的对话框项目TestMediaPlayer. 2. ...

  3. Ubuntu16.04下使用VLC media player播放器实现倍速播放

    Ubuntu16.04下使用VLC media player播放器实现倍速播放 打开软件 开启倍速功能 打开软件 视频文件右键"属性"-"打开方式"-" ...

  4. 网页Windows Media Player播放器参数含义(转)

    常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些播放器也都是编 ...

  5. Windows Media Player播放器 VC++ 2008

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...

  6. Windows Media Player播放器(VC++ 2008)

    系统环境:Windows 7 软件环境:Visual C++ 2008 SP1 本次目的:编写一个WMP播放器 利用控件来实现的播放器,可以实现对音视频的控制,如:播放.暂停.停止.音量控制.进度条获 ...

  7. Window Media Player 播放器

    转自:http://ajax.cnrui.cn/article/2/2/2006/20061116884.shtml 比较吃力的地方是drop到播放列表,查MSDN查了n久,还有Window Medi ...

  8. 基于MFC的Media Player播放器的制作(4---功能实现代码)

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h 1 // PandaPlayerDlg.h : header file 2 // 3 //{{AFX_I ...

  9. 用Media Player播放器将音乐CD翻录下来

    前言: 因为特别喜欢CD里面的一首歌,但是网上找了半天也没找到,索性找一找方法把他翻录下来了. 第一步:

最新文章

  1. Vitis-AI集成
  2. 基于Python的MORSE音频的波形和频谱(二)
  3. (0005) iOS 开发之WebViewJavascriptBridge的升级问题
  4. FreeBSD 安装过程
  5. GraphQL 入门第一篇
  6. linux系统ftp服务器详解
  7. Intelligent Warehouse(小米邀请赛)
  8. 子图同构算法系列(1)
  9. 【NodeJs】用WebStorm创建Express项目时出现:express version is unavailable
  10. Linux:Linux常用网络指令
  11. QQ音乐下载的flac文件转码mp3文件
  12. 星际争霸环境旧版本replay回放无法观看问题
  13. 二进制,八进制,十进制,十六进制的详解
  14. 点击吐丝用mvp模式实现--狸菇凉_
  15. 必备的 6 大计算机网络基础知识点!会 3 个以上就很牛逼了
  16. 零界之痕服务器维护,零界之痕进不去怎么办 游戏故障解决方法
  17. Linux 下的用户、用户组、文件权限设置
  18. Collaborative Filtering for Implicit Feedback Datasets结论公式推导
  19. Python:urllib与urllib2错误解析
  20. 虚拟DOM 之 Snabbdom 一、基本介绍

热门文章

  1. CAS - CentOS下部署CAS服务器及简单使用
  2. DevEcoStudio:鸿蒙系统的权限申请
  3. 内网IP外网IP的关联及访问互联网原理
  4. 麻省理工时域差分软件 MEEP windows 下编译开发(二)——开始编译
  5. android 阻塞 对话框 完全阻塞 停止主进程类似于window MessageBox
  6. 动态规划题目汇总(持续更新)
  7. 黑客零基础入门教程,从入门到精通学习路线规划,看完这篇就够了。
  8. python调用数学库_python 数学库
  9. 电子制作与DIY合集
  10. 设计一种可全向移动的球形机器人