当前位置:网站首页>用PPAPI插件技术在Web上显示会议视频、桌面、PPT等
用PPAPI插件技术在Web上显示会议视频、桌面、PPT等
2022-08-04 05:32:00 【睏哥RTC】
Widows下桌面程序C++界面开发一直是个痛苦的事情,无论是Qt,DirectUI,electron,CEF都面临着分发困难问题,而且面临着运行环境千变万化,总有些机器上跑起来有问题,因此大多数能用web做的东西都已经转向web实现,但是web实现还是有很多限制,很多系统原生API无法使用。
比方说现在要开发一套视频上课软件,课件用的是H5开发的互动课件,老师学生要互相看到视频,传统的做法可能是QT做一个框架,课件部分用QT的Webengine加载显示,视频显示部分用原生C++开发显示,这就导致系统很不灵活,视频和课件割裂,比如想在课件里一个画框里显示老师的视频,让课件更有趣,用这个技术就没法做到了。
为解决这个问题,此外抛弃QT庞大的框架,让老师直接打开浏览就能上课,我们采用了PPAPI插件内嵌到Web页面的方式实现,下面是结构图:
PPAPI模块关系图
自定义插件要被chome加载,必须在启动chrome时用命令行参数传入,这样就可以开发一个无界面的程序,界面全部用Web实现,减少C++程序员的大量工作,可以建立一个桌面快捷方式,启动后台程序,后台程序可以检查系统有没有安装chrome,若没有下载安装,若存在,启动chrome并将插件传入到chrome。
启动chrome样例:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --register-pepper-plugins="E:\SvnWork\PPApiPlugin\demo\media_stream_video.dll#ppexample##1.0.0;application/x-ppapi-kkvideo-preview" file:///E:\SvnWork\PPApiPlugin\demo\media_stream_video.html
下面代码是在ppapi插件样例VarArrayBuffer基础上的关键修改:
共享内存读取
刷帧过程
---------------------------------------------------------------------------------------------
原创文章,带点个人作品小广告,勿怪勿怪: “证爱网,见证爱”。
情侣之间,家庭成员之间,欢迎光临本店购买证爱礼物>>>
边栏推荐
- MNIST handwritten digit recognition, sorted by from two to ten
- Deep Learning Theory - Initialization, Parameter Adjustment
- 安装Apache服务时出现的几个问题, AH00369,AH00526,AH00072....
- 结构体传参-C语言
- MNIST Handwritten Digit Recognition - Lenet-5's First Commercial Grade Convolutional Neural Network
- file editor
- Golang environment variable settings (2)--GOMODULE & GOPROXY
- [daily office][ssh]cheatsheet
- Implementation of CAS lock-free queue
- 虚幻引擎 5 完整指南[2022六月最新课程学习内容]
猜你喜欢
Thunderbolt turns off automatic updates
LeetCode_Dec_2nd_Week
Socket编程详解
LeetCode_Nov_5th_Week
Fabric v1.1 environment construction
管道重定向
LeetCode_Dec_3rd_Week
AWS使用EC2降低DeepRacer的训练成本:DeepRacer-for-cloud的实践操作
makefile基础学习
MNIST Handwritten Digit Recognition - Lenet-5's First Commercial Grade Convolutional Neural Network
随机推荐
抽象类、内部类和接口
LeetCode_Nov_2nd_Week
第三章 标准单元库(下)
MNIST handwritten digit recognition - based on Mindspore to quickly build a perceptron to achieve ten categories
MVC自定义配置
C语言静态变量static的分析
多线程顺序输出
位段-C语言
LeetCode_Nov_4th_Week
Copy Siege Lion's Annual "Battle" | Review 2020
No matching function for call to 'RCTBridgeModuleNameForClass'
Miscellaneous [development] [VS Code] remote - SSD retry failed
【独立游戏体验计划】学习记录
IDEA创建Servlet步骤
Treating as key frame since WebRTC-SpsPpsIdrIsH264Keyframe is disabled 解决
库函数的模拟实现-C语言
Shell脚本执行的三种方式
题目1000:输入两个整数a和b,计算a+b的和,此题是多组测试数据
安装pyspider后运行pyspider all后遇到的问题
华为鲲鹏arm服务器下使用webrtc和boost踩坑记--编译篇