网页嵌入快播播放器并实现服务器视频文件连续播放

上篇我们在网页中(html、jsp、php)嵌入了快播播放器,嵌入代码如下:

参数介绍:url:播放视频文件的地址 Autoplay:是否自动播放,1:是,0:否 Showcontrol:是否显示控制栏,也就是下面的声音控制以及进度条 1:是,0:否,界面如下:注意:下载的快播版本不同会有不同的页面效果

在项目中我们可能会有这样的需求,就是从服务器端获取很多的视频文件地址,我们播放一个后自动跳转到下一个,开始我也是从快播方面考虑,在其论坛上http://bbs.kuaibo.com/找了很多相关方面的资料,发现其有自己的内部实现方式,可能要在其后台进行相应的发布和地址格式转换等等,想要研究的看这篇博客:http://bbs.kuaibo.com/thread-19410-1-1.html,后来想来想去,还是自己用js解决了,在里面使用了我们的定时器。代码如下:

我们也可以点击按钮后出发定时器:

//单个视频播放

function singlePlay(path){

QvodPlayer.url="${video_path}"+path;

QvodPlayer.play();

}

//多个视频连续播放

function multiPlay(index){

var urls=$("#s_"+index).text();

var i=1;

if(urls!=""){

var urlArray=urls.split(",");

singlePlay(urlArray[0]);

setInterval(function(){

var state = QvodPlayer.PlayState;

if(state==0&&i

singlePlay(urlArray[i]);

i++;

}

},1000);

}

}

这样,每1s中就是判断上一个视频文件是否播放完毕,播放完后自动跳转到下一集,不足的是没有做到像快播那样自动缓冲下一集的功能,只是一个文件的跳转而已!!

上面我们可以看到快播里面一个方法:QvodPlayer.PlayState;它是调用了快播中的一个属性,快播给我们的js和vb提供了相应的接口,正是因为这些接口的存在,我们才可以在页面中可以对快播玩转自如,下面把它提供的接口给大家瞧瞧:

1、属性接口: 1)URL:播放文件地址。URL值格式:qvod://文件大小|文件hash值|文件名| 如:qvod://145485901|E4284D21B54DCB7181EA853B88746D693ACEA079|美丽的选择-第三部-05.rmvb| 2) AutoPlay:是否自动播放。0:不自动播放 1:自动播放。默认是不自动播放。 < PARAM NAME='AutoPlay' VALUE='0'> 3) Showcontrol:是否显示控制栏,0=不显示 1= 显示 默认参数是显示 < PARAM NAME='Showcontrol' VALUE='0'> 4)NextWebPage:播放当前节目后自动导航到下一集或者其它网页的功能 默认为空即不导航。网页地址请以http://开头. <;PARAM NAME='NextWebPage' VALUE='http://www.vod588.com/dy_player/b22cbb3c.html?262614'> 5)NumLoop:是否循环播放当前节目 值:0 为不循环,大于0为循环次数,递减到0后即停止循环,-1为一直循环。 默认为0. 6)QvodAdUrl: 网页中的链接地址是qvod://格式时,可以在网页中用此参数指定播放前的缓冲页面地址 注:3.0.0.58版本及将来发布的版本才支持。 2、方法接口: 1)播放 Play(): 2)停止 Stop(): 3)暂停 Pause(): 4)设置当前播放位置 Currentpos: 例如想设置播放位置在一分钟则: c++等语言: long newValue = 60; put_Currentpos(newValue); javastricpt/vb/vbstricpt等脚本语言: var pos = 60; QvodPlayer.Currentpos = 60; 5) 得到当前播放位置 Currentpos: c++等语言: double newValue = 0; newValue = get_Currentpos(); javastricpt/vb/vbstricpt等脚本语言: var pos = 0; pos = QvodPlayer.Currentpos; 6) 得到播放持续时间 Duration: c++等语言: double newValue = 0; newValue = get_Duration(); javastricpt/vb/vbstricpt等脚本语言: var pos = 0; pos = QvodPlayer.Duration; 7) 设置全屏与否 Full (BOOL bFull): 如设置全屏 c++等语言: BOOL bFull = TRUE;//全屏则为TRUE,取消全屏则为FALSE put_Full (bFull ); javastricpt/vb/vbstricpt等脚本语言: var pos = true; QvodPlayer.Full= true; 8) 得到是否全屏 Full: c++等语言: BOOL bFull = TRUE; bFull = get_Full (); javastricpt/vb/vbstricpt等脚本语言: var pos = true; pos = QvodPlayer.Full; 9) 设置静音 Mute(): c++等语言: BOOL bMute= TRUE;//静单为TRUE,取消静音则为FALSE; put_Mute(bMute); javastricpt/vb/vbstricpt等脚本语言: var pos = true; QvodPlayer.Mute = pos ; 10) 得到是否静音状态 BOOL GetMute(): c++等语言: BOOL bMute = TRUE; Mute = get_Mute (); javastricpt/vb/vbstricpt等脚本语言: var pos = true; pos = QvodPlayer.Mute; 11) 得到当前播放状态 PlayState(): c++等语言: PLAYSTATE state= Undefined ; state= get_PlayState (); javastricpt/vb/vbstricpt等脚本语言: var state; state = QvodPlayer.PlayState; 播放状态值: enum enum_PalyState { _S_Init = 0, _S_Stop, _S_Pause, _S_Playing, _S_Buffering, _S_Waiting, _S_MediaEnded, _S_Ready, _S_Conning, _S_BTDowning, _S_CreateDS, _S_Stoping };//Undefined = 0,准备就绪 Stopped = 1,停止; Paused = 2,暂停; Playing = 3,播放中; Buffering = 4,缓冲中; Waiting = 5,等待中; MediaEnded = 6,播放结束Ready = 7, 准备读;Reconnecting = 8,重连中; BTDowning = 9 BT种子下载中; Createing = 10,正在连接中; Stoping=11 正在停止; 刚开始播的时候的状态是Createing 上面只是一部分,其他的就不一一例举了,想去了解,点击这里查看更多:http://bbs.kuaibo.com/thread-592-1-1.html