写点什么

用这个开源工具,提前为你的 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:381114

评论

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

陌陌和它的解药,聊聊出海社交产品的思路

拍乐云Pano

社交APP出海 社交APP 泛娱乐出海

深耕与构建:华为数字能源的立体版图

脑极体

WebRTC是如何设置视频编码偏好的?

liuzhen007

音视频 引航计划 领航计划

千万级学生管理系统的考试试卷存储方案

Sky

架构训练营

linux之软连接和硬连接的区别

入门小站

Linux

Base64编码对照表

入门小站

工具

如何设计高可用高性能架构

眼镜盒子

架构实战营

设计千万级学生管理系统的考试试卷存储方案

Yina🌝很浪🌊

模块四作业-考试试卷存储设计

potti

架构实战营

消息队列:Kafka Consumer源码解读

正向成长

kafka

阿里大牛再写传奇:并发原理JDK源码手册GitHub下载量已破百万

Java 编程 架构 面试 程序人生

网络攻防学习笔记 Day148

穿过生命散发芬芳

等级保护 9月日更

连锁便利店:夕阳产业还是明日之星

石头IT视角

时间转换不在变bug

卢卡多多

时间戳 时间转换 9月日更

被阿里奉为神册!2021公认最权威的分布式微服务指导手册

Java 架构 面试 程序人生 编程语言

阿里IM技术分享(四):闲鱼亿级IM消息系统的可靠投递优化实践

JackJiang

架构设计 即时通讯 IM

2021年金九银十必问的1000道Java面试题及答案整理

Java 架构 面试 程序人生 编程语言

2021西部云安全峰会召开:“云安全优才计划”发布,腾讯云安全攻防矩阵亮相

腾讯安全云鼎实验室

云安全 峰会

J2PaaS低代码开源版,10月1号即将上线,企业数字化转型优选!

J2PaaS低代码平台

低代码 零代码 开发工具

架构实战营 设计千万级学生管理系统的考试试卷存储方案

💤 ZZzz💤

架构实战营

模塊九 畢業設計

孫影

架构实战营 #架构实战营

千万级学生管理系统的考试试卷存储方案

毛先生

极客时间架构实战营作业四

jjn0703

架构实战营

阿里藏经阁天花板:高性能Java架构核心原理手册,一定要偷偷看

Java 编程 架构 面试 程序人生

架构实战营-模块四作业

南山先生

「架构实战营」

模块4作业

4anonymous

喜讯 | 拍乐云创始人赵加雨荣获「2021企业数智化转型升级先锋人物」奖

拍乐云Pano

音视频 数智化

阿里资深架构师整理分享全套Java核心技术面试题及答案

Java 编程 架构 面试 程序人生

java 虚拟机 GC 学习笔记三

风翱

GC 9月日更

26. 自动驾驶的六个级别

Databri_AI

人工智能

Prometheus 2.28.0 新特性

耳东@Erdong

Prometheus 9月日更 relaese

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