Agora Web SDK NG

Agora Web SDK NG

  • 文档
  • API
  • 迁移文档
  • Demos
  • Github
  • 版本
  • Languages icon中文
    • English

›体验提升

发版记录

  • Release Note

入门

  • 概览
  • 集成 SDK
  • 实现基本通话
  • 加入/离开频道
  • 创建本地轨道对象
  • 发布和订阅

音频管理

  • 调整通话音量
  • 设置音频属性
  • 播放音效/混音
  • 自定义音频采集

视频管理

  • 设置视频属性
  • 清晰优先和流畅优先
  • 美颜
  • 屏幕共享
  • 自定义视频采集

高级媒体流管理

  • 七人以上视频场景
  • 跨直播间连麦
  • 推流到 CDN
  • 输入在线媒体流
  • 使用云代理
  • 媒体流加密

设备管理

  • 音视频设备测试/切换

体验提升

  • 通话中质量监测
  • 视频流回退

通话中质量监测

功能描述

Agora Web SDK NG 支持获取以下统计数据来检测通话质量:

  • 当前会话的统计数据
  • 本地轨道的统计数据
  • 远端轨道的统计数据
  • 本地用户的上下行网络质量相关的统计数据
  • 频道内的异常事件

实现方法

在开始前,请确保已在你的项目中实现基本的实时音视频功能。详见实现音视频通话。

获取本地用户的上下行网络质量相关的统计数据

本地用户加入频道后,SDK 通过 AgoraRTCClient.on 中的 network-quality 回调向 app 报告本地用户的上下行网络质量。该回调每 2 秒触发,返回的参数包括:

  • downlinkNetworkQuality:下行网络质量打分。
  • uplinkNetworkQuality:上行网络质量打分。

质量打分对照表如下:

分数说明
0网络质量未知。
1网络质量极好。
2用户主观感觉和极好差不多,但码率可能略低于极好。
3用户主观感受有瑕疵但不影响沟通。
4勉强能沟通但不顺畅。
5网络质量非常差,基本不能沟通。
6完全无法沟通。

以下示例代码中的 client 是指通过 AgoraRTC.createClient 创建的本地客户端对象。

client.on("network-quality", (stats) => {
    console.log("downlinkNetworkQuality", stats.downlinkNetworkQuality);
    console.log("uplinkNetworkQuality", stats.uplinkNetworkQuality);
});

我们推荐您使用此 API 来展示本地用户的网络状态

获取当前会话的统计数据

调用 AgoraRTCClient.getRTCStats 方法获取与当前会话相关的统计数据。数据说明详见 AgoraRTCStats。

以下示例代码中的 client 是指通过 AgoraRTC.createClient 创建的本地客户端对象。

const stats = client.getRTCStats();

获取本地音视频轨道的统计数据

调用 LocalAudioTrack.getStats 和 LocalVideoTrack.getStats 方法获取本地发布的音频轨道和视频轨道的统计数据,数据说明详见 LocalAudioTrackStats 和 LocalVideoTrackStats。

const audioTrackStats = localAudioTrack.getStats();
const videoTrackStats = localVideoTrack.getStats();

获取远端音视频轨道的统计数据

调用 RemoteAudioTrack.getStats 和 RemoteVideoTrack.getStats 方法获取订阅的远端音频轨道和视频轨道的统计数据,数据说明详见 RemoteAudioTrackStats 和 RemoteVideoTrackStats。

const audioTrackStats = remoteAudioTrack.getStats();
const videoTrackStats = remoteVideoTrack.getStats();

关注频道内的异常事件

Agora Web SDK NG 通过 AgoraRTCClient.on 中的 exception 回调通知 App 频道内的异常事件。异常事件不是错误,但是往往会引起通话质量问题。发生异常事件后,如果恢复正常,也会收到该回调。该回调返回:

  • code:事件码。
  • msg:提示消息。
  • uid:发生异常或恢复的用户 UID。

以下示例代码中的 client 是指通过 AgoraRTC.createClient 创建的本地客户端对象。

client.on("exception", function(evt) {
  console.log(evt.code, evt.msg, evt.uid);
})

每个异常事件都有对应的恢复事件,详见下表:

开发注意事项

上述所有方法必须在成功加入频道之后调用。

← 音视频设备测试/切换视频流回退 →
  • 功能描述
  • 实现方法
    • 获取本地用户的上下行网络质量相关的统计数据
    • 获取当前会话的统计数据
    • 获取本地音视频轨道的统计数据
    • 获取远端音视频轨道的统计数据
    • 关注频道内的异常事件
  • 开发注意事项
Agora Web SDK NG
Docs
Getting StartedAPI ReferenceAgora.io
More
GitHubStar
Copyright © 2020 Agora