查看: 3709|回复: 0

[论坛建设] 如何在论坛插入QVOD?本地和网页控件接口调用(新增VB例子)

[复制链接]
发表于 2011-7-24 13:43:37 | 显示全部楼层 |阅读模式
一、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插件最简使用方法:
在你的网页适当位置源代码中插入如下代码,当用户打开该网页时,即可完成影片文件的播放功能:
  1. <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/'}>
  2. <PARAM NAME='URL' VALUE='此处请替换成QVOD播放链接地址'>
  3. <PARAM NAME='Autoplay' VALUE='1'>
  4. </object>
复制代码
如何兼容谷歌等非IE浏览器(支持快播4以上版本)
1.object标签变化

网站对谷歌浏览器支持,必须在原来的object标签中添加embed标签,例如下面红色部分:

<object classid='clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF' id='QvodPlayer' width='600' height='480'>

< PARAM NAME='URL' VALUE='qvod://167960408|8F81A848CBEB17F4D4850A13DC781FC803181594|鹿鼎记(陈小春版)-01.rmvb|'>

< PARAM NAME='Showcontrol' VALUE=1>

< PARAM NAME='AutoPlay' VALUE='1'>

<embed URL='qvod://167960408|8F81A848CBEB17F4D4850A13DC781FC803181594|鹿鼎记(陈小春版)-01.rmvb|' type='application/qvod-plugin'></embed>

</object>



embed标签不仅支持URL参数,也同样支持object标签支持的Autoplay,Mute,Showcontrol,Volume,NumLoop,SoundTrack,NextWebPage,QvodAdUrl。在object中初始化的参数,必须在embed中传入才能起效。



2.避免汉字乱码

如果你的动态页面是通过网页URL传入qvod协议地址的要注意了,由于这类浏览器默认对url的参数进行GB2312编码,而插件只能识别utf-8码,这样就会导致创建的网络任务出现汉字乱码。

避免方法有二:

1.
不通过网页URL方式传入qvod协议地址;

2.
对qvod协议地址进行utf-8转码后带入URL的参数中。

任选一种方式即可。




五、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://开头.
<ARAM 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版本及将来发布的版本才支持。
<ARAM 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;


详细使用方法请见二楼的test.rar附件.

附件:【教程】如何让快播4用户通过谷歌等非IE浏览器点播节目http://www.qvod.com/bbs/thread-33766-1-1.html


基于快播技术二次开发成功案例
http://www.qvod.com/bbs/viewthread.php?tid=18198

快播(QvodPlayer)播放器界面皮肤的DIY指南
http://www.qvod.com/bbs/viewthread.php?tid=15561

【开源】 QVOD二次开发开源代码 密友高清(Meu)源代码及说明
http://www.qvod.com/bbs/thread-21512-1-1.html
回复

使用道具 举报

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
QQ客服返回顶部