html 支持3pg格式吗,关于pgHtml5Bridge的使用说明

什么是pgHtml5Bridge?

pgHtml5Bridge是利用Html5中的WebSocket等技术将C++的Peergine中间件的API和一些特性桥接到web中,并将Peergine中间件的API翻译成JavaScript的版本。

P2P中间件桥接程序是一个Web服务器和Peergine中间件集成的一个服务程序,目的是可以在浏览器端开发和运行P2P视频应用。简化开发流程,降低开发难度。尽可能的兼容更多的流览器。

通过对世面上常见的几款浏览器的分析,发现浏览器为了安全,将不再提供原生插件的用法,ActiveX也只支持IE,Chrome,火狐更是早就已经不再支持运行原生应用了。

所以我们开发P2P中间件桥接程序,web利用Http和WebSocket 访问P2P中间件桥接程序,P2P中间件桥接程序启动Peergine P2P实例,并利用webSocket返回回调信息。

这样简单的信息通信就可以做到了,其中还有就是视频的传输和播放问题,为了兼容更多的浏览器,我们让浏览器通过刷新图片的方式播放视频,P2P中间件桥接程序

注意:API调用是需要注意的点,API调用是其实是一个阻塞的过程,在中间件桥接程序不忙的时候可以很快返回,几乎感受不到卡顿,近似没有阻塞。但是一旦中间件桥接程序很忙,导致不能及时响应请求,就可能造成页面卡死崩溃。

注意:视频刷新是使用轮询的方式,和API请求是走的同一条通道,存在相互影响的可能,如果后台程序突然不能访问,无法响应请求,就会导致web页面卡死或者崩溃。

Peergine中间件的回调是通过WebSocket返回。Js执行阻塞有可能导致接收WebSocket的js代码不能执行。

关于浏览器最小化到后台说明

浏览器挂到后台后,经过测试发现Chrome的js不再执行,IE也有一些问题导致页面无法正常工作。P2P中间件桥接程序可能会因为无法与页面通信而销毁页面关联的Peergine实例。导致之后的操作出现异常,必须重新启动。

pgHtml5Bridge的结构。

PGHtml5Bridge有两部分组成:

一部分是Web的前端,这部分主要包含pgHtml5Bridge.js,以及一些其他Web页面。

另一部分是由Peergine中间件,HTTP服务器和WebSocket服务器组成的后端。

发布程序安装后的目录结构:

├─bin

│ └─res

├─DemoWeb

├─Doc

其中bin目录中包含服务程序和一些运行依赖的动态库。

DemoWeb目录中是前端的Demo代码。

Doc目录下是一些说明文档。

启动方式及区别。

运行安装MSI后自动安装成服务并自启动。

API的改动说明。

WndCreate

/*

功能:创建视频显示窗口,替代utilGetWndRect

参数:divId:web中布局标签的ID, sizeX视频的长 sizeY视频的宽

返回值:Wnd 的oml格式的字符串

阻塞方式:非阻塞

*/

this.WndCreate = function(divId, sizeX, sizeY);

WndDestroy

/*

功能:销毁视频显示窗口

参数:divId:web中布局标签的ID

返回值:无

阻塞方式:非阻塞

*/

this.WndDestroy = function(divId);

pgNewJSNode

/*

功能:创建pgLibJSNode(和IPGCPPNode,pgJNINode类似)

参数:sSession 回话ID,要求使用数字,使用同一个后端的WEB中不要有两个相同sSession的Node。

返回值:pgLibJSNode

阻塞方式:是

*/

function pgNewJSNode(sSession);

pgDeleteJSNode

/*

功能:删除pgLibJSNode

参数:无

返回值:无

阻塞方式:是

*/

function pgDeleteJSNode(sSession)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

WndCreate

/*

功能:创建视频显示窗口,替代utilGetWndRect

参数:divId:web中布局标签的ID, sizeX视频的长 sizeY视频的宽

返回值:Wnd 的oml格式的字符串

阻塞方式:非阻塞

*/

this.WndCreate=function(divId,sizeX,sizeY);

WndDestroy

/*

功能:销毁视频显示窗口

参数:divId:web中布局标签的ID

返回值:无

阻塞方式:非阻塞

*/

this.WndDestroy=function(divId);

pgNewJSNode

/*

功能:创建pgLibJSNode(和IPGCPPNode,pgJNINode类似)

参数:sSession 回话ID,要求使用数字,使用同一个后端的WEB中不要有两个相同sSession的Node。

返回值:pgLibJSNode

阻塞方式:是

*/

functionpgNewJSNode(sSession);

pgDeleteJSNode

/*

功能:删除pgLibJSNode

参数:无

返回值:无

阻塞方式:是

*/

functionpgDeleteJSNode(sSession)

升级日志。

序号修改说明版本

1V0.2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值