写点什么

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

评论

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

2024年DeFi的四大主导趋势:Restaking、Layer3、AI和DePin

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

TiDB 社区智慧合集丨解码 TiDB 性能谜题:让你的数据库发挥最强动力!

PingCAP

数据库 TiDB

数据库性能优化入门:数据库分片初探

PingCAP

数据库 TiDB

常态化降本增效,陌陌生产服务成本治理实践

童子龙

降本增效 基础架构 FinOps

《剑指Offer(专项突破版):数据结构与算法名企面试题精讲》PDF

程序员李木子

产品经理 学习路线

执于业务

京东jd.item_get API助力,一键获取商品详情,打造专业级购物体验

技术冰糖葫芦

API API 类型

再质押的Eigenlayer 现在参与来得及吗

币离海

EigenLayer

java内存篇:内存对象有多胖?

码农楠爸

事业-最佳实践-编码-保持代码简洁

南山

代码质量 KISS YAGNI 代码简洁

唐刘:关于产品质量的思考 - 我的基本认知

PingCAP

数据库 TiDB

Consensus Cash or A Gift Card?

Echo!!!

Expression English

产品经理互怼放大招(god bless !Duel, Orcs)

执于业务

企业架构设计原则之因素均衡性

凌晞

架构设计 架构设计原则 企业构架

物联网业务架构模式

执于业务

物联网架构

执于业务

支付系统概述(四):收单系统

agnostic

支付系统设计与实现

事业-最佳实践-编码-源代码方法组织

南山

最佳实践 编码 代码组织

事业-最佳实践-编码-代码质量标准

南山

代码质量 代码可读性 #可维护性 #可测试性 可复用性

事业-最佳实践-编码-程序错误处理

南山

最佳实践 异常处理 程序错误

Python面试必备一之迭代器、生成器、浅拷贝、深拷贝

Hunter熊

Python 迭代器 深拷贝 浅拷贝 生成器

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