音频源数据处理状态,通过 BufferSourceAudioTrack.on("source-state-change") 获取。
"stopped": 音频源数据处理停止。可能是因为数据处理完毕,也可能是手动触发了停止。"playing": 音频源数据正在处理。"paused": 音频源数据暂停处理。<video> 标签的可见状态信息。
可通过以下方法或事件获取:
包含以下字段:
visible: Boolean 型,<video> 标签是否可见。reason: 仅当 visible 为 false 时有效,不可见原因:"SIZE": <video> 尺寸太小,导致 <video> 完全不可见或很难看到。"STYLE": <video> 或其祖先元素的 CSS 样式导致 <video> 不可见、颜色暗淡或模糊不清。"POSITION": <video> 或其祖先元素被定位到视口区域外,导致 <video> 只有小面积区域在视口内或全部不在视口内。"COVERED": <video> 被其他元素遮挡。用户角色。
"host": 直播场景中的主播,可以发布和订阅音视频轨道。"audience": 直播场景中的观众,只能订阅,不能发布音视频轨道。SDK 和声网服务器的连接状态,可以通过 connectionState 获取。
SDK 和服务器有以下 5 种连接状态:
采集设备当前的插拔状态。
"ACTIVE": 该设备已经插入。"INACTIVE": 该设备已经被拔出。加密方案,在调用 setEncryptionConfig 时使用。包含以下几种:
"aes-128-xts": 128 位 AES 加密,XTS 模式。"aes-256-xts": 256 位 AES 加密,XTS 模式。"aes-128-gcm": 128 位 AES 加密,GCM 模式。"aes-256-gcm": 256 位 AES 加密,GCM 模式。"aes-128-gcm2": 128 位 AES 加密,GCM 模式,加盐。"aes-256-gcm2": 256 位 AES 加密,GCM 模式,加盐。"aes-128-ecb": 128 位 AES 加密,ECB 模式。"sm4-128-ecb": 128 位 SM4 加密,ECB 模式。"none": 不加密。混合云/私有化平台的配置参数。用于 setLocalAccessPointsV2 方法。
accessPoints:访问节点,包含以下属性:serverList:IP 地址列表或 hostname(主机名,用于指定 SDK 访问的 Agora SD-RTN™ 边缘节点)列表。domain:域名。如果传入的 serverList 为 IP 地址列表,SDK 会拼接传入的 IP 地址和 domain 生成 hostname 列表。此时 domain 用于指定 SDK 接入 Agora SD-RTN™ 的网关。port:(可选)端口号。如果传入,端口号会和 hostname 拼在一起。log:(可选)日志上传服务。包含可选属性 hostname 和 port。如果要设置日志上传服务,请确保你已经调用 enableLogUpload 开启 SDK 的日志上传功能。report:(可选)事件上报服务。默认关闭。包含可选属性 hostname 和 port。cds:预留参数,暂不支持。可选属性如果不填,将使用对应的默认值:
| 属性 | 默认值 |
|---|---|
log.hostname |
accessPoints 所包含的 hostname 列表中的第一个 |
log.port |
6444 |
report.hostname |
accessPoints 所包含的 hostname 列表中的前两个 |
report.port |
6443 |
accessPoints.port |
443 |
client.setLocalAccessPointsV2({
accessPoints: {
serverList:["192.168.1.1","192.168.2.2"],
domain: 'test.agora.io'
},
// 必须先调用 enableLogUpload,下面的日志服务设置才生效
log:{
hostname:"abc.com",
port: 3000
},
// 开启事件上报服务且使用默认值
report:{}
})
浏览器使用的编码格式,有以下两种选择:
"vp8": 浏览器使用 VP8 编码。"h264": 浏览器使用 H.264 编码。"h265": 浏览器使用 H.265 编码。"vp9": (Beta) 浏览器使用 VP9 编码。"av1": 预留,暂不可用。Safari 12.1 之前版本不支持 VP8 编码。
频道场景。
Agora Web SDK 需知道 app 的使用场景(例如通信模式或直播模式),从而使用不同的优化手段。
声网频道支持以下场景:
"live": 直播场景,有主播和观众两种用户角色,可以通过 setClientRole 方法设置主播和观众的角色。主播可以收发音视频流,而观众只能接收音视频流,无法发送。"rtc": 通信场景,用于常见的一对一通话或群聊,频道中的任何用户可以自由说话。SDK 预设的 VideoEncoderConfiguration 配置。
你可以在 AgoraRTC.createScreenVideoTrack 方法中传入以下预设值来控制屏幕共享视频编码配置。
下表列出了 SDK 所有预设的屏幕共享视频属性配置。
| 视频属性 | 分辨率(宽×高) | 帧率(fps) |
|---|---|---|
| "480p" | 640 × 480 | 5 |
| "480p_1" | 640 × 480 | 5 |
| "480p_2" | 640 × 480 | 30 |
| "480p_3" | 640 × 480 | 15 |
| "720p" | 1280 × 720 | 5 |
| "720p_1" | 1280 × 720 | 5 |
| "720p_2" | 1280 × 720 | 30 |
| "720p_3" | 1280 × 720 | 15 |
| "1080p" | 1920 × 1080 | 5 |
| "1080p_1" | 1920 × 1080 | 5 |
| "1080p_2" | 1920 × 1080 | 30 |
| "1080p_3" | 1920 × 1080 | 15 |
屏幕共享源的类型。
"screen": 共享屏幕。"application": 共享某一个 app 的所有窗口。"window": 共享某一个 app 的某一个窗口。用于标识用户的 ID。同一频道中每个用户都具有唯一的 ID,且数据类型相同。
为保证最佳的用户体验,声网强烈建议你不要使用字符串作为用户 ID。详见 join 方法中的说明。
SDK 预设的 VideoEncoderConfiguration 配置。
你可以在 AgoraRTC.createCameraVideoTrack 方法中传入预设的视频编码配置。
下表列出了 SDK 所有内置的视频属性配置,SDK 默认使用 "480p_1"。
| 视频属性 | 分辨率(宽×高) | 帧率(fps) | 码率(Kbps) | Chrome | Firefox | Safari |
|---|---|---|---|---|---|---|
| 120p | 160 × 120 | 15 | 65 | ✓ | ||
| 120p_1 | 160 × 120 | 15 | 65 | ✓ | ||
| 120p_3 | 120 × 120 | 15 | 50 | ✓ | ||
| 180p | 320 × 180 | 15 | 140 | ✓ | ||
| 180p_1 | 320 × 180 | 15 | 140 | ✓ | ||
| 180p_3 | 180 × 180 | 15 | 100 | ✓ | ||
| 180p_4 | 240 × 180 | 15 | 120 | ✓ | ||
| 240p | 320 × 240 | 15 | 200 | ✓ | ||
| 240p_1 | 320 × 240 | 15 | 200 | ✓ | ||
| 240p_3 | 240 × 240 | 15 | 140 | ✓ | ||
| 240p_4 | 424 × 240 | 15 | 220 | ✓ | ||
| 360p | 640 × 360 | 15 | 400 | ✓ | ||
| 360p_1 | 640 × 360 | 15 | 400 | ✓ | ||
| 360p_3 | 360 × 360 | 15 | 260 | ✓ | ||
| 360p_4 | 640 × 360 | 30 | 600 | ✓ | ||
| 360p_6 | 360 × 360 | 30 | 400 | ✓ | ||
| 360p_7 | 480 × 360 | 15 | 320 | ✓ | ||
| 360p_8 | 480 × 360 | 30 | 490 | ✓ | ||
| 360p_9 | 640 × 360 | 15 | 800 | ✓ | ||
| 360p_10 | 640 × 360 | 24 | 800 | ✓ | ||
| 360p_11 | 640 × 360 | 24 | 1000 | ✓ | ||
| 480p | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
| 480p_1 | 640 × 480 | 15 | 500 | ✓ | ✓ | ✓ |
| 480p_2 | 640 × 480 | 30 | 1000 | ✓ | ✓ | ✓ |
| 480p_3 | 480 × 480 | 15 | 400 | ✓ | ✓ | ✓ |
| 480p_4 | 640 × 480 | 30 | 750 | ✓ | ✓ | ✓ |
| 480p_6 | 480 × 480 | 30 | 600 | ✓ | ✓ | ✓ |
| 480p_8 | 848 × 480 | 15 | 610 | ✓ | ✓ | ✓ |
| 480p_9 | 848 × 480 | 30 | 930 | ✓ | ✓ | ✓ |
| 480p_10 | 640 × 480 | 10 | 400 | ✓ | ✓ | ✓ |
| 720p | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
| 720p_1 | 1280 × 720 | 15 | 1130 | ✓ | ✓ | ✓ |
| 720p_2 | 1280 × 720 | 30 | 2000 | ✓ | ✓ | ✓ |
| 720p_3 | 1280 × 720 | 30 | 1710 | ✓ | ✓ | ✓ |
| 720p_5 | 960 × 720 | 15 | 910 | ✓ | ✓ | ✓ |
| 720p_6 | 960 × 720 | 30 | 1380 | ✓ | ✓ | ✓ |
| 1080p | 1920 × 1080 | 15 | 2080 | ✓ | ✓ | |
| 1080p_1 | 1920 × 1080 | 15 | 2080 | ✓ | ✓ | |
| 1080p_2 | 1920 × 1080 | 30 | 3000 | ✓ | ✓ | |
| 1080p_3 | 1920 × 1080 | 30 | 3150 | ✓ | ✓ | |
| 1080p_5 | 1920 × 1080 | 60 | 4780 | ✓ | ✓ |
SDK 预设的 AudioEncoderConfiguration 配置。
你可以在以下方法中传入预设值来控制本地音频的编码配置:
下表列出了 SDK 所有内置的音频属性配置,SDK 默认使用
"music_standard"。"speech_low_quality""speech_standard""music_standard""standard_stereo""high_quality""high_quality_stereo"