|  | 
 
| 一、Qvod Player插件: Qvod Player (Q播) 是一款基于准视频点播 (QVOD) 内核的、多功能、个性化的媒体播放器。Qvod Player 集成了全新播放引擎,不但支持自主研发的准视频点播技术;而且还是免费的 BT 点播软件,用户只需通过几分钟的缓冲即可边下载边观看丰富的 BT 影视节目。Qvod Player 具有的资源占用低、操作简捷、运行效率高,扩展能力强等特点,使其成为目前国内最受欢迎的 P2P 播放软件。
 Qvod Player控件可以嵌入到网页中或者支持COM组件的开发程序中。
 Qvod Player让你的视频播放随心随意。
 
 二、使用平台:播放器使用COM组件开发技术,能在用户客户端浏览器或者支持COM组件的开发程序中使用。
 
 三、使用方法:
 1、在你的网页适当位置(即想让用户观看视频的位置)插入如下代码:
 <object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" width="500" height="400" id="QvodPlayer" name="QvodPlayer">
 内容解释
 1、object:HTML语言中对COM插件的统一使用方式。
 2、classid:HTML语言中对WEB插件的调用语句。
 3、clsid: F3D0D36F-23F8-4682-A195-74C92B03D4AF:Qvod Player插件类型ID值。
 4、width/height 在网页中显示的该插件宽与高度。
 5、id/ name/ 是要控制该Qvod Player插件的名字。QvodPlayer可以更改成你喜欢并且容易记住的名字。
 如果不能下载该插件安装包。请用户自行去 http://www.qvod.com下载安装
 
 四、Qvod Player插件最简使用方法:
 在你的网页适当位置源代码中插入如下代码,当用户打开该网页时,即可完成影片文件的播放功能:
 
 复制代码<object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" width="500" height="400" id="QvodPlayer" name="QvodPlayer" onError=if(window.confirm('请您先安装QvodPlayer软件,然后刷新本页才可以正常播放.')){window.open('http://www.qvod.com/download.htm')}else{self.location='http://www.qvod.com/'}>
<PARAM NAME='URL' VALUE='此处请替换成QVOD播放链接地址'>
<PARAM NAME='Autoplay' VALUE='0'> 
</object>
五、Qvod Player接口使用方法
 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
 
 15)  得到现在声音的值
 Volume():
 c++等语言:
 long v = 0;
 v= get_Volume ();
 javastricpt/vb/vbstricpt等脚本语言:
 var v;
 v= QvodPlayer.Volume;
 
 16) 设置现在声音的值 0-100中间的值
 Volume():
 例如设置声音值为50;
 c++等语言:
 long v = 50;
 put_Volume (v);
 javastricpt/vb/vbstricpt等脚本语言:
 var v = 50;
 QvodPlayer.Volume = v;
 
 
 17)
 设置是否循环播放 newVal=0不循环,-1无限循环,大于0的值就代表循环次数
 NumLoop();
 c++等语言:
 long v = 0;        //可以为-1,或者大于0的值于100等
 put_NumLoop(v);
 javastricpt/vb/vbstricpt等脚本语言:
 var v = 0;         //可以为-1,或者大于0的值于100等
 QvodPlayer.NumLoop= v;
 
 18)设置视频框架.
 viewid = 0; 按窗口拉伸埴充,viewid = 1;按比例填充
 put_viewframe(long viewid);
 c++等语言:
 long viewid  = 0;        //viewid = 0;按窗口拉伸埴充 viewid = 1;put_viewframe(v);按比例填充
 javastricpt/vb/vbstricpt等脚本语言:
 var v = 0;                //viewid = 0;按窗口拉伸埴充 viewid = 1;put_viewframe(v);按比例填充
 QvodPlayer.put_viewframe(v);
 
 19)获取播放文件码率
 long  value = get_rate();
 c++等语言:
 long v = 50;
 get_rate(&v);
 javastricpt/vb/vbstricpt等脚本语言:
 var v;
 QvodPlayer.get_rate(v);
 
 20)设置播放文件声道.
 enum enum_SoundChannel
 {
 S_MONO =0, //混合音 - 0
 S_LEFT, //左声道 - 1
 S_RIGHT, //右声道 - 2
 S_DEFAULT, //默认   - 3
 S_LTOALL, //左声道扩展到全部 - 4
 S_RTOALL //右声道扩展到全部 - 5
 };put_SoundTrack(long track);
 例如想设置左声道。
 c++等语言:
 long v = 1;
 put_SoundTrack(v);
 javastricpt/vb/vbstricpt等脚本语言:
 var v = 1;
 QvodPlayer.put_SoundTrack(v);
 
 21) 设置播放亮度对比度
 ntype = 0;//视频调节
 ntype = 1;//音频调节
 ntype = 2;//均衡调节
 ntype = 3;//字幕调节
 put_AdjustVideo(long ntype);
 c++等语言:
 long ntype = 0;
 put_AdjustVideo(ntype);
 javastricpt/vb/vbstricpt等脚本语言:
 var ntype = 0;
 put_AdjustVideo(ntype);
 
 22) 获取播放文件路径
 c++等语言:
 
 BSTR strfilename;
 HRESULT hr = get_MainInfo(&strfilename);
 
 javastricpt/vb/vbstricpt等脚本语言:
 var filename ;
 filename = get_MainInfo();
 
 23) 获取播放文件下载的进度
 返回值是千分值.如果你想化成百分比的话,用这个值除以10即可.即是百分比的值.如你取到的值是98,则代表是已经
 下载了9.8%
 c++等语言:
 
 long taskdown = 0;
 HRESULT hr = get_CurTaskProcess(&taskdown );
 
 javastricpt/vb/vbstricpt等脚本语言:
 var taskdown1 = QvodPlayer.get_CurTaskProcess();
 alert(taskdown1 );
 
 [24]设置控件所属的父窗口:
 void PutParentWnd(long hWnd);
 long hWnd 为父窗口句柄
 如果设置该窗口后,当用户点击浮动的1倍,2倍或者右键菜单1倍,2倍,0.5倍时会向该窗口发送消息
 :: PostMessage(hWnd, value, 0, 0);
 value:
 case WM_USER + 335://0.5倍
 case WM_USER + 336://1倍
 case WM_USER + 337://2倍
 
 [25]控件函数调用:
 c++ BSTR  CallFunction(BSTR request);
 javastricpt: var rexml = QvodPlayer.CallFunction(xml);
 现在暂只支持通过该函数获取播放文件视频原始宽高
 脚本函数如下:
 var xml = "<Invoke name=\"Width_Height\" returntype=\"xml\"></Invoke>";
 var rexml = QvodPlayer.CallFunction(xml);
 alert(rexml);
 
 输入为:<invoke name="QvodVersion" returntype="xml"></invoke>
 输出为:<invoke name="QvodVersion" returntype="xml" vn="%s" vs="%d"></invoke>
 %s表示具体的版本号如3.0.0.59 %d如果是0表示是标准版,1则表示为是增强版。
 
 
 [26]预缓冲下一集:
 
 该接口能让用户在看当前这集节目的时候,自动先缓冲下一集节目,这样当用户看下一集时就能很快的开始看了。也可以配合
 设置IE自动导航到下一页面NextWebPage。这个接口,这样用户就可以完全不用手动去点击网页,完全流畅观看节目了。
 支持http或者QVOD格式两种协议。
 函数:
 c++
 BSTR url=_T("qvod://117840593|FEB33A6420E14C7CFA16828083CD914D9E959B3B|秘密的校园_03.rmvb|");
 StartNextDown(url);
 javastricpt:
 var url="http://117.21.248.253:80/131658100/A1B09F2D7F2C84679AE5110210448F7FB7C8F54F/秘密的校园_04.rmvb"
 或者url="qvod://117840593|FEB33A6420E14C7CFA16828083CD914D9E959B3B|秘密的校园_03.rmvb|";
 QvodPlayer.StartNextDown(url);
 
 
 [27]获取当前文件下载速度
 
 函数:
 c++
 long ldownrate = QvodPlayer.Downrate();
 javastricpt:
 var ldownrate = QvodPlayer.Downrate;
 
 来源:http://www.qvod.com/bbs/thread-592-1-1.html
 | 
 |