导入在线媒体流
该方法通过在服务端拉取视频流并发送到频道中,将正在播出的视频导入到正在进行的直播中。可主要应用于赛事直播、多人看视频互动等直播场景。状态回调为 streamInjectedStatus
。
添加到直播中的视频流 HTTP/HTTPS 地址,ASCII 字符,字符串长度大于 0 小于 256 字节。支持 RTMP,HLS,FLV 协议传输。
导入的在线媒体流的设置,详见 InjectStreamConfig。
配置直播旁路推流
DEPRECATED
该方法已废弃,Agora 推荐你使用以下方法设置直播推流:
该方法在加入频道前配置旁路直播推流服务。
Note:
该方法需要在 Client.join 前调用。
设置旁路直播的属性
设置旁路直播的输出码流的码率。默认值为 500 Kbps。正整数,取值范围为 [1,10000000]。
设置旁路直播的输出码流的帧率。默认值为 15 fps。正整数,取值范围为 [1,10000]。
设置旁路直播的输出码流的高度。默认值为 640。正整数,取值范围为 [1,10000]。
设置合图的推流地址,默认为 null
, ASCII 字符,字符串长度大于 0 小于 256 字节。
设置旁路直播的输出码流的宽度。默认值为 360。正整数,取值范围为 [1,10000]。
关闭双流模式
该方法关闭双流模式。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数
启用说话者音量提示
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。
启用该方法后,无论频道中有没有人说话,SDK 都会每两秒返回音量提示。
Note:
在同一台 PC 上 开多个通话页面可能会导致该功能不准或失效。
开启双流模式
该方法在 Publish 端,即推流端,开启双流模式。
双流为视频大流和视频小流,其中视频大流指高分辨率、高码率的视频流,视频小流指低分辨率、低码率的视频流。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数
获取 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 字节。
关于如何获取 App ID,请参考创建 Agora 账号并获取 App ID。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数
加入 AgoraRTC 频道
该方法让用户加入 AgoraRTC 频道。
null
。标识通话频道的字符串,长度在 64 字节以内的字符串。以下为支持的字符集范围(共89个字符):
指定用户的 ID。整数或字符串,ASCII 字符,需保证唯一性。如果不指定(即设为 null
),服务器会自动分配一个,并在 onSuccess
回调方法中返回。
Note:
uid
,即必须都为整数或都为字符串。方法调用成功时执行的回调函数,返回值代表用户身份的 uid
方法调用失败时执行的回调函数
离开 AgoraRTC 频道
该方法让用户离开 AgoraRTC 频道。
方法调用成功时执行的回调函数
方法调用失败时执行的回调函数
该回调通知 App 本地音视频流已发布。
该回调通知 App 远端音视频流已添加。
该回调通知 App 已删除远端音视频流,即对方调用了 Client.unpublish。
该回调通知 App 已接收远端音视频流。
该回调通知 App 对方用户已离开频道,即对方调用了 Client.leave。
该回调通知 App 对方用户在语音通话中将自己的声音关掉。
该回调通知 App 对方用户在语音通话中将自己的声音打开。
该回调通知 App 对方用户在视频通话中将自己的视频关掉。
该回调通知 App 对方用户在视频通话中将自己的视频打开。
该回调通知用户已经在聊天过程中被踢,或没有进入频道就被封禁。当前只有被踢的用户会收到这个回调。
该回调通知 App 频道内谁在说话(音量最大的用户)。
该回调提示频道内谁在说话以及说话者的音量。
默认禁用。可以通过 enableAudioVolumeIndicator 方法开启;开启后,无论频道内是否有人说话,都会每两秒返回提示音量。
音量范围为 0 到 100 之间的整数。通常在列表中音量大于 5 的用户为持续说话的人。
该回调通知 App 直播推流成功。
该回调通知 App 直播推流失败。
该回调通知 App 直播推流已停止。
该回调通知 App 主播转码已更新。
该回调通知 App 导入在线媒体流状态已更新。
在 Token 过期前 30 秒,会收到该事件通知。
一般情况下,在收到该消息之后,应向服务端重新申请 Token,并调用 Client.renewToken 方法。
在 Token 过期后,会收到该事件通知。
一般情况下,在收到该消息之后,应向服务端重新申请 Token,并调用 Client.renewToken 方法。
该回调通知 App 有出错信息,需要进行处理。
该回调通知 App 网络类型发生改变。
该回调通知 App 有音频输入设备被添加或移除。
该回调通知 App 有音频输出设备被添加或移除。
该回调通知 App 有摄像头被添加或移除。
该回调通知 App 视频流类型发生改变。
视频流类型改变指视频大流(高码率、高分辨率)变为视频小流(低码率、低分辨率),或视频小流变为视频大流。
视频流类型 (streamType):
该回调通知 App SDK 与服务器的连接状态发生改变
SDK 与服务器的连接状态共有以下 4 种:
DISCONNECTED
:连接断开。该状态表示 SDK 处于以下任一阶段:CONNECTING
:正在连接中。在调用 Client.join 或者连接中断自动重连的时候为此状态。CONNECTED
:已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因网络断开或切换而导致 SDK 与服务器的连接中断,SDK 会自动重连,此时 App 会收到该回调,通知网络状态由 CONNECTED
变为 CONNECTING
。DISCONNECTING
:正在断开连接。在调用 Client.leave 的时候为此状态。改变之后的连接状态
改变之前的连接状态
该回调通知 SDK 开始尝试重新发布/订阅音视频流
重新发布/订阅的音视频流对应的 uid
该回调通知重新发布/订阅音视频流结束
success
为 true
,该参数为空字符串。success
为 false
,该参数显示重新发布/订阅失败的原因。重新发布/订阅的结果
true
:成功false
:失败重新发布/订阅的流的 uid
该回调通知本地用户的角色发生改变。
直播场景下,当用户角色切换时会触发此回调,即主播切换为观众,或观众切换为主播时。
改变后的角色。
该回调通提示有远端用户/主播加入频道。
新加入频道的远端用户/主播 ID。
该回调通知正在与服务器重新建立连接
该回调通知与服务器已经成功建立连接
该回调报告本地用户的上下行网络质量。
该回调每 2 秒触发,向 App 报告本地用户当前的上行和下行网络质量。
Note:
该功能目前处于实验阶段,网络质量评分仅供参考。
用户的网络质量,分上行网络质量和下行网络质量,详见 NetworkQualityStats。
该回调表示订阅的音视频流回退为音频流或恢复为音视频流。
如果在 setStreamFallbackOption 中将 fallbackType
设为 2,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
Note:
视频大流(高码率、高分辨率)变为视频小流(低码率、低分辨率),或视频小流变为视频大流会触发 stream-type-changed
回调。
流的回退类型:
远端用户的 UID
该回调表示订阅流的音视频轨道发生变化。
当远端用户对音视频流做了 addTrack 或 removeTrack 操作会触发该回调。
发生音视频轨道变化的流,包含以下属性:
video
:布尔值,表示远端流是否有视频轨道audio
:布尔值,表示远端流是否有音频轨道该回调通知 App 频道内的异常事件。
异常事件不是错误,但是往往会引起通话质量问题。
发生异常事件后,如果恢复正常,也会收到该回调通知。
每一个异常事件都有对应的恢复事件,详见下表:
Note:
该回调仅支持 Chrome 浏览器。
事件码
提示消息
发生异常或恢复的用户 uid
发布本地音视频流
该方法将本地音视频流发布至 SD-RTN。
Note:
在直播场景里,调用该方法的用户即为主播。
本地音视频流对象
方法调用失败时执行的回调函数
删除导入的在线媒体流
该方法从直播中删除通过 addInjectStreamUrl 导入的在线媒体流。
已导入、待删除的外部视频流 HTTP/HTTPS 地址。ASCII 字符,字符串长度大于 0 小于 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
设置用户角色
本方法仅适用于直播模式。
频道模式为直播(mode 设置为 live
)时,可以调用本方法设置用户角色。
在加入频道前,用户可以通过本方法设置自己的角色。
在加入频道后,用户可以通过本方法切换角色:
host
角色,调用 unpublish 的时候会自动切换为 audience
角色audience
,会自动进行 unpublishNote
通信模式(mode 设置为 rtc
)无法使用本方法,默认所有用户都是 host
角色。
用户角色:
"audience"
:观众,默认角色,只能接收音视频流,无法发布。"host"
:主播,可以发布和接收音视频流。加密方案,包含以下几种:
加密密码。ASCII 字符,字符串长度大于 0 小于 256 字节。
直播转码的设置,详见 LiveTranscoding。
设置小流视频参数
如果你调用 Client.enableDualStream 开启了双流模式,该方法设置小流的视频参数。
如果你不设置小流的视频参数,SDK 会根据你的视频流属性自动适配小流的视频属性。
Note:
设置小流的视频属性。
小流视频帧的码率,单位为 Kbps。正整数,取值范围为 [1,10000000]。
如果不填,SDK 会自动适配。
小流视频帧的帧率,单位为 fps。正整数,取值范围为 [1,10000]。
如果不填,SDK 会自动适配。
小流视频帧的高度。正整数,取值范围为 [1,10000]。
width 和 height 参数互相绑定,只有两个都填才有效,否则视为缺省,SDK 会自动适配。
小流视频帧的宽度。正整数,取值范围为 [1,10000]。
width 和 height 参数互相绑定,只有两个都填才有效,否则视为缺省,SDK 会自动适配。
部署 Nginx 服务器
Note:
你的 Nginx 服务器域名。ASCII 字符,字符串长度大于 0 小于 256 字节。
设置视频大小流
如果发送端选择发送视频双流 (大流或小流),该方法可以在订阅端选择接收大流还是小流。如果不设置,订阅端默认接收大流。
远端视频流对象
设置远端视频流大小。视频流类型如下:
设置音视频流回退策略
该接口用于设置订阅端在弱网情况下音视频流的回退策略。网络不理想的情况下,为保证通话质量,可以选择自动订阅视频小流(低分辨率、低码率视频流)或者仅订阅音频流。
Note:
该方法只可在发送端通过 enableDualStream 开启双流模式的情况下使用。
远端音视频流对象
回退选项:
TURN 服务器配置
是否启用强制中转:
你在 TURN 服务器上使用的密码。ASCII 字符,字符串长度大于 0 小于 256 字节。
你想要添加的 TCP 端口。字符串字符串长度大于 0 小于 256 字节,必须为数字字符。
你的 TURN 服务器 URL 地址。ASCII 字符,字符串长度大于 0 小于 256 字节。
你想要添加的 UDP 端口。字符串字符串长度大于 0 小于 256 字节,必须为数字字符。
你在 TURN 服务器上注册并使用的用户名。ASCII 字符,字符串长度大于 0 小于 256 字节。
新建直播流
该方法新建直播流。
(必选项)直播推流的地址。 ASCII 字符,字符串长度大于 0 小于 256 字节。
(非必选项) 是否启用直播转码。如果设为 true
(启用转码),需先调用 setLiveTranscoding。
删除直播流
该方法停止并删除直播流。
直播推流的地址。ASCII 字符,字符串长度大于 0 小于 256 字节。
订阅远端音视频流
该方法从服务器端接收远端音视频流。
远端音视频流对象
设置是否接收视频或音频。
Note:
video
和 audio
不可同时设为 false
。如果想取消订阅流,请调用 Client.unsubscribe 方法。options
设为 null
,否则会收到SAFARI_NOT_SUPPORTED_FOR_TRACK_SUBSCRIPTION
错误。设置是否接收音频数据。
true
:(默认)接收音频数据。false
:不接收音频数据。设置是否接收视频数据。
true
:(默认)接收视频数据。false
:不接收视频数据。方法调用失败时执行的回调函数
取消发布本地音视频流
该方法取消发布本地音视频流。
本地音视频流对象
方法调用失败时执行的回调函数
取消订阅远端音视频流
该方法取消接收远端音视频流。
远端音视频流对象
方法调用失败时执行的回调函数
通过 createClient 创建的客户端对象。
客户端对象提供 AgoraRTC 的核心功能。