NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

Ubuntu系统硬盘挂载详细教程。

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

网络命令ifconfig用法详解。

百度搜索:蓝易云

云计算 Linux 运维 网络 ifconfig

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

西柚子

从价值的角度看,为何 POSE 通证值得长期看好

西柚子

ubuntu系统使用vsftpd搭建FTP服务器。

百度搜索:蓝易云

Linux ubuntu 运维 vsftpd ftp

如何做好服务API的性能压力测试

唯美

性能 服务

金奖方案 | 一专多能、傲视寰宇,南大通用GBase8c数据库牛在哪里 #openGauss

daydayup

只凭阿里大牛珍藏的并发编程笔记,我拿下了30K offer!

小小怪下士

Java 编程 程序员 并发编程 高并发

从价值的角度看,为何 POSE 通证值得长期看好

大瞿科技

Docker基础和常用命令详解。

百度搜索:蓝易云

Docker 云计算 Linux 运维 云服务器

HDC2023|余承东:元服务将卡片式体验带给消费者,加速鸿蒙生态的繁荣

最新动态

JDK中「SPI」原理分析

Java 架构 jdk spi

openGauss —— 智能优化器之基数估计

daydayup

服务端apk打包教程

越长大越悲伤

Java 服务端打apk包

Centos7配置webrtc-streamer环境教程。

百度搜索:蓝易云

云计算 Linux 运维 WebRTC streamer

数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践

daydayup

鸿蒙生态星河璀璨 | 老程序员让HarmonyOS创新从“心”开始

最新动态

openGauss内核分析(二.二):简单查询的执行

daydayup

多家合作伙伴与华为终端云服务签约 全面合作共建鸿蒙服务分发新生态

最新动态

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

大瞿科技

如何在CentOS7上搭建自己的GitLab仓库详解?

百度搜索:蓝易云

云计算 Linux centos gitlab 运维

贝业新兄弟:企业级应用在供应链物流领域的实践

明道云

Go 介绍

小万哥

Go golang 编程语言 跨平台 后端开发

openGauss内核分析(二.一):简单查询的执行

daydayup

openGauss数据库从3.0.0升级到3.1.0操作实践

daydayup

观测,让运维更简单!龙蜥社区系统运维 MeetUp 等你报名

OpenAnolis小助手

操作系统 系统运维 ebpf Meetup 龙蜥社区

openGauss的SQL引擎在3.1.0版本中做了哪些优化?

daydayup

openGauss赋能企业核心场景应用 | 华为全联接大会2022专题回顾

daydayup

华为负一屏全新体验,实时状态让服务快人一步

最新动态

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

股市老人

openGauss内核荣获中国首个国际CC EAL4+级别认证

daydayup

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