删除房间推流任务。
推流任务 ID。
销毁客户端对象。
获取当前通话信息。
用户输入的频道名。
频道ID,可用于服务端API调用。
用户输入的token。
用户输入的id。当用户输入的uid为0时,则可获取服务端随机分配的uid。
主动获取网络连接状态。
推荐用于以下场景:
SDK 与服务器的连接状态,共有以下 4 种:
DISCONNECTED
:网络连接断开。该状态表示 SDK 处于:CONNECTING
:建立网络连接中。该状态表示 SDK 处于:CONNECTED
:已连接。该状态表示用户已经成功加入房间,可以在房间内发布或订阅媒体流。
DISCONNECTING
:正在断开连接。
获取本地发布流的音频统计数据。
获取本地发布流的视频统计数据。
媒体流类型。"video"为视频流,"screen"为屏幕共享流。如不填,则一起返回
获取远端订阅流的音频统计数据。
获取远端订阅流的视频统计数据。
媒体流类型。"video"为视频流,"screen"为屏幕共享流。默认为"video"。
获取与会话的连接状况统计数据。
获取系统电量信息。
获取与网关的连接状况统计数据。
获取本地用户 ID。
如果在 join 方法中指定了 uid,此处会返回指定的 ID; 如果未指定 uid,此处将返回云信服务器自动分配的 ID。
加入房间。
加入房间时,如果指定房间尚未创建,云信服务器内部会自动创建一个同名房间。
调用该方法加入房间时,本地会触发 Client.on("connection-state-change") 回调;通信场景下的用户和直播场景下的主播角色加入房间后,远端会触发 Client.on("peer-online") 回调。
房间相关设置。
错误码包括:
错误码(code) | 错误原因(reason) | 说明 |
---|---|---|
403 | netcall.g2 unsafe mode is closed, please contact business! | 安全模式下未设置 Token。请通过服务端 getToken 接口获取 NERTC Token,并在加入房间时传入。如果您仍处于测试阶段,可以在控制台切换应用为调试模式,调试模式下加入房间时无需设置 Token。 |
414 | check checksum error | 鉴权失败。通常原因为加入房间时设置的 Token 错误。 |
离开房间。
调用该方法离开房间时,本地会触发 Client.on("connection-state-change") 回调;通信场景下的用户和直播场景下的主播角色离开房间后,远端会触发 Client.on("peer-leave") 回调。
本地用户的角色已改变回调。
直播场景下,当用户角色切换时会触发此回调,即主播切换为观众,或观众切换为主播时。
改变后的角色。
远端用户发布了音视频流。
应用已接收远端音视频流。
远端用户发布的一路音视频轨道被订阅之后,会触发此回调。
应用已删除远端音视频流。
远端用户调用 Client.unpublish 方法之后,会触发此回调。
该事件会返回当前房间内音量最大的用户的 uid。
音量最大的用户的 uid。
该事件会返回当前房间内的用户及音量。
用户音量。
用户 ID。
该事件表示有远端用户或主播加入房间。
以下场景中会触发该回调:
远端用户或主播角色的用户 ID。
该事件表示远端用户或主播角色离开房间。
以下场景中会触发该回调:
远端用户或主播角色的用户 ID。
该事件表示远端用户静音其音频,即关掉自己的声音。
远端用户 ID。
该事件表示远端用户取消静音,即打开自己的声音。
远端用户 ID。
该事件表示远端用户在视频通话中关掉自己的视频。
远端用户 ID。
该事件表示远端用户在视频通话中打开自己的视频。
远端用户 ID。
该事件表示远端用户暂停屏幕共享。
远端用户 ID。
该事件表示远端用户继续屏幕共享。
远端用户 ID。
该事件表示本地用户被踢出房间。
远端用户 ID。
该事件表示房间已关闭。
该事件表示本地用户停止屏幕共享。
该事件表示本地用户停止屏幕共享音频。
该事件表示 SDK 与服务器的连接状态发生了变化。
变化后的状态。
变化前的状态。
客户端遇到错误。错误类型包括:
客户端遇到警告。可能有:
警告码。
原因。
音频轨道结束。造成的原因可能是设备被拔出。
视频频轨道结束。造成的原因可能是设备被拔出。
该事件表示推流状态发生了变化。
该事件展示房间中所有成员的上下行网络质量。
该事件展示了目前房间内的异常事件。
异常事件不是错误,但是往往会引起通话质量问题。
该回调表示本地设置的媒体流加密密钥与房间中其他成员不一致,加入房间失败。
请通过 Client.setEncryptionSecret 重新设置加密密钥。
获取设备权限被拒绝。
获取麦克风或摄像头权限时,无法找到指定设备。
获取麦克风或摄像头权限时,遭遇未知错误错误。
获取麦克风或摄像头权限时,设备被占用。
发布本地音视频流。
发布音视频流之后,远端会触发 Client.on("stream-added") 回调。
需要发布的 Stream。
设置房间场景。
房间场景可设置为通话或直播场景,不同的场景中 QoS 策略不同。
房间场景。
可设置为:
rtc
:(默认)通信场景。该场景下,房间内所有用户都可以发布和接收音、视频流。适用于语音通话、视频群聊等应用场景。live
:直播场景。该场景有主播和观众两种用户角色,可以通过 setClientRole 设置。主播可以发布和接收音视频流,观众直接接收流。适用于语聊房、视频直播、互动大班课等应用场景。设置用户角色。默认情况下用户以主播角色加入房间。
在加入房间前,用户可以调用本接口设置本端模式为观众或主播模式。在加入房间后,用户可以通过本接口切换用户模式。
用户角色支持设置为主播(host
)或观众(audience
),主播和观众的权限不同:
用户角色。可设置为:
host
:直播模式中的主播,可以发布和接收音视频流。如果用户之前已经发布了音频或视频,切换到主播时会自动恢复发布音频或视频流。audience
: 直播模式中的观众,只能接收音视频流。主播模式切换到观众模式后,会自动停止发送音视频流。设置媒体流加密模式。
在金融行业等安全性要求较高的场景下,您可以在加入房间前通过此方法设置媒体流加密模式。
媒体流加密方案。详细信息请参考 encryptionMode。
// 例如,使用 sm4-128-ecb
client.setEncryptionMode('sm4-128-ecb');
client.setEncryptionSecret('abcdefghijklmnop');
// 然后通过client.join()加入房间
设置媒体流加密密钥。
媒体流加密密钥。字符串格式,长度为 1~128 字节。推荐设置为英文字符串。
设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证其他用户收到的、高优先级用户的媒体流的质量。
优先级设置。
设置视频大小流。
如果发送端开启了双流模式,即大小流模式,订阅端默认接收大流,您也可以在订阅端调用此方法选择接收大流还是小流。
指定音视频流。
指定大小流类型。0 表示小流,1 表示大流。
开启云代理服务。
在内网环境下,如果用户防火墙开启了网络限制,请参考《使用云代理》将指定 IP 地址和端口号加入防火墙白名单,然后调用此方法开启云代理。
错误码包括:
错误码(code) | 错误原因(reason) |
---|---|
INVALID_OPERATION |
非法操作,请在加入房间之前调用该接口。 |
关闭云代理服务。
订阅远端音视频流。
订阅远端音视频流之后,本地会触发 Client.on("stream-subscribed") 回调。
需要订阅的源端音视频流。
停止将本地音视频流发布到本房间。
停止发布音视频流之后,远端会触发 Client.on("stream-removed") 回调。
需要取消发布的 Stream。
流类型。
取消订阅远端音视频流。
取消订阅后,SDK 将不再接收远端音视频流。
需要取消订阅的源端音视频流。
Client 接口提供音视频通话的核心功能,例如加入房间、发布和订阅音视频流等。
请使用 NERTC.createClient 创建 Client 对象,Client 对象指通话中的本地或远程用户,提供云信 NERTC SDK 的核心功能。