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

news/2024/11/23 23:24:52/

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

	<object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" width="560" height="420" id="QvodPlayer" name="QvodPlayer" onError="downLoadQvod();">  
<param name="url" id="qvodurl0" value="http://192.168.1.254:8089/ftp/ftpupload//2_1001_025201.AVI">
<param name="Autoplay" value="1">   
<param name="Showcontrol" value="1">  
</object>  


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

 

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

<script type="text/javascript">
function downLoadQvod(){
if(window.confirm('请您先安装QvodPlayer软件,然后刷新本页才可以正常播放!')){
window.open('<%=basePath%>video/qvod-setup.exe');
}
}
function play(){
QvodPlayer.url="F:/30230201/02-53-02.AVI";
QvodPlayer.play();
}
var i=0;
function getState(){
//将请求的地址封装为数组
var   urlArray=["F:/30230201/02-52-01.AVI","F:/30230201/02-53-02.AVI","F:/30230201/02-53-03.AVI"];
var state = QvodPlayer.PlayState;
if(state==0&&i<urlArray.length){
QvodPlayer.url=urlArray[i];
QvodPlayer.play();
i++;
}
}
//设置定时器,1s种请求一次
setInterval("getState()",1000);
</script>

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

	 //单个视频播放
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<urlArray.length-1){
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版本及将来发布的版本才支持。
<PARAM NAME='QvodAdUrl' VALUE='http://buffer-ad.qvod.com/index_bak.asp'>

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


http://www.ppmy.cn/news/427585.html

相关文章

快播 QvodTerminal.exe 应用程序错误排查

经常夜里挂机用快播&#xff08;Qvod&#xff09;下载电影&#xff0c;因为现在多数电影网站都必须使用这个玩意才可以边看边下载嘛&#xff0c;速度也挺快的&#xff0c;就是QvodTerminal这玩艺太损耗带宽&#xff0c;快播一开 2M的ADSL直接连网页也打不开了&#xff0c;麻痹的…

多快好省用快播

相信很多人和我一样&#xff0c;都是急性子&#xff0c;在网上看视频&#xff0c;要是遇到缓冲时间过长或播放中途太卡&#xff0c;一般就会选择直接关闭走人&#xff0c;绝对不会无谓地浪费太多时间&#xff0c;哈哈&#xff01;而只有找出 “省时播放”的软件&#xff0c;才能…

真没想到!时隔3年,被废掉武功的快播,依然是最受欢迎的播放器

10年前&#xff0c;国内视频市场还处于野蛮生长阶段&#xff0c;版权意识不浓&#xff0c;视频资源也没现在这么全面。优酷称霸网络视频市场&#xff0c;成就土豆“千年老二”称号。迅雷下载器一直充当网络视频、游戏、音乐等的搬运工&#xff0c;下载到电脑。而有一款来自美国…

快播公司已破产注销;ChatGPT 之父警告:AI 可能灭绝人类;苹果官方:618 将开启全球首次直播|极客头条

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&…

逍遥自在学C语言 | 指针的基础用法

前言 在C语言中&#xff0c;指针是一项重要的概念&#xff0c;它允许我们直接访问和操作内存地址。 可以说&#xff0c;指针是C语言一大优势。用得好&#xff0c;你写程序如同赵子龙百万军中取上将首级&#xff1b;用得不好&#xff0c;则各种问题层出不穷&#xff0c;有种双…

三星note8 html5,三星Galaxy Note8屏幕材质_三星Galaxy Note8屏幕分辨率-太平洋IT百科

三星Galaxy Note8屏幕是什么材质?分辨率是多少?三星Galaxy Note 8.0是三星在2017年8月23日发布的一款旗舰手机&#xff0c;Note 8 首先被介绍的亮点是外观设计&#xff0c;同时&#xff0c;该款手机也是三星发布的首款双摄像头智能手机。三星Galaxy Note 8采用6.3英寸的Quad …

拼多多百亿补贴商品详情数据抓取

拼多多百亿补贴数据采集接口代码对接教程如下&#xff1a; 1.公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff0c;点击获取请求key和secret&#xff09;secretString是调用密钥 (接口代码教程WeChat19970108018&#xff09;api_na…