阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

评论

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

架构师训练营 第3期 第5周 作业和总结

ihiming

TypeScript | 第七章:配置文件说明

梁龙先森

typescript 大前端 编程语言 七日更

架构训练营第九周作业

一期一会

微服务 dubbo

第 10 周 系统架构作业

心在那片海

第十周总结

孤星

冰河是谁?到底是干嘛的?

冰河

程序员 程序人生 架构师 冰河 冰河技术

训练营第十周作业

大脸猫

极客大学架构师训练营

Code Review实践

Albert

Code Review 七日更

第八周-学习总结

Mr_No爱学习

架构师训练营第二期 Week 10 作业

bigxiang

极客大学架构师训练营

架构师训练营 - 大作业一

lucian

wildfly 21中应用程序的部署

程序那些事

程序那些事 wildfly wildfly21 应用程序部署 应用程序配置

行业寒冬:程序员怎样优雅度过35岁中年危机?跳槽薪资翻倍

欢喜学安卓

android 程序员 面试 移动开发

训练营第十周总结

大脸猫

极客大学架构师训练营

第十周作业

hunk

极客大学架构师训练营

第 10 周作业

Steven

架构师训练营第二期 Week 10 总结

bigxiang

极客大学架构师训练营

《Python数据科学:关于使用Python处理数据需要了解的终极指南》PDF免费下载

计算机与AI

Python 数据科学

第五章学习总结

简简单单

讲的真透彻!Android开发了解这些自然无惧面试,成功入职阿里

欢喜学安卓

android 程序员 面试 移动开发

工具词典:数据

lidaobing

数据 28天写作

Dubbo 微服务调用过程

梧桐

架构师训练营第十四周课程笔记及心得

Airs

Week10 作业

evildracula

第十周作业

孤星

计算机专业必看!记录一次腾讯Android岗面试笔试总结,讲的明明白白!

欢喜学安卓

android 程序员 面试 移动开发

提问开启创新-激发团队创新的提问法

Alan

个人成长 创新 团队文化 七日更 28天写作

Week 10 模块分解

evildracula

学习 架构

第八周-作业1

Mr_No爱学习

第 10 周 系统架构总结

心在那片海

NO.002-Java并发编程之多核硬件架构

葛一凡

操作系统 设计原则 硬件架构

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