注意事项: 客户端输入在线媒体流功能即将停服。如果你尚未集成该功能,Agora 建议你不要使用。详见《部分服务下架计划》。
输入在线媒体流
该方法通过在服务端拉取视频流并发送到频道中,将正在播出的视频输入到正在进行的直播中。可主要应用于赛事直播、多人看视频互动等直播场景。详见输入在线媒体流。
Note
调用该方法后,SDK 会在本地触发 Client.on("streamInjectedStatus")
回调,报告输入在线媒体流的状态;成功输入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 Client.on("stream-added")
和 Client.on("peer-online")
回调,其中 UID 为 666。
添加到直播中的视频流 HTTP/HTTPS 地址,ASCII 字符,字符串长度小于 256 字节。支持 RTMP,HLS,HTTP-FLV 协议传输。
输入的在线媒体流的设置,详见 InjectStreamConfig。
设置旁路直播的属性
设置旁路直播的输出码流的码率。默认值为 500 Kbps。正整数,取值范围为 [1,10000000]。
设置旁路直播的输出码流的帧率。默认值为 15 fps。正整数,取值范围为 [1,10000]。
设置旁路直播的输出码流的高度。默认值为 640。正整数,取值范围为 [1,10000]。
设置合图的推流地址,默认为 null
, ASCII 字符,字符串长度大于 0 小于 256 字节。
设置旁路直播的输出码流的宽度。默认值为 360。正整数,取值范围为 [1,10000]。
关闭双流模式
该方法关闭双流模式。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数,常见的错误如下:
启用说话者音量提示
该方法允许 SDK 定期返回正在说话的远端用户及其音量。
启用该方法后,无论频道中有没有人说话,SDK 都会每两秒触发 "volume-indicator"
回调返回音量提示。
Note
在同一台设备上开多个通话页面可能会导致该功能不准或失效。
开启双流模式
该方法在 Publish 端,即发送端,开启双流模式。该方法建议在加入频道(Client.join)后调用。
双流为视频大流和视频小流,其中视频大流指高分辨率、高码率的视频流,视频小流指低分辨率、低码率的视频流。
建议不要对双流进行 track 操作(包括 addTrack/removeTrack/replaceTrack),否则会导致大流和小流的表现不一致。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数,常见的错误如下:
获取 SDK 与服务器的连接状态
调用该方法会返回 SDK 与服务器的连接状态。
SDK 与服务器的连接状态,共有以下 4 种:
DISCONNECTED
:连接断开。该状态表示 SDK 处于以下任一阶段:CONNECTING
:正在连接中。在调用 Client.join 或者连接中断自动重连的时候为此状态。CONNECTED
:已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。DISCONNECTING
:正在断开连接。在调用 Client.leave 的时候为此状态。获取本地发布流的音频统计数据
该方法获取发布流的音频统计数据,包括音频编码类型、采样率、码率等。
Note
stream-published
事件后进行统计,可能耗费 0-3 秒时间返回。你可以循环调用该方法获取数据。包含本地发布流的音频统计数据的回调。
获取本地发布流的视频统计数据
该方法获取本地发布流的视频统计数据,包括视频分辨率、视频码率、视频帧率等。
Note
stream-published
事件后进行统计,可能耗费 0-3 秒时间返回。你可以循环调用该方法获取数据。包含本地发布流的视频统计数据。
获取系统网络信息
DEPRECATED
该方法自 2.5.1 起废弃,请使用 getTransportStats 获取网络信息。
该方法可获取浏览器本地网络信息。
目前仅提供网络类型信息,详见 NetworkType。
Note
该功能仅支持 Chrome 61+ ,且无法保证兼容性,详见网络状况 API。
包含系统网络信息的回调。
获取远端订阅流的音频统计数据
该方法获取订阅流的音频统计数据,包括音频解码类型、丢包率、码率等。
Note
stream-subscribed
事件后进行统计,可能耗费 0-3 秒时间返回。你可以循环调用该方法获取数据。包含远端订阅流的音频统计数据的回调。
获取远端订阅流的视频统计数据
该方法获取远端订阅流的视频统计数据,包括丢包率、视频码率、视频帧率等。
Note
stream-subscribed
事件后进行统计,可能耗费 0-3 秒时间返回。你可以循环调用该方法获取数据。包含远端订阅流的视频统计数据的回调。
获取与会话的连接状况统计数据
该方法获取与会话的连接状况统计数据。
Note
包含会话状况统计数据的回调。
包含系统信息的回调。
获取与网关的连接状况统计数据
该方法获取与网关的连接状况的统计数据。
Note
包含与网关的连接状况的统计数据的回调。
初始化客户端对象
使用该方法初始化客户端对象。
传入你的项目的 App ID。ASCII 字符,字符串长度大于 0 小于 256 字节。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数,常见的错误如下:
"BAD_ENVIRONMENT"
: 不支持当前使用的浏览器。加入 AgoraRTC 频道
该方法让用户加入 AgoraRTC 频道。
调用该方法加入频道时,本地会触发 Client.on("connected")
和 Client.on("connection-state-change")
回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 Client.on("peer-online")
回调。
null
。标识通话频道的字符串,长度在 64 字节以内的字符串。以下为支持的字符集范围(共89个字符):
指定用户的 ID。整数或字符串,ASCII 字符,需保证唯一性。如果不指定(即设为 null
)或设为 0
,服务器会自动分配一个,并在 onSuccess
回调方法中返回。
Note
uid
,即必须都为整数或都为字符串。(选填)你想要传入的附加信息。一般可设置为空,或频道相关信息。该信息不会传递给频道内的其他用户。
方法调用成功时执行的回调函数,返回值代表用户身份的 uid(整型)。如果使用字符串作为用户 ID 加入频道,则返回对应的整型 uid。
方法调用失败时执行的回调函数,常见的错误如下:
"INVALID_OPERATION"
: 当前无法加入频道,通常是因为重复调用了 Client.join
。"UID_CONFLICT"
: 当前 Client 的 uid
和频道中其他 Client 的 uid
冲突。"ERR_REPEAT_JOIN"
: 当前 Client 已经加入了频道。"SOCKET_ERROR"
: 加入频道过程中和 Agora 服务器断开连接。"CANNOT_MEET_AREA_DEMAND"
: 由于用户在指定的访问区域外,导致无法建立连接。例如,假设你将 ClientConfig.areaCode 设为 [AgoraRTC.AREAS.CHINA]
,位于日本的用户尝试加入频道时就会发生此错误。如果你没有设置 ClientConfig.areaCode
,SDK 默认会同时请求多个区域的服务器并择优进行连接,因此在用户加入频道时控制台日志可能也会打印该错误。这种情况你可以忽略该错误码。离开 AgoraRTC 频道
该方法让用户离开 AgoraRTC 频道。
调用该方法离开频道时,本地会触发 Client.on("connection-state-change")
回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 Client.on("peer-leave")
回调。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数,可能的错误如下:
leave
或者当前没有完成加入频道取消事件绑定
该方法用于移除通过 Client.on()
绑定的事件。
要移除的事件名称
要移除的函数变量名
已完成远端音频首帧解码回调。
本地订阅远端流成功并完成第一帧音频解码时会触发该回调。
Note 该回调仅支持 Chrome 浏览器。
已完成远端视频首帧解码回调。
本地订阅远端流成功并完成第一帧视频解码时会触发该回调。
该回调通知应用本地音视频流已发布。
该回调通知应用本地音视频流已取消发布。
该回调通知应用远端音视频流已添加。
Note
如果用户加入频道时频道内已经有其他用户,也会收到该回调报告已经存在的远端流。
该回调通知应用已删除远端音视频流,即对方调用了 Client.unpublish。
该回调通知应用已接收远端音视频流。
该回调提示有远端用户/主播加入频道。
该回调在如下情况下会被触发:
新加入频道的远端用户/主播 ID。
该回调通知应用有远端用户离线。
离线包括以下情况:
Note 在直播场景中,只有角色为主播的用户会触发该回调。
用户离线的原因。
离线的用户 UID。
该回调通知应用对方用户在语音通话中将自己的声音关掉。
该回调通知应用对方用户在语音通话中将自己的声音打开。
该回调通知应用对方用户在视频通话中将自己的视频关掉。
该回调通知应用对方用户在视频通话中将自己的视频打开。
该回调表示用户在发布或者订阅流过程中出现了加密或者解密失败,一般都是因为加密密码(setEncryptionSecret)或者加密方案(setEncryptionMode)不匹配导致的。
自从
3.0.0
该回调通知用户已经在聊天过程中被踢,或没有进入频道就被封禁。当前只有被踢的用户会收到这个回调。
通常原因是该 UID 被封禁(K_UID_BANNED
(14))。
DEPRECATED
自 3.0.2 起废弃,用 Client.on("volume-indicator")
替代。
该回调通知应用频道内谁在说话(音量最大的用户)。
该回调提示频道内正在说话的远端用户及其音量。
默认禁用。可以通过 enableAudioVolumeIndicator 方法开启;开启后,无论频道内是否有人说话,都会每两秒返回提示音量。
音量范围为 0 到 100 之间的整数。通常在列表中音量大于 5 的用户为持续说话的人。
该回调通知应用直播推流成功。
推流成功的 CDN 地址。
该回调通知应用直播推流失败。
Note: 以下原因仅适用于 3.2.0 及之后版本。
错误原因:
LIVE_STREAMING_INVALID_ARGUMENT
: 推流参数错误。
LIVE_STREAMING_INTERNAL_SERVER_ERROR
: 推流服务器内部错误。
LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED
: 推流 URL 被占用。
LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED
: 在非转码推流中调用了转码参数。
LIVE_STREAMING_CDN_ERROR
: 推流的目标 CDN 出现错误导致推流失败。
LIVE_STREAMING_TASK_CONFLICT
: 当前已经有一个相同 URL 的推流任务正在运行。
INVALID_OPERATION
: 非法操作,例如在调用 {@link Client.setLiveTransoding} 设置合图属性之前调用 Client.startLiveStreaming 进行转码推流。
WS_ABORT
: 推流操作由于 WebSocket 断开而被终止。
推流出现错误的 CDN 地址。
该回调通知应用直播推流已停止。
推流停止的 CDN 地址。
该回调通知应用推流转码设置已被更新。
调用 Client.setLiveTranscoding 方法更新推流转码配置时,会触发该回调并向主播报告更新信息。
注意事项: 客户端输入在线媒体流功能即将停服。如果你尚未集成该功能,Agora 建议你不要使用。详见《部分服务下架计划》。
该回调通知应用导入在线媒体流状态已更新。
在 Token 过期前 30 秒,会收到该事件通知。
一般情况下,在收到该消息之后,应向服务端重新申请 Token,并调用 Client.renewToken 方法。
在 Token 过期后,会收到该事件通知。
一般情况下,在收到该消息之后,应向服务端重新申请 Token,并调用 Client.renewToken 方法。
该回调通知应用有错误信息,需要进行处理,可能的错误如下:
"SOCKET_DISCONNECTED"
表示此时 SDK 和 Agora 服务器的连接因为网络原因断开了,SDK 会自动尝试重连。该回调通知应用网络类型发生改变。
该回调通知应用有音频输入设备被添加或移除。
该回调通知应用有音频输出设备被添加或移除。
该回调通知应用有摄像头被添加或移除。
该回调通知应用视频流类型发生改变。
视频流类型改变指视频大流(高码率、高分辨率)变为视频小流(低码率、低分辨率),或视频小流变为视频大流。
视频流类型 (streamType):
该回调通知应用SDK 与服务器的连接状态发生改变
SDK 与服务器的连接状态共有以下 4 种:
DISCONNECTED
:连接断开。该状态表示 SDK 处于以下任一阶段:CONNECTING
:正在连接中。在调用 Client.join 或者连接中断自动重连的时候为此状态。CONNECTED
:已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因网络断开或切换而导致 SDK 与服务器的连接中断,SDK 会自动重连,此时应用会收到该回调,通知网络状态由 CONNECTED
变为 CONNECTING
。DISCONNECTING
:正在断开连接。在调用 Client.leave 的时候为此状态。改变之后的连接状态
改变之前的连接状态
该回调通知 SDK 开始尝试重新发布/订阅音视频流
重新发布/订阅的音视频流对应的 uid
该回调通知重新发布/订阅音视频流结束
success
为 true
,该参数为空字符串。success
为 false
,该参数显示重新发布/订阅失败的原因。可能出现的原因:REQUEST_ABORT
: 由于服务器正在重连,重新发布/订阅被打断。服务器重连后会再次重新发布/订阅流,该错误可以忽略。重新发布/订阅的结果
true
:成功false
:失败重新发布/订阅的流的 uid
该回调通知本地用户的角色发生改变。
直播场景下,当用户角色切换时会触发此回调,即主播切换为观众,或观众切换为主播时。
改变后的角色。
该回调通知正在与服务器重新建立连接。
该回调通知本地用户已经成功重新加入频道。
该回调通知与服务器已经成功建立连接。
该回调报告本地用户的上下行网络质量。
该回调每 2 秒触发,向应用报告本地用户当前的上行和下行网络质量。
Note
该功能目前处于实验阶段,网络质量评分仅供参考。
用户的网络质量,分上行网络质量和下行网络质量,详见 NetworkQualityStats。
该回调表示订阅的音视频流回退为音频流或恢复为音视频流。
如果在 setStreamFallbackOption 中将 fallbackType
设为 2,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
Note
视频大流(高码率、高分辨率)变为视频小流(低码率、低分辨率),或视频小流变为视频大流会触发 stream-type-changed
回调。
流的回退类型:
远端用户的 UID
该回调表示订阅流的音视频轨道发生变化。
当远端用户对音视频流做了 addTrack 或 removeTrack 操作会触发该回调。
发生音视频轨道变化的流,包含以下属性:
video
:布尔值,表示远端流是否有视频轨道audio
:布尔值,表示远端流是否有音频轨道该回调通知应用频道内的异常事件。
异常事件不是错误,但是往往会引起通话质量问题。
发生异常事件后,如果恢复正常,也会收到该回调通知。
每一个异常事件都有对应的恢复事件,详见下表:
Note
该回调仅支持 Chrome 浏览器。
事件码
提示消息
发生异常或恢复的用户 UID
该回调表示远端 Native 用户调用了 enableLocalVideo
(true) 打开视频采集。
自从
3.0.0
远端用户的 UID
该回调表示远端 Native 用户调用了 enableLocalVideo
(false) 关闭视频采集。
自从
3.0.0
远端用户的 UID
跨频道媒体流转发事件回调。
自从
3.0.0
该回调报告跨频道媒体流转发过程中发生的事件。
事件码
跨频道媒体流转发状态回调。
自从
3.0.0
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的错误信息。
跨频道媒体流转发出错的错误码:
状态码
code
中提示的错误信息。发生异常后,SDK 会重置跨频道媒体流转发的相关状态,你需要调用 startChannelMediaRelay 重新开始跨频道媒体流转发。发布本地音视频流
该方法将本地音视频流发布至 SD-RTN。
发布音视频流之后,本地会触发 Client.on("stream-published")
回调;远端会触发 Client.on("stream-added")
回调。
Note
在直播场景里,调用该方法的用户即为主播。
本地音视频流对象
方法调用失败时执行的回调函数, 可能的错误如下:
stream
已经发布。stream
格式非法。rejoin
事件,等重连成功后再次调用 publish
。注意事项: 客户端输入在线媒体流功能即将停服。如果你尚未集成该功能,Agora 建议你不要使用。详见《部分服务下架计划》。
删除输入的在线媒体流
该方法从直播中删除通过 addInjectStreamUrl 输入的在线媒体流。删除后频道內所有用户都会收到 Client.on("peer-leave")
和 Client.on("stream-removed")
回调。
待删除的外部视频流 HTTP/HTTPS 地址。ASCII 字符,字符串长度小于 256 字节。
更新 Channel Key
该方法更新 Channel Key。如果启用了 Channel Key 机制,过一段时间后密钥会失效。 当 onFailure
回调报告 DYNAMIC_KEY_TIMEOUT
时,调用该 API 以更新 Channel Key,否则 SDK 会无法和服务器建立连接。
指定新的 Channel Key
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数,常见的错误如下:
更新 Token
该方法更新 Token。如果启用了 Token 机制,过一段时间后密钥会失效。 当收到 onTokenPrivilegeWillExpire
或 onTokenPrivilegeDidExpire
消息时,调用该 API 以更新 Token,否则 SDK 会无法和服务器建立连接。
指定新的 Token
设置用户角色
本方法仅适用于直播场景。
直播场景下,可以调用本方法设置用户角色。
在加入频道前,用户可以通过本方法设置自己的角色。
在加入频道后,用户可以通过本方法切换角色:
host
角色,调用 unpublish 的时候会自动切换为 audience
角色。audience
,会自动进行 unpublish。如果你在加入频道后调用该方法切换用户角色,切换成功后,本地会触发 Client.on("client-role-changed")
回调;远端会触发 Client.on("peer-online")
或者 Client.on("peer-leave")
回调。
Note
通信场景(mode 设置为 rtc
)无法使用本方法,默认所有用户都是 host
角色。
用户角色:
"audience"
:观众,默认角色,只能接收音视频流,无法发布。"host"
:主播,可以发布和接收音视频流。设置内置加密方案
该方法和 setEncryptionSecret 搭配使用,可以开启内置加密功能,需要在加入频道前调用。
同一频道内的所有用户必须设置相同的加密方案、密钥和盐值才能进行通话。
Note
Client.on("crypt-error")
回调。加密模式,包含以下几种:
"aes-128-xts"
: 128 位 AES 加密,XTS 模式。"aes-256-xts"
: 256 位 AES 加密,XTS 模式。"aes-128-ecb"
: 128 位 AES 加密,ECB 模式。"aes-128-gcm"
: 128 位 AES 加密,GCM 模式。"aes-256-gcm"
: 256 位 AES 加密,GCM 模式。"sm4-128-ecb"
: 128 位国密 SM4 加密,ECB 模式。"aes-128-gcm2"
: 128 位 AES 加密,GCM 模式,加盐。"aes-256-gcm2"
: 256 位 AES 加密,GCM 模式,加盐。"none"
: 不加密。盐值。当加密模式为 "aes-128-gcm2"
或 "aes-256-gcm2"
时有效。Agora 推荐你在服务端使用 OpenSSL 生成盐值,详见媒体流加密。
设置内置加密密钥
该方法和 setEncryptionMode 搭配使用,可以开启内置加密功能,需要在加入频道前调用。
同一频道内的所有用户应设置相同的密钥。如果未指定密钥,则无法激活加密功能。
Note
Client.on("crypt-error")
回调。加密密钥。ASCII 字符,字符串长度大于 0 小于 256 字节。当终端用户设置的密码为弱密码时,SDK 会在控制台打印警告信息,提醒用户设置强密码,即密码必须包含大写字母、小写字母、数字和特殊字符,以及长度至少 8 位。Agora 推荐你在服务端使用 OpenSSL 生成密钥,详见媒体流加密。
设置直播推流转码
调用该方法更新转码设置后本地会触发 Client.on("liveTranscodingUpdated")
回调。
Note
直播转码的设置,详见 LiveTranscoding。
设置小流视频属性
如果你调用 Client.enableDualStream 开启了双流模式,可以调用该方法设置小流的视频属性。
如果你不调用该方法,SDK 会使用默认的小流视频属性:分辨率(宽 × 高)160 × 120,码率 50 Kbps,帧率 15 fps。
Note
小流的视频属性。
小流视频帧的码率。
正整数,取值范围为 [1,10000000],单位为 Kbps。默认值 50。
小流视频帧的帧率。
正整数,取值范围为 [1,10000],单位为 fps。默认值 15。
小流视频帧的高度。正整数,取值范围为 [1,10000]。
width
和 height
参数互相绑定,只有两个都填才有效,否则视为缺省,SDK 会自动设为 120。
小流视频帧的宽度。正整数,取值范围为 [1,10000]。
width
和 height
参数互相绑定,只有两个都填才有效,否则视为缺省,SDK 会自动设为 160。
部署代理服务器
Agora Web SDK 还提供 startProxyServer 方法支持云代理服务,详见使用云代理。
Note
你的代理服务器域名。ASCII 字符,字符串长度大于 0 小于 256 字节。详见 ClientConfig.proxyServer。
设置视频大小流
如果发送端选择发送视频双流 (大流或小流),该方法可以在订阅端选择接收大流还是小流。如果不设置,订阅端默认接收大流。
远端视频流对象
设置远端视频流大小。视频流类型如下:
设置音视频流回退策略
该接口用于设置订阅端在弱网情况下音视频流的回退策略。网络不理想的情况下,为保证通话质量,可以选择自动订阅视频小流(低分辨率、低码率视频流)或者仅订阅音频流。
开启自动回退之后,当订阅流从视频大流回退为视频小流或从视频小流恢复为视频大流时,本地会触发 Client.on("stream-type-changed")
回调。当订阅流回退为音频流或从音频流恢复为音视频流时,本地会触发 Client.on("stream-fallback")
回调。
Note
该方法只可在发送端通过 enableDualStream 开启双流模式的情况下使用。
远端音视频流对象
回退选项:
由 TurnServer 对象组成的数组,支持传入多组 TURN 服务器设置。
开始跨频道媒体流转发
自从
3.0.0
该方法可用于实现跨频道媒体流转发。
调用该方法后,SDK 会触发以下回调:
Client.on("channel-media-relay-state")
,报告当前的跨频道媒体流转发状态和错误码。state
为 2,code
为 0。state
为 3,code
为错误码。你可以尝试再次调用本方法。Client.on("channel-media-relay-event")
,报告跨频道媒体流转发相关的事件。code
为 4,表示 SDK 开始向目标频道发送数据包。Note
跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。
媒体流转发是否成功的回调。
null
:媒体流转发成功。新建直播流
该方法新建直播流。详见推流到 CDN。
推流开始后本地会触发 Client.on("liveStreamingStarted")
回调。如果推流失败会触发 Client.on("liveStreamingFailed")
回调。
Note
(必选项)直播推流的地址。 ASCII 字符,字符串长度不得超过 1024 字节。
(非必选项) 是否启用直播转码。如果设为 true
(启用转码),需先调用 setLiveTranscoding。
停止跨频道媒体流转发
自从
3.0.0
一旦停止转发,用户会退出所有的目标频道。
调用该方法会触发 Client.on("channel-media-relay-state")
回调。
state
为 0。state
为 3,code
错误码可能为 2 或 8,一般是在网络较差的情况下,退出的消息发送不成功导致的。你可以调用 Client.leave 离开频道来停止跨频道媒体流转发。停止跨频道媒体流转发是否成功的回调。
null
:停止跨频道媒体流转发成功。删除直播流
该方法停止并删除直播流。推流停止后本地会触发 Client.on("liveStreamingStopped")
回调。
直播推流的地址。ASCII 字符,字符串长度不得超过 1024 字节。
订阅远端音视频流
该方法从服务器端接收远端音视频流。
订阅远端音视频流之后,本地会触发 Client.on("stream-subscribed")
回调。
如果订阅流中包含音频,还会触发 Client.on("first-audio-frame-decode")
回调;如果订阅流中包含视频,还会触发 Client.on("first-video-frame-decode")
回调。
远端音视频流对象
设置是否接收视频或音频。
Note
video
和 audio
不可同时设为 false
。如果想取消订阅流,请调用 Client.unsubscribe 方法。options
设为 null
,否则会收到SAFARI_NOT_SUPPORTED_FOR_TRACK_SUBSCRIPTION
错误。设置是否接收音频数据。
true
:(默认)接收音频数据。false
:不接收音频数据。设置是否接收视频数据。
true
:(默认)接收视频数据。false
:不接收视频数据。方法调用失败时执行的回调函数,以下列举一些常见的错误:
取消发布本地音视频流
该方法取消发布本地音视频流。
取消发布音视频流之后,本地会触发 Client.on("stream-unpublished")
回调,远端会触发 Client.on("stream-removed")
回调。
Note
直播场景中,主播取消发布流之后用户角色会自动切换为观众,远端还会触发 Client.on("peer-leave")
回调。
本地音视频流对象
方法调用失败时执行的回调函数,以下列举一些可能的错误:
stream
还没有发布。stream
格式非法。取消订阅远端音视频流
该方法取消接收远端音视频流。
远端音视频流对象
方法调用失败时执行的回调函数,常见的错误如下:
stream
对象格式非法。更新媒体流转发的目标频道
自从
3.0.0
成功开始跨频道转发媒体流后,如果你希望添加或删除媒体流转发的目标频道,可以调用该方法。
调用该方法后,SDK 会触发 Client.on("channel-media-relay-event")
回调。
code
为 7。code
为 8,同时还会触发 Client.on("channel-media-relay-state")
回调,其中 state
为 3。出错后跨频道媒体流转发状态会被重置,你需要调用 startChannelMediaRelay 重新开始跨频道媒体流转发。Note
跨频道媒体流转发参数配置,详见 ChannelMediaRelayConfiguration。
更新目标频道是否成功的回调。
null
:更新目标频道成功。
Client 接口提供音视频通话的核心功能,例如加入频道、发布和订阅音视频流等。
你可以通过 createClient 创建 Client 对象。一个 Client 对象代表一个本地客户端。