写点什么

用这个开源工具,提前为你的 WebRTC 应用排个雷(一)

  • 2019-11-30
  • 本文字数:1012 字

    阅读完需:约 3 分钟

用这个开源工具,提前为你的 WebRTC 应用排个雷(一)

这样的情况,基于 WebRTC 开发产品的你是不是也曾遇到过?


一个基于 WebRTC 的视频通话是否能成功建立起来,直接影响它的不一定是代码质量、服务端稳定性,还可能是用户端那些你难以察觉的软硬件兼容性问题,还有谜一样的用户操作。但用户却不会管那么多。他们的第一反应绝对是“你这个应用有 Bug 啊!”


我们声网的工程师们也曾一度为之困扰。直到,他们自己写了个 Troubleshooting 小工具。现在这个小工具开源了。它不仅适用于 Agora 开发者,同样适用于 WebRTC 开发者和他们的用户。

Agora WebRTC Troubleshooting

这个工具可以运行于 PC 端浏览器和手机端浏览器,可以帮助你自动检测设备浏览器是否能正常运行 WebRTC 应用。可检测的项目包括:


  • 浏览器兼容性

  • 麦克风录音是否正常

  • 扬声器播放是否正常

  • 目前设备可支持哪些分辨率

  • 网络连接及当前网络下的音视频码率、丢包率

  • 摄像头(用户可选)


测试工具地址在这里,可以给自己的浏览器做做“体检”:https://webdemo.agora.io/agora_webrtc_troubleshooting/


这个小工具使用起来很简单,可以说老少咸宜,只需要按照页面提示一步步操作即可。为了大家直观了解使用方法,我们还是录了一个 2 分钟的小视频。


如果你是基于 WebRTC 开发应用的独立开发者,可以让你的用户通过这个 Web demo 地址测试以上项目。只不过,在测试“网络连接”这一项时,该工具是测试用户端与 Agora 服务端的网络连接状态与丢包情况,仅此测试项可能会与未集成 Agora SDK 的 WebRTC 应用的实际体验不同。


如果你是 Agora 开发者,那么你还可以更进一步,可以基于源代码修改出一份适用于自己 App 的测试工具,还可以将它集成到产品中。我们已经有部分 Agora 开发者这么去做了。下面,我们简单讲解一下源代码,并告诉你如何修改。

代码原理解析

测试工具中调用了多个 Agora SDK 接口,例如通过 AgoraRTC.checkSystemRequirements 接口来检测浏览器兼容性;利用 stream.getStats 来获取网络连接状态数据;使用 stream.getAudioLevel 来检测当前的音量等。开发者也可以在自己的应用中,利用起这些接口,将相应功能加入到产品中。

浏览器兼容性

这里使用了 Agora Web SDK 的 AgoraRTC.checkSystemRequirements 接口来自动检测浏览器是否支持当前的语音、视频通话。


/** whether your browser fully supports Agora Web SDK */AgoraRTC.checkSystemRequirements(): boolean/** * some browser info got from * object `navigator` in BOM */navigator.appVersionnavigator.appName
复制代码


2019-11-30 22:381146

评论

发布
暂无评论
发现更多内容

腾讯安全领御区块链与张裕集团达成战略合作,打造高端葡萄酒区块链溯源平台

CECBC

产品溯源 无法篡改

我收集的 3 个企业经营“失败”案例

霍太稳@极客邦科技

密码朋克的社会实验(三):比特币发明了什么

腾讯安全云鼎实验室

比特币 区块链 密码学

JVM系列:通过一个例子分析JIT的汇编代码

简爱W

助力银行核心下移,监控分布式数据库,融天鹰眼轻松应对五大挑战

DT极客

并发编程基础原理

刚刚🏂

机器学习基石第二节 学习笔记

Geek_4z9ami

Machine Learning

如何进行需求梳理及埋点方案设计

易观大数据

秒杀系统

俊俊哥

秒杀

职场求生攻略答疑篇之 2 —— 无所适从的向上沟通

臧萌

新技术(区块链)--让游戏行业走的更远

CECBC

区块链技术 防篡改不可逆

Java异步之《我call(),Future在哪里》

BUZHIDAO

Springboot拦截器使用及其底层源码剖析

南方有乔木兮

一年多远程工作经验,说说真实的感受

盛安德软件

(政务上链)新数据孤岛、安全风险等问题待解

CECBC

工作效率 公开透明 新技术

零代码可视化开发平台iVX是什么?

代码制造者

编程语言 可视化 零代码 iVX

机器学习基石第五节 学习笔记

Geek_4z9ami

Machine Learning

机器学习基石第三节 学习笔记

Geek_4z9ami

Machine Learning

机器学习基石第四节 学习笔记

Geek_4z9ami

Machine Learning

继oneAPI之后,英特尔为异构计算跨架构编程再添“利器” 发布全新机器编程系统

最新动态

ARTS打卡Week 09

teoking

webRTC框架下的视频主动丢帧

fumingwang

音视频 WebRTC

Go: 并发访问 Map — Part III

陈思敏捷

并发 map sync Go 语言

Java七种排序算法以及实现

狸猫换太子

Java 排序算法 实现

IDEA 插件找不到?看这里!那就自己敲一个!

程序员小航

json IDEA 开发工具 idea插件 IntelliJ IDEA

Android Development最佳实践

teoking

信创舆情一线--抖音、微信读书被判侵害用户个人信息权益

统小信uos

数据结构与算法之排序

shirley

排序算法

LeetCode题解:189. 旋转数组,使用新数组Copy,JavaScript,详细注释

Lee Chen

大前端 LeetCode

机器学习基石第一节 学习笔记

Geek_4z9ami

Machine Learning

【写作群星榜】7.24~7.31 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

用这个开源工具,提前为你的 WebRTC 应用排个雷(一)_文化 & 方法_声网_InfoQ精选文章