cordova使用webrtc与网页端及移动端视频、语音聊天
最近在做一个移动端与移动端、网页端文字、视频、语音聊天的功能。文字聊天使用websocket,在网上很多资料,也没什么难度。但是在视频、语音聊天上遇到了小小的难点。之前一直在找一些SDK想快速开发,例如opentok、云通讯等,但是项目的使用环境是内网,这些SDK必须要在外网情况下才能使用,需要在他们的服务器上获取信令。后来就想办法自己用webrtc做一个视频语音聊天,因为已经用了websocket了。在webrtc的官网,看源码安卓有3G多,编译后差不多9G,直接吓尿了。就算写了插件给cordova,这个APP也会很大。然后就想直接通过web来实现整个过程,下面记录下问题解决的过程。
1.阅读谷歌WebRTC官方英文文档,了解WebRT总体框架以及工作流程。阅读部分官方托管在githu的源码,确定前端与后台实现方案。
2.编写视频、语音聊天后台,使用Nodejs作为服务端,完成了频道登录、信令交换、通道建立等功能的代码编写。并完成了客户端登录请求、信令发送、信令保存、通道建立、摄像头及麦克风调用代码的编写。通过web端测试通过,但安卓4.0-4.4全部无法使用。
3.通过VPN访问被封的google浏览器开发者网站,查询chrome的WebRTC开发文档,发现只有26版本的WebView才支持WebRTC。通过安卓5.0成功在系统内置浏览器中调用了摄像头与麦克风,并与Web端进行了通信。但在Cordova项目中无法弹出授权窗口,导致视频显示一片漆黑。
4.通过写入安卓权限,成功在5.0的系统中通过Cordova调用系统WebRTC内核实现视频语音聊天。但对系统版本要求较高,兼容性差,但是5.0系统刚出几个月,普及面小且占用内存更大,因此继续寻找更好的方案。
5.在外国网站上查阅了大量资料,最后开始尝试提取安卓5.0的WebView内核,并成功移植到项目中,使得cordova项目脱离安卓系统本身的WebView,直接使用移植来的WebView,成功在安卓4.0-5.0所有平台上成功完成视频、语音聊天,并测试通过。至此,移动端与web端的视频、语音聊天功能Demo完成。
此博客不再维护,已经转CSDN。最后内核问题,很多人问,这个都是的几年前写的了,现在应该不存在了,如果还需要在4版本上做,可以使用crosswork插件,直接替换cordova安卓内核即可,比我当年方便多了。
cordova使用webrtc与网页端及移动端视频、语音聊天的更多相关文章
- 对接网易云信音视频2.0呼叫组件集成到vue中,实现web端呼叫app,视频语音通话。
项目中需要实现视频通话功能,经过公司的赛选,采用网易云信的视频通话服务,app小伙伴集成很顺利.web端需要实现呼叫app端用户.网易云信文档介绍不全,vue的demo满足不了需求,和客服人员沟通,只 ...
- WebRtc(网页即时通讯技术)知识点总结
前言 WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,简而言之它是一个支持网页浏览器进行实时语音对话或视频对话的技术.并且还支持跨平台:window ...
- 【Javascript Demo】移动端访问PC端网页时跳转到对应的移动端网页
不想通过CSS自适应在PC端和移动端分别显示不同的样式,那么只能通过在移动端访问PC端网页时跳转到对应的移动端网页了,那么怎么跳转呢,网上也有很多文章说明,下面是本人测试有效的方式. 1.效果图 PC ...
- webRTC视频通话,https协议,录制端和播放端
最近做视频直播模块,在网上也看到很多大神写的代码,写的都不错,但不是我想要的,有的可能比较老,不支持https协议,有的又将直播端和显示端放在一个程序中,不利于我使用,则本篇着重添加了https协议( ...
- 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)
最近公司官网需要使用视频当做banner背景且自动播放,并且因为是官网需要做到PC端和移动端都可以适配兼容,这些问题很是头疼: 兵来将挡,水来土掩,进过查阅相关技术资料,现已完美兼容PC端和移动端.下 ...
- EasyNVR摄像机网页无插件直播方案H5前端构建之:如何区分PC端和移动端
背景分析 随着互联网基础设施建设的不断完善和发展,带宽的不断提速,尤其是光纤入户,4G/5G/NB-IoT各种网络技术的大规模商用,视频随时随地可看.可控的诉求越来越多,尤其是移动应用技术和前端技术的 ...
- 如何直接在 PC 端获取其它端设备的 UserAgent 信息呢?
如何直接在 PC 端获取其它端设备的 UserAgent 信息呢 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5909615.html 序 希望收 ...
- js判断游览器是移动端还是PC端
js判断网页游览器是移动端还是PC端 <script type="text/javascript"> function browserRedirect() { var ...
- 如何解决PC端和移动端自适应问题?
做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结 ...
随机推荐
- PPT汇报 评审表
评审表 团队编号 团队名称 团队项目名称 格式评审 内容评审 PPT评审 演讲评审 优点 存在问题(至少提3点) 建议 01 牛肉面不要牛肉不要面 02 正义联盟 我是一个图书小平台 03 什么队 & ...
- [故障引起的故事]URL中带加号的处理
问题起因: 客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取coo ...
- C#中导出EXCEL服务器端不用安装OFFICE
在实际开发过程中,有时候服务器端没安装OFFICE,你和服务器管理员去商量安装个OFFICE的时候,管理员很倔犟的不给你安装的时候,这个时候就可以考虑我这个方法是实现导出EXCEL了.如果你导出的EX ...
- XML与HTML
一.什么是HTML 带着疑问走到这里,一句话:HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言. 如果想了解更多请看以下博客: http://blog. ...
- express + mongodb 搭建一个简易网站 (四)
express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...
- linux 配置Tomcat开机启动
一台安装有tomcat的linux服务器 方法/步骤 1 请自行下载安装配置tomcat的服务器环境 本经验仅仅介绍如何配置tomcat的开机自动启动 2 切换到tomcat/bin目录下 用vi ...
- 使用httplib打开链接
[使用httplib打开链接] urllib打开网页时,不会自动跳转,而http会自动跳转,所以使用httplib去打开链接,以获取内容. 参考:https://docs.python.org/2.7 ...
- SJY摆棋子&&[Violet 3]天使玩偶
SJY摆棋子 https://www.lydsy.com/JudgeOnline/problem.php?id=2648 [Violet 3]天使玩偶 https://www.lydsy.com/Ju ...
- C++,坑...
如果使用const全局变量,记得声明处的引用处都加extern. uint32_t等,t代表是typedef的,在stdint.h头文件里,C99后引入,记得先测试再用. accept函数的参数,记得 ...
- python模块之time模块
import time #从1970年1月1号凌晨开始到现在的秒数,是因为这一年unix的第一个商业版本上市了,这个最常用# print(time.time()) # 1491574950.23983 ...