用javascript控制调用media player播放器例子
注:此范例转子 红叶的blog: http://blog.csdn.net/redleaf1995/archive/2008/03/12/2174122.aspx
此范例界面较为简单,支持播放列表 。建立播放列表的步骤为:
1)在文本框中输入媒体资源的地址,可以是HTTP地址,相对地址和绝对地址
2)点击“添加到媒体列表”按钮,将媒体资源信息放到媒体列表中
3)在媒体列表中,点击“添加”链接,将媒体加入到播放列表中
4)重复若干遍,加入所有歌曲
5)点击“播放选中的歌曲“,就开始播放 播放列表中的所有打勾的媒体文件
6)循环播放,部分代码贴出来了,但此范例没有实现此功能
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 + " <a href='#' οnclick='addSong("" + strSong + "");'>添加</a>";
strHtml += " <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 = " <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数据格式如下:
<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>
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播放器例子相关推荐
- 用javascript控制调用media player播放器例子[转]
此范例界面较为简单,支持播放列表 .建立播放列表的步骤为: 1)在文本框中输入媒体资源的地址,可以是HTTP地址,相对地址和绝对地址 2)点击"添加到媒体列表"按钮,将媒体资源信息 ...
- VS2010/MFC对话框程序调用Windows Media Player播放器控件
MFC对话框程序调用Windows Media Player播放器控件播放打开的avi格式的文件,具体步骤如下: 1.根据MFC向导提示,创建一个默认的对话框项目TestMediaPlayer. 2. ...
- Ubuntu16.04下使用VLC media player播放器实现倍速播放
Ubuntu16.04下使用VLC media player播放器实现倍速播放 打开软件 开启倍速功能 打开软件 视频文件右键"属性"-"打开方式"-" ...
- 网页Windows Media Player播放器参数含义(转)
常用网页播放器代码 我们在网页上看到的播放器无外乎WMP/RealOne/Macromedia Flash Player,其他的无非是面板不同,或者添加了其他控件,对于计算机上安装的一些播放器也都是编 ...
- Windows Media Player播放器 VC++ 2008
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 系统环境 ...
- Windows Media Player播放器(VC++ 2008)
系统环境:Windows 7 软件环境:Visual C++ 2008 SP1 本次目的:编写一个WMP播放器 利用控件来实现的播放器,可以实现对音视频的控制,如:播放.暂停.停止.音量控制.进度条获 ...
- Window Media Player 播放器
转自:http://ajax.cnrui.cn/article/2/2/2006/20061116884.shtml 比较吃力的地方是drop到播放列表,查MSDN查了n久,还有Window Medi ...
- 基于MFC的Media Player播放器的制作(4---功能实现代码)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h 1 // PandaPlayerDlg.h : header file 2 // 3 //{{AFX_I ...
- 用Media Player播放器将音乐CD翻录下来
前言: 因为特别喜欢CD里面的一首歌,但是网上找了半天也没找到,索性找一找方法把他翻录下来了. 第一步:
最新文章
- Vitis-AI集成
- 基于Python的MORSE音频的波形和频谱(二)
- (0005) iOS 开发之WebViewJavascriptBridge的升级问题
- FreeBSD 安装过程
- GraphQL 入门第一篇
- linux系统ftp服务器详解
- Intelligent Warehouse(小米邀请赛)
- 子图同构算法系列(1)
- 【NodeJs】用WebStorm创建Express项目时出现:express version is unavailable
- Linux:Linux常用网络指令
- QQ音乐下载的flac文件转码mp3文件
- 星际争霸环境旧版本replay回放无法观看问题
- 二进制,八进制,十进制,十六进制的详解
- 点击吐丝用mvp模式实现--狸菇凉_
- 必备的 6 大计算机网络基础知识点!会 3 个以上就很牛逼了
- 零界之痕服务器维护,零界之痕进不去怎么办 游戏故障解决方法
- Linux 下的用户、用户组、文件权限设置
- Collaborative Filtering for Implicit Feedback Datasets结论公式推导
- Python:urllib与urllib2错误解析
- 虚拟DOM 之 Snabbdom 一、基本介绍