导入在线媒体流。
该方法适用于 Native SDK v2.4.1 及之后的版本。
该方法通过在服务端拉取一路视频流并发送到频道中,将正在播出的视频导入到正在进行的直播中。 可主要应用于赛事直播、多人看视频互动等直播场景。
调用该方法后,SDK 会在本地触发 streamInjectStatus
回调,报告导入在线媒体流的状态。
成功导入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 userJoined
回调,其中 uid
为 666。
添加到直播中的媒体流 URL 地址,支持 RTMP, HLS, FLV 协议传输。
外部导入的媒体流的配置。
2
: 输入的 URL 为空。请重新调用该方法,并确认输入的媒体流的 URL 是有效的。7
: 引擎没有初始化。请确认调用该方法前已创建 AgoraRtcEngine
对象并完成初始化。4
: 频道非直播模式。请调用 setChannelProfile 并将频道设置为直播模式再调用该方法。3
: 用户没有加入频道。增加旁路推流地址。
调用该方法后,SDK 会在本地触发 streamPublished 回调,报告增加旁路推流地址的状态。
CDN 推流地址,格式为 RTMP。该字符长度不能超过 1024 字节,且不支持中文等特殊字符。
设置是否转码:
true
,需先调用 setLiveTranscoding 方法。将指定用户的视频流添加为高帧率流。添加为高帧率流后,你可以调用 setVideoRenderHighFPS 方法对视频流进行控制。
用户 ID
调节音乐文件的本地播放音量。
音乐文件的本地播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的远端播放音量。
音乐文件的远端播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的播放音量。
音乐文件播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节播放人声的音量。
播放人声的信号音量,可在 0~400 范围内进行调节:
调节录音音量。
录音信号音量,可在 0~400 范围内进行调节:
投诉通话质量。
通话 getCallId 方法获取的通话 ID
给通话的描述。可选参数,长度应小于 800 字节
创建数据流。
该方法用于创建数据流。AgoraRtcEngine
生命周期内,每个用户最多只能创建 5 个数据流。
true
:接收方 5 秒内会收到发送方所发送的数据,否则会收到 streamMessageError
回调并获得相应报错信息false
:接收方不保证收到,就算数据丢失也不会报错true
:接收方 5 秒内会按照发送方发送的顺序收到数据包false
:接收方不保证按照发送方发送的顺序收到数据包销毁渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
destroyRenderer
方法的错误回调
关闭音频模块。
关闭网络测试。
关闭视频模块。
该方法可以在加入频道前或者通话中调用:
成功掉调用该方法后,远端会触发 userEnableVideo(fasle)
回调。
若想再次开启视频模块,请调用 enableVideo 方法。
启用音频模块(默认为开启状态)。
启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。启用该方法后,无论频道内是否有人说话,
都会在说话声音音量提示回调 groupAudioVolumeIndication
回调中按设置的间隔时间返回音量提示。
指定音量提示的时间间隔:
groupAudioVolumeIndication
回调。平滑系数,指定音量提示的灵敏度。取值范围为 [0, 10]。建议值为 3,数字越大,波动越灵敏;数字越小,波动越平滑
开/关视频双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。
其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
指定双流或者单流模式:
启用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。
该方法主要用于以下两种场景:
开/关本地音频采集。
当 App 加入频道时,它的语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收或播放远端音频流,enableLocalAudio(false)
适用于只听不发的用户场景。语音功能关闭或重新开启后,会收到回调 microphoneEnabled
。
开/关本地视频采集。
该方法禁用或重新启用本地视频采集,不影响接收远端视频。
调用 enableVideo 后,本地视频即默认开启。你可以调用 enableLocalVideo(false) 关闭本地视频采集。关闭后如果想要重新开启,则可调用 enableLocalVideo(true)。
成功禁用或启用本地视频采集后,远端会触发 userEnableLocalVideo 回调。
开启声卡采集。
一旦开启声卡采集,SDK 会采集本地所有的声音。
是否开启声卡采集:
声卡的设备名。
开启/关闭远端用户的语音立体声。
如果想调用 setRemoteVoicePosition 实现听声辨位的功能,请确保在调用 joinChannel 方法前调用该方法。
是否开启远端用户语音立体声:
启用视频模块。
该方法可以在加入频道前或者通话中调用。
成功调用该方法后,远端会触发 userEnableVideo(true)
回调。
若想关闭视频模式,请调用 disableVideo 方法。
打开与 Web SDK 的互通(仅在直播下适用)。
该方法打开或关闭与 Agora Web SDK 的互通。该方法仅在直播模式下适用,通信模式下默认互通是打开的。
如果有用户通过 Web SDK 加入频道,请确保调用该方法,否则 Web 端用户看 Native 端的画面会是黑屏。
是否打开与 Agora Web SDK 的互通:
获取音乐文件的播放进度。
获取音乐文件的时长。
获取音乐文件的本地播放音量。
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
调节音乐文件远端播放音量。
该方法调节混音音乐文件在远端的播放音量大小。
获取当前音频播放设备的静音状态。
true
:当前音频播放设备静音false
:当前音频播放设备不静音获取音频播放设备列表。
音频播放设备的 Array
获取音频播放设备的音量
播放设备音量(分贝)。取值范围 [0,255]
获取当前音频录制设备的静音状态。
true
:当前音频录制设备静音false
:当前音频录制设备不静音获取音频录制设备
音频录制设备的 Array
获取录制设备的音量。
录音设备音量(分贝)。取值范围 [0,255]
获取通话 ID。
客户端在每次 joinChannel 后会生成一个对应的 CallId
,标识该客户端的此次通话。
有些方法如 rate, complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId
参数。
使用这些反馈方法,需要在通话过程中调用 getCallId
方法获取 CallId
,在通话结束后在反馈方法中作为参数传入。
通话 ID
获取当前网络连接状态。
connect 网络连接状态
获取当前的音频播放设备。
音频播放设备对象
获取当前的音频录制设备。
音频录制设备对象
获取当前的视频设备。
视频设备对象
获取播放音效文件音量。
获取指定错误码的详细错误信息。
错误码
errorCode 描述
获取播放设备信息。
设备 ID
设备名称
获取录制设备信息。
设备 ID
设备名
获取屏幕信息。
该方法获取所有的系统(macOS 或 Windows)屏幕 ID,以及相关信息。你可以使用获取到的屏幕 ID 进行屏幕共享。
系统屏幕 ID 和相关信息列表。Windows 和 macOS 系统中返回的屏幕 ID(displayId)不同。 你无需关注返回对象的具体内容,直接使用它进行屏幕共享即可。
获取系统窗口信息。
该方法获取所有系统(macOS 或 Windows)窗口 ID,以及相关信息。你可以使用获取到的窗口 ID 进行屏幕共享。
系统窗口 ID 和相关信息列表
通过 UID 获取用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,
并在本地触发 userInfoUpdated
回调。你收到这个回调后,可以调用该方法,通过传入 UID 获取包含了指定用户 User Account 的 UserInfo
对象。
用户 UID
errCode
方法调用失败,返回错误码userInfo
方法调用成功,返回包含了指定用户 User Account 的 UserInfo
对象通过 User Account 获取用户信息。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,
并在本地触发 userInfoUpdated
回调。你收到这个回调后,可以调用该方法,通过传入 User Account 获取包含了指定用户 UID 的 UserInfo
对象。
用户 User Account
errCode
方法调用失败,返回错误码userInfo
方法调用成功,获取包含了指定用户 UID 的 UserInfo
对象获取当前 SDK 的版本和 Build 信息。
当前 SDK 的版本
获取视频设备。
视频设备的 Array
初始化渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videosource
或 local
渲染视频的 Dom
初始化一个 AgoraRtcEngine
实例。
Agora 为 App 开发者签发的 App ID,每个项目都应该有一个独一无二的 App ID
加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方加入频道后,本地会触发 joinedChannel
回调;通信模式下的用户和直播模式下的主播加入频道后,远端会触发 userJoined
回调。
在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 rejoinedChannel
回调。
在 App 服务器端生成的用于鉴权的 Token:
(必填)标识通话频道的字符,长度在 64 个字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
(非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户
用户 ID,32 位无符号整数。
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
localUserRegistered
和 userInfoUpdated
userJoined
和 userInfoUpdated
回调在 App 服务器端生成的用于鉴权的 Token:
标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
用户 User Account。该参数为必须,最大不超过 255 字节,不可为 NULL。请确保加入频道的 User Account 的唯一性。
离开频道。
离开频道,即机挂断或退出通话。
该方法会把回话相关的所有资源都释放掉。该方法是异步操作,调用返回时并没有真正退出频道。
真正退出频道后,本地会触发 leaveChannel
回调;通信模式下的用户和直播模式下的主播离开频道后,远端会触发 removeStream
回调。
停止/恢复接收所有音频流。
停止/恢复接收所有视频流。
停止/恢复发送本地音频流。
成功调用该方法后,远端会触发 userMuteAudio
回调。
停止/恢复发送本地视频流。
成功调用该方法后,远端会触发 userMuteVideo
回调。
true
:停止发送本地视频流false
:发动本地视频流(默认)停止/恢复接收指定音频流。
指定的用户 ID
true
:停止接收指定用户的音频流false
:继续接收指定用户的音频流停止/恢复接收指定视频流。
指定用户的 ID
API 方法已执行回调。
SDK 执行的 API
当该方法调用失败时 SDK 返回的错误码
发生警告回调。
警告码
详细的警告信息
发生错误回调。
错误码
详细的错误信息
成功加入频道。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
提示频道内谁在说话以及说话者音量的回调。
该回调提示正在说话的一个用户的信息。默认禁用。可以通过 enableAudioVolumeIndication 方法开启;开启后,无论频道内是否有人说话,都会按方法中设置的时间间隔返回提示音量。
用户 ID
该用户音量
音量较高的用户人数
提示频道内谁在说话以及说话者音量的回调。
该回调提示频道内瞬时音量较高的几个用户的用户 ID 及他们的音量。默认禁用。可以通过 enableAudioVolumeIndication 方法开启;开启后,无论频道内是否有人说话,都会按方法中设置的时间间隔返回提示音量。
音量较高的说话者的信息,包含:
uid
:用户 IDvolume
:该用户的说话音量音量较高的用户人数
混音后总音量(分贝)。取值范围 [0,255]
离开频道回调。
调用 leaveChannel 方法成功离开频道后,SDK 会触发该回调。
通话相关统计信息。
通话信息详情
通话中本地视频流的统计信息回调。
本地视频流统计信息
通话中本地音频流的统计信息回调。
本地音频流统计信息
通话中远端视频流的统计信息回调。
远端视频流统计信息
通话中远端音频流的统计信息回调。
远端音频流统计信息
远端视频流传输的统计信息
远端音频流传输的统计信息
音频设备状态已改变回调。
设备 ID
设备类型,详见 MediaDeviceType
设备状态
1
:设备正在使用2
:设备被禁用4
:没有此设备8
:设备被拔出本地用户的音乐文件播放状态改变。
状态码
710
:音乐文件正常播放711
:音乐文件暂停播放713
:音乐文件停止播放714
:音乐文件报错。SDK 会在 err
中返回具体的报错原因错误码
701
:音乐文件打开出错702
:音乐文件打开太频繁703
:音乐文件播放异常中断远端音乐文件播放已开始回调。
当远端有用户调用 startAudioMixing 播放本地音乐文件,SDK 会触发该回调。
远端音乐文件播放已结束回调。
本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
指定音效的 ID。每个音效均有唯一的 ID。
视频设备变化回调。
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
设备 ID
设备类型,详见 MediaDeviceType
设备状态
1
:设备正在使用2
:设备被禁用4
:没有此设备8
:设备被拔出通话中每个用户的网络上下行 last mile 质量报告回调。
该回调描述每个用户在通话中的 last mile 网络状态,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
该回调每 2 秒触发一次。如果远端有多个用户,该回调每 2 秒会被触发多次。
用户 ID。表示该回调报告的是持有该 ID 的用户的网络质量。 当 uid 为 0 时,返回的是本地用户的网络质量
该用户的上行网络质量,基于上行发送码率、上行丢包率、平均往返时延和网络 抖动计算。
该用户的下行网络质量,基于下行网络的丢包率、平均往返延时和网络抖动计算。
通话前网络上下行 last mile 质量报告回调。
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
网络上下行质量,基于上下行网络的丢包率和抖动计算,探测结果主要反映上行网络的状态。
通话前网络质量探测报告回调。
在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
上下行 Last mile 质量探测结果。
已显示本地视频首帧回调。
本地视频首帧显示在本地视图上时,SDK 会触发此回调。
本地渲染视频的宽 (px)
本地渲染视频的高 (px)
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
用户 ID,指定是哪个用户的视频流
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
本地或远端视频大小和旋转信息发生改变回调。
图像尺寸和旋转信息发生变化的用户的用户 ID(本地用户的 uid
为 0
)
视频流的宽度(px)
视频流的高度(px)
旋转信息 [0, 360]
已显示首帧远端视频回调。
第一帧远端视频显示在视图上时,触发此调用。
用户 ID,指定是哪个用户的视频流
视频流宽(px)
视频流高(px)
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
远端用户(通信模式)/主播(直播模式)加入当前频道回调。
该回调在如下情况下会被触发:
新加入频道的远端用户/主播 ID
从本地调用 joinChannel 到发生此事件过去的时间(毫秒)
远端用户离开当前频道回调。
用户离开频道有两个原因:
离线用户或主播的用户 ID。
离线原因
0
:用户主动离开。1
:因过长时间收不到对方数据包,超时掉线。注意:由于 SDK 使用的是不可靠通道,也有可能对方主动离开本方没收到对方离开消息而误判为超时掉线。2
:用户身份从主播切换为观众。远端用户(通信模式)/主播(直播模式)离开当前频道回调。
用户离开频道有两个原因,即正常离开和超时掉线:
主播 ID
离线原因
远端用户暂停/重新发送音频流回调。
该回调是由远端用户调用 muteLocalAudioStream 方法关闭或开启音频发送触发的。
远端用户 ID
该用户是否暂停发送音频流
true
:该用户已暂停发送音频流false
:该用户已重新发送音频流远端用户暂停/重新发送视频流回调。
该回调是由远端用户调用 muteLocalVideoStream 方法关闭或开启音频发送触发的。
远端用户 ID
该用户是否暂停发送视频流
true
:该用户已暂停发送视频流false
:该用户已重新发送视频流用户 ID
该用户是否开启或关闭视频模块:
true
:该用户已启用视频模块。启用后,该用户可以进行视频通话或直播。false
:该用户已关闭视频模块。关闭后,该用户只能进行语音通话或直播,不能显示、发送自己的视频,也不能接收、显示别人的视频。用户 ID
该用户是否开启或关闭本地视频采集:
true
:该用户已启用本地视频采集。启用后,其他用户可以接收到该用户的视频流。false
:该用户已关闭视频采集。关闭后,该用户仍然可以接收其他用户的视频流,但其他用户接收不到该用户的视频流。网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。
接收到对方数据流消息的回调。
该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。
用户 ID
数据流 ID
接收到的流消息
流消息数据长度
接收对方数据流小时发生错误回调。
该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。
用户 ID
数据流 ID
丢失的消息数量
数据流中断后,后面缓存的消息数量
媒体引擎成功启动的回调。
Token 已过期回调。
调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接,重连时可能需要新的 Token。
该回调通知 App 需要生成新的 Token,并需调用 renewToken 为 SDK 指定新的 Token。
已发送本地音频首帧回调。
从本地用户调用 joinChannel 方法直至该回调被触发的延迟(毫秒)
已接收远端音频首帧回调。
发送音频帧的远端用户的 ID
从调用 joinChannel 方法直至该回调被触发的延迟(毫秒)
已解码远端音频首帧的回调
SDK 完成远端音频首帧解码,并发送给音频模块用以播放时,会触发此回调。有两种情况:
用户 ID,指定是哪个用户的音频流
从本地用户调用 joinChannel 方法加入频道直至该回调触发的延迟,单位为毫秒
检测到活跃用户回调。
如果用户开启了 enableAudioVolumeIndication 功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的 uid
。
当前时间段内声音最大的用户的 uid
(本地用户 uid
为 0
)
用户角色已切换回调。该
回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。
切换前的角色
切换后的角色
回放、录音设备、或 App 的音量发生改变。
设备类型
当前音量(分贝)。取值范围 [0, 255]
音频设备是否为静音状态
true
:音频设备已静音false
:音频设备未被静音屏幕共享对象成功加入频道回调。
该对象的用户 ID
屏幕共享对象 Token 已过期回调。
屏幕共享对象离开频道回调。
远端用户视频流状态发生改变回调。
发生视频流状态改变的远端用户的用户 ID。
远端视频流状态
远端视频流状态改变的具体原因
从本地用户调用 joinChannel 方法到发生本事件经历的时间,单位为 ms。
相机对焦区域已改变回调。
发生改变的对焦区域相对于左上角的 x 坐标。
发生改变的对焦区域相对于左上角的 y 坐标。
发生改变的对焦区域的宽度 (px)。
发生改变的对焦区域的高度 (px)。
摄像头曝光区域已改变回调。
发生改变的曝光区域相对于左上角的 x 坐标。
发生改变的曝光区域相对于左上角的 y 坐标。
发生改变的曝光区域的宽度 (px)。
发生改变的曝光区域的高度 (px)。
Token 服务即将过期回调。
在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。
即将服务失效的 Token
开启旁路推流的结果回调。
该回调返回 addPublishStreamUrl 方法的调用结果。用于通知主播是否推流成功。如果不成功,你可以在 error 参数中查看详细的错误信息。
新增的推流地址。
详细的错误信息
0
:推流成功1
:推流失败2
:参数错误。如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 配置 LiveTranscoding
,SDK 会返回该错误10
:推流超时未成功19
:推流地址已经在推流130
:推流已加密不能推流停止旁路推流的结果回调。
该回调返回 removePublishStreamUrl 方法的调用结果。用于通知主播是否停止推流成功。
主播停止推流的 RTMP 地址。
旁路推流设置被更新回调。该
回调用于通知主播 CDN 转码已成功更新。
setLiveTranscoding 方法中的转码合图参数(LiveTranscoding
)更新时,transcodingUpdated
回调会被触发并向主播报告更新信息。
导入在线媒体流状态回调。
该回调表明向直播导入的外部视频流的状态。
导入进直播的外部视频源的 URL 地址。
用户 ID。
导入的外部视频源状态
0
:外部视频流导入成功1
:外部视频流已存在2
:外部视频流导入未经授权3
:导入外部视频流超时4
:外部视频流导入失败5
:外部视频流停止导入失败6
:未找到要停止导入的外部视频流7
:要停止导入的外部视频流未经授权8
:停止导入外部视频流超时9
:停止导入外部视频流失败10
:导入的外部视频流被中断本地发布流已回退为音频流回调。
如果你调用了设置本地推流回退选项 setLocalPublishFallbackOption 并将 option
设置为 2
时,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
如果本地推流已回退为音频流,远端的 App 上会收到 userMuteVideo
的回调事件。
本地推流已回退或恢复:
true
:由于网络环境不理想,本地发布的媒体流已回退为音频流false
:由于网络环境改善,发布的音频流已恢复为音视频流远端订阅流已回退为音频流回调。
如果你调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 并将 option
设置为 2
时, 当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 remoteVideoStats
回调来监控远端视频大小流的切换。
远端用户的 ID
远端订阅流已回退或恢复:
true
:由于网络环境不理想,远端订阅流已回退为音频流false
:由于网络环境改善,订阅的音频流已恢复为音视频流是否开启麦克风:
true
:麦克风已启用false
:麦克风已禁用网络连接状态已改变回调。
该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因。
当前的网络连接状态
引起当前网络连接状态发生改变的原因
本地用户成功注册 User Account 回调。
本地用户成功调用 registerLocalUserAccount 方法注册用户 User Account,或调用 joinChannelWithUserAccount 加入频道后,SDK 会触发该回调,并告知本地用户的 UID 和 User Account。包含如下参数:
本地用户的 UID
本地用户的 User account
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发该回调。
远端用户的 ID
标识用户信息的 UserInfo
对象,包含用户 UID 和 User account
本地视频状态发生改变回调。
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态;当状态码为 3
时,
你可以在错误码查看返回的错误信息。 该接口在本地视频出现故障时,方便你了解当前视频的状态
以及出现故障的原因。
当前的本地视频状态码:
0
:本地视频默认初始状态1
:本地视频采集设备启动成功2
:本地视频首帧编码成功3
:本地视频启动失败本地视频错误码:
0
:本地视频状态正常1
:出错原因不明确2
:没有权限启动本地视频采集设备3
:本地视频采集设备正在使用中4
:本地视频采集失败,建议检查采集设备是否正常工作5
:本地视频编码失败本地音频状态发生改变回调。
本地音频的状态发生改变时(包括本地麦克风录制状态和音频编码状态),SDK 会触发该回调报告 当前的本地音频状态。在本地音频出现故障时,该回调可以帮助你了解当前音频的状态以及出现故障 的原因,方便你排查问题。
当前的本地音频状态:
0
本地音频默认初始状态。1
本地音频录制设备启动成功。2
本地音频首帧编码成功。3
本地音频启动失败。本地音频错误码:
0
本地音频状态正常。1
本地音频出错原因不明确。2
没有权限启动本地音频录制设备。3
本地音频录制设备已经在使用中。4
本地音频录制失败,建议你检查录制设备是否正常工作。5
本地音频编码失败。远端音频流状态发生改变回调。
远端用户/主播音频状态发生改变时,SDK 会触发该回调向本地用户报告当前的远端音频流状态。
发生音频状态改变的远端用户 ID。
远端音频流状态码
远端音频流状态改变的原因码
从本地用户调用 joinChannel 方法到发生本事件经历的时间, 单位为 ms。
跨频道媒体流转发状态发生改变回调。
当跨频道媒体流转发状态发生改变时,SDK 会触发该回调,并报告当前的转发状态以及相关的 错误信息。
跨频道媒体流转发状态码
跨频道媒体流转发出错的错误码
跨频道媒体流转发事件回调。
该回调报告跨频道媒体流转发过程中发生的事件。
跨频道媒体流转发事件码
暂停所有音效文件播放。
暂停播放音乐文件及混音。请在频道内调用该方法。
暂停音效文件播放。
指定音效的 ID。每个音效均有唯一的 ID
播放指定音效文件。
该方法播放指定的本地或在线音效文件。你可以在该方法中设置音效文件的播放次数、音调、音效的空间位置和增益,以及远端用户是否能听到该音效。
你可以多次调用该方法,通过传入不同的音效文件的 soundID 和 filePath,同时播放多个音效文件,实现音效叠加。为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。
调用该方法播放音效结束后,SDK 会触发 audioEffectFinished
回调。
指定音效的 ID。每个音效均有唯一的 ID
指定音效文件的绝对路径或 URL 地址(包含文件后缀名)。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 及 wav
设置音效循环播放的次数:
设置音效的音调,取值范围为 [0.5, 2]。默认值为 1.0,表示不需要修改音调。取值越小,则音调越低
设置是否改变音效的空间位置。取值范围为 [-1.0, 1.0]:
设置是否改变单个音效的音量。取值范围为 [0.0, 100.0]。默认值为 100.0。取值越小,则音效的音量越低
设置是否将音效传到远端:
预加载音效文件。
为保证通信畅通,请注意控制预加载音效文件的大小,并在 joinChannel 前就使用该方法完成音效预加载。 音效文件支持以下音频格式:mp3,aac,m4a,3gp,wav。
指定音效的 ID。每个音效均有唯一的 ID。
音效文件的绝对路径
给通话评分。
通过 getCallId 函数获取的通话 ID
给通话的评分,最低 1 分,最高 5 分
(非必选项)给通话的描述,可选,长度应小于 800 字节
注册本地用户 User account。
该方法为本地用户注册一个 User Account。注册成功后,该 User Account 即可标识该本地用户的身份,用户可以使用它加入频道。 成功注册 User Account 后,本地会触发 onLocalUserRegistered 回调,告知本地用户的 UID 和 User Account。
该方法为可选。如果你希望用户使用 User Account 加入频道,可以选用以下两种方式:
两种方式的区别在于,提前调用 registerLocalUserAccount,可以缩短使用 joinChannelWithUserAccount 进入频道的时间。
为保证通信质量,请确保频道内使用同一类型的数据标识用户身份。即同一频道内需要统一使用 UID 或 User Account。如果有用户通过 Agora Web SDK 加入频道,请确保 Web 加入的用户也是同样类型。
你的项目在 Agora Console 注册的 App ID
用户 User Account。该参数为必填,最大不超过 255 字节,不可填 null。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
释放 AgoraRtcEngine
实例。
调用该方法后,用户将无法再使用和回调该 SDK 内的其它方法。
删除导入的在线媒体流。
成功删除后,会触发 removeStream
回调,其中 uid
为 666
已导入、待删除的外部视频流 URL 地址
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 streamUnpublished
回调,报告删除旁路推流地址的状态。
待删除的推流地址,格式为 RTMP。该字符长度不能超过 1024 字节。
将指定用户的视频从高帧率流中删除。删除后,你可以调用 setVideoRenderFPS 方法对视频流进行控制。
用户 ID
更新 Token。
如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当报告错误码 109
或 tokenPrivilegeWillExpire
回调时,
你应重新获取 Token,然后调用该 API 更新 Token,否则 SDK 无法和服务器建立连接。
新的 Token
更新渲染尺寸。 当视图尺寸发生改变时,该方法可以根据视窗尺寸长宽比更新缩放比例,在收到下一个视频帧时,按照新的比例进行渲染。 该方法可以防止视图不连贯的问题。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
恢复播放所有音效文件。
恢复播放音乐文件及混音。请在频道内调用该方法。
恢复播放指定音效文件。
指定音效的 ID。每个音效均有唯一的 ID
发送数据流。
该方法发送数据流消息到频道内所有用户。
SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。
成功调用该方法后,远端会触发 streamMessage
回调,远端用户可以在该回调中获取接收到的流消息;
若调用失败,远端会触发 streamMessageError
回调。
数据流 ID,createDataStream 的返回值
待发送的数据
设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而不是非得从头到尾播放一个文件。
当前播放进度,单位为毫秒
通过设备 ID 指定音频播放设备
音频播放设备的 ID
设置当前音频播放设备为静音/不静音。
是否设置当前音频播放设备静音:
true
:设置当前音频播放设备静音false
:设置当前音频播放设备不静音设置音频播放设备的音量
播放设备音量(分贝)。取值范围 [0,255]
设置音频编码配置。
设置采样率、码率、编码模式和声道数:
0
:默认设置1
1
:Speech standard:指定 32 kHz 采样率,语音编码,单声道,编码码率最大值为 18 Kbps2
:Music standard:指定 48 kHz 采样率,音乐编码,单声道,编码码率最大值为 48 Kbps3
:Music standard stereo:指定 48 kHz采样率,音乐编码,双声道,编码码率最大值为 56 Kbps4
:Music high quality:指定 48 kHz 采样率,音乐编码,单声道,编码码率最大值为 128 Kbps5
:Music high quality stereo:指定 48 kHz 采样率,音乐编码,双声道,编码码率最大值为 192 Kbps设置音频应用场景:
0
:默认的音频应用场景1
:Chatroom entertainment:娱乐应用,需要频繁上下麦的场景2
:Education:教育应用,流畅度和稳定性优先3
:Game streaming:游戏直播应用,需要外放游戏音效也直播出去的场景4
:Showroom:秀场应用,音质优先和更好的专业外设支持5
:Chatroom gaming:游戏开黑设备音频录制设备
设备 ID
设置当前音频录制设备静音/不静音。
是否设置当前音频录制设备静音:
true
:设置静音false
:设置不静音设置录音设备的音量
录音设备的音量(分贝)。取值范围 [0, 255]
开启或关闭本地美颜功能,并设置美颜效果选项。
是否开启美颜功能:
true
:开启false
:(默认)关闭设置美颜选项,包含如下字段:
对比度,与 lighteningLevel
搭配使用。取值越大,明暗对比越强烈:
0
低对比度1
(默认)正常对比度2
高对比度亮度,可用来实现美白等视觉效果。取值范围为 [0.0, 1.0],其中 0.0 表示原始亮度,默认值为 0.7。
红润度,可用来实现红润肤色等视觉效果。取值范围为 [0.0, 1.0],其中 0.0 表示原始红润度,默认值为 0.1。
平滑度,可用来实现祛痘、磨皮等视觉效果。取值范围为 [0.0, 1.0],其中 0.0 表示原始平滑等级,默认值为 0.5。
设置摄像头的采集偏好。
一般的视频通话或直播中,默认由 SDK 自动控制摄像头的输出参数。在如下特殊场景中,默认的参数通常无法满足需求,或可能引起设备性能问题,我们推荐调用该接口设置摄像头的采集偏好:
CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE(1)
,避免性能问题。CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE(1)
,以优化 CPU 和内存的资源分配CAPTURER_OUTPUT_PREFERENCE_PREVIEW(2)
摄像头采集偏好
设置频道模式。
Agora 会根据你的 app 使用场景进行不同的优化。
频道模式:
0
:(默认)通信1
:直播2
:游戏设置直播模式下的用户角色。
加入频道前,用户需要通过本方法设置观众或主播模式。
加入频道后,用户可以通过本方法切换用户模式。直播模式下,如果你在加入频道后调用该方法切换用户角色,
调用成功后,本地会触发 clientRoleChanged
事件;远端会触发 userJoined
事件。
用户角色:
当 setRenderMode 方法中的渲染模式设置为 3
时,调用该方法可以设备自定义的渲染器。
customRender
是一个类.
自定义渲染器
设置是否默认接收音频流。
该方法在加入频道前后都可调用。如果在加入频道后调用 setDefaultMuteAllRemoteAudioStreams (true)
,会接收不到后面加入频道的用户的音频流。
设置是否默认接收视频流。
该方法在加入频道前后都可调用。如果在加入频道后调用 setDefaultMuteAllRemoteVideoStreams (true)
,会接收不到设置后加入频道的用户的视频流。
设置播放音效文件音量。
音效文件的音量。取值范围为 [0.0, 100.0],100.0 为默认值,表示原始音量。
设置内置的加密方案。
Agora Native SDK 支持内置加密功能,默认使用 AES-128-XTS 加密方式。如需使用其他加密方式,可以调用该 API 设置。
同一频道内的所有用户必须设置相同的加密方式和密码才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
加密方式。目前支持以下几种:
启用内置加密,并设置数据加密密码。
如需启用加密,请在 joinChannel 前调用该方法,并设置加密的密码。 同一频道内的所有用户应设置相同的密码。当用户离开频道时,该频道的密码会自动清除。如果未指定密码或将密码设置为空,则无法激活加密功能。
加密密码
是否启用全频带编解码器(48 kHz 采样率):
是否启用立体声编解码器:
是否启用高码率模&
AgoraRtcEngine