鉴于每个人SkeyePlayer插件的使用还不熟悉,特此写一篇插件的使用文件供大家参考;SkeyePlayer有两种插件,一种是基于IE的ActiveX一种是基于控件的FireFox(也支持多浏览器)的npAPI由于源代码,两个插件都包含在内FireBreath框架生成代码较多,npAPI插件只包含关键代码,以后会提供专门的解释FireBreath生成SkeyePlayer npAPI下面我们开始讲解如何使用插件的文档。
-
ActiveX OCX控件
ActiveX控件使用MFC ActiveX框架生成很简单,这里就不赘述了。感兴趣的同学可以下载SkeyePlayer源代码;注意,IE11已经不支持AttachEvent触发浏览器页面事件的方式,因此需要导出播放事件的学生在编写前端页面时需要做好工作IE11兼容性处理;
-
npAPI插件 npAPI插件由FireBreath框架生成,框架生成我们想要的播放器插件框架提供了非常详细的步骤。框架生成后,将SkeyePlayer源码的SkeyePlayerPlugin替换目录下的代码。
-
插件导出接口说明
[1] LONG Start(LPCTSTR sURL, LPCTSTR sRenderFormat, LPCTSTR sUserName, LPCTSTR sPassword, LPCTSTR sHardDecord);
Start函数对SkeyePlayer_OpenStream包装函数的作用是打开一个函数RTSP流;
参数说明: [sURL]:打开流地址,以rtsp://开头; [sRenderFormat]:播放渲染格式,枚举相应格式: D3D支持格式如下: YV12: 0 YUY2: 1 UYVY: 2 A8R8G8B8: 3 X8R8G8B8: 4 RGB565: 5 RGB555: 6 GDI支持格式: RGB24: 7 [sUserName]: RTSP验证用户名,如果流URL已包含在内, 这里填空; [sPassword]: RTSP流验证密码,如果流URL已包含在内, 这里填空; [sHardDecord]: 硬件解码是否使用, 0=软解 1=硬解
注意:OCX接口函数的所有参数都是字符串类型,主要是为了方便页面js调用,以下所有接口参数都是如此;
[2] void Config(LPCTSTR sFrameCache, LPCTSTR sPlaySound, LPCTSTR sShowToScale, LPCTSTR sShowStatisticInfo);
Config播放器的一些参数,如缓存,是否播放音频,是否按比例显示,是否显示代码率信息; 参数说明: [sFrameCache]:缓存帧数,1-n ,值越小,延迟越小。当然,如果网络带宽不理想,播放图片可能会卡住。相反,延迟越大,相应的播放会更流畅; [sPlaySound]:是否播放音频,1=播放,0=不播放 [sShowToScale]:是否按比例显示,1=是 0=否 ,软解码有效 [sShowStatisticInfo]:是否显示码率信息,1=是 0=否 ,软解码有效
[3] void SetOSD(LPCTSTR show, LPCTSTR alpha, LPCTSTR red, LPCTSTR green, LPCTSTR blue, LPCTSTR left, LPCTSTR top, LPCTSTR right, LPCTSTR bottom, LPCTSTR strOSD);
SetOSD在设置视频显示时,设置新的接口OSD显示; 参数说明: [show]:是否显示OSD,1=显示 0=不显示 [alpha]:OSD显示叠加透明度, 0-255,0完全透明。255完全不透明 [red]:OSD字幕颜色RGB分量中的R分量, [green]:OSD字幕颜色RGB分量中的G分量, [blue]:OSD字幕颜色RGB分量中的B分量, [left]:OSD基于视频显示位置坐标的左上角x轴坐标 [top]:OSD基于视频显示位置坐标的左上角y轴坐标 [right]:OSD右下角基于视频显示位置坐标的x轴坐标 [bottom]:OSD右下角y轴坐标基于视频显示位置坐标 [strOSD]:OSD字幕
[4] void Close(void); Close关闭Start打开的流;
注意目前ActiveX控件定义了一个初始化的控件SkeyePlayer播放器实例,一个Start对应一个Close函数;Start函数只能调用一次,必须先调用下一次Cose,再Start; 4. WEB网页端调用 我们已经了解了插件的导出接口,所以我们可以很容易地编写它JS当然,在此之前,我们需要注册插件SkeyePlayer目录下有reg.bat和np_reg.bat批处理文件分别正确OCX和npAPI注册成功后即可使用。
在SkeyePlayer的bin我们已经提供了两个目录Demo html页面供您测试和使用,JS直接调用代码很简单:
function config(){ var obj = document.getElementById("SkeyePlayerOcx"); var cache = document.getElementById("cache").value; var playsound = document.getElementById("playsound").value; var showtoscale= document.getElementById("showtoscale").value; var showsatic = document.getElementById("showsatic").value; obj.Config(cache, playsound, showtoscale, showsatic); //alert(cache ";" playsound ";" showtoscale ";" showsatic); } function startplay(){ var obj = document.getElementById("SkeyePlayerOcx"); var url = document.getElementById("url").value; var rendertype = document.getElementById("rendertype").value; var name= document.getElementById("name").value; var password = document.getElementById("password").value; var hardDecode = document.getElementById("hardwareDecode").value; obj.Start(url, rendertype, name, password,hardDecode); config(); //alert(url ";" rendertype ";" name ";" password); } function stopplay(){ //alert("Close()!!!!!!"); var obj = document.getElementById("SkeyePlayerOcx"); obj.Close(); }