输入在线媒体流。
该方法适用于 Native SDK v2.4.1 及之后的版本。
该方法通过在服务端拉取一路视频流并发送到频道中,将正在播出的视频输入到正在进行的直播中。 可主要应用于赛事直播、多人看视频互动等直播场景。
调用该方法后,SDK 会在本地触发 streamInjectStatus
回调,报告导入在线媒体流的状态。
成功导入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 userJoined
回调,其中 uid
为 666。
添加到直播中的媒体流 URL 地址,支持 RTMP, HLS, HTTP-FLV 协议。
外部导入的媒体流的配置。
2
: 输入的 URL 为空。请重新调用该方法,并确认输入的媒体流的 URL 是有效的。7
: 引擎没有初始化。请确认调用该方法前已创建 AgoraRtcEngine
对象并完成初始化。4
: 频道非直播场景。请调用 setChannelProfile 并将频道设置为直播场景再调用该方法。3
: 用户没有加入频道。增加旁路推流地址。
调用该方法后,SDK 会在本地触发 streamPublished 回调,报告增加旁路推流地址的状态。
CDN 推流地址,格式为 RTMP。该字符长度不能超过 1024 字节,且不支持中文等特殊字符。
设置是否转码:
true
,需先调用 setLiveTranscoding 方法。ERR_INVALID_ARGUMENT (2)
: RTMP 流地址为空或者字符长度为 0。ERR_NOT_INITIALIZED (7)
: 使用该功能之前没有初始化 AgoraRtcChannel
。将指定用户的视频流添加为高帧率流。添加为高帧率流后,你可以调用 setVideoRenderHighFPS 方法对视频流进行控制。
用户 ID
待添加的水印图片的本地路径。本方法支持从本地绝对/相对路径添加水印图片。
待添加的水印图片的设置选项,详见 WatermarkOptions
调节音乐文件的本地播放音量。
音乐文件的本地播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的远端播放音量。
音乐文件的远端播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节音乐文件的播放音量。
音乐文件播放音量,取值范围为 [0, 100],默认值为 100,表示原始文件音量
调节播放人声的音量。
播放人声的信号音量。为避免回声并提升通话质量,Agora 建议将取值 为 [0,100]。如设值需超过 100,请联系技术支持。
调节录音音量。
录音信号音量,为避免回声并提升通话质量,Agora 建议取值为 [0,100]。如果设值需超过 100,请联系技术支持。
远端用户 ID。
播放音量,取值范围为 [0,100]:
投诉通话质量。
通话 getCallId 方法获取的通话 ID
给通话的描述。可选参数,长度应小于 800 字节
创建并获取一个 AgoraRtcChannel
对象。
你可以多次调用该方法,创建多个 AgoraRtcChannel
对象,再调用各 AgoraRtcChannel
对象
中的 joinChannel 方法,实现同时加入多个频道。
加入多个频道后,你可以同时订阅各个频道的音、视频流;但是同一时间只能在一个频道发布一路音、视频流。
能标识频道的频道名,长度在 64 字节以内的字符。以下为支持的字符集 范围(共 89 个字符):
channelName
设为空字符 "",SDK 会返回 ERR_REFUSED(5)
创建数据流。
该方法用于创建数据流。AgoraRtcEngine
生命周期内,每个用户最多只能创建 5 个数据流。
true
:接收方 5 秒内会收到发送方所发送的数据,否则会收到 streamMessageError
回调并获得相应报错信息false
:接收方不保证收到,就算数据丢失也不会报错true
:接收方 5 秒内会按照发送方发送的顺序收到数据包false
:接收方不保证按照发送方发送的顺序收到数据包销毁渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
destroyRenderer
方法的错误回调
关闭音频模块。
关闭网络测试。
关闭视频模块。
该方法可以在加入频道前或者通话中调用:
成功掉调用该方法后,远端会触发 userEnableVideo(fasle)
回调。
若想再次开启视频模块,请调用 enableVideo 方法。
启用音频模块(默认为开启状态)。
启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。启用该方法后,无论频道内是否有人说话,
都会在说话声音音量提示回调 groupAudioVolumeIndication
回调中按设置的间隔时间返回音量提示。
指定音量提示的时间间隔:
groupAudioVolumeIndication
回调。平滑系数,指定音量提示的灵敏度。取值范围为 [0, 10]。建议值为 3,数字越大,波动越灵敏;数字越小,波动越平滑
true
: 开启本地人声检测功能。开启后,groupAudioVolumeIndication
回调的 vad
参数会报告是否在本地检测到人声。false
:(默认)关闭本地人声检测功能。除引擎自动进行本地人声检测的场景外,groupAudioVolumeIndication
回调的 vad
参数不会报告是否在本地检测到人声。开/关视频双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。
其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
指定双流或者单流模式:
启用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。
该方法主要用于以下两种场景:
开/关本地音频采集。
当 App 加入频道时,它的语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收或播放远端音频流,enableLocalAudio(false)
适用于只听不发的用户场景。语音功能关闭或重新开启后,会收到回调 microphoneEnabled
。
开/关本地视频采集。
该方法禁用或重新启用本地视频采集,不影响接收远端视频。
调用 enableVideo 后,本地视频即默认开启。你可以调用 enableLocalVideo(false) 关闭本地视频采集。关闭后如果想要重新开启,则可调用 enableLocalVideo(true)。
成功禁用或启用本地视频采集后,远端会触发 userEnableLocalVideo 回调。
开启声卡采集。
一旦开启声卡采集,SDK 会采集本地所有的声音。
是否开启声卡采集:
声卡的设备名。
开启/关闭远端用户的语音立体声。
如果想调用 setRemoteVoicePosition 实现听声辨位的功能,请确保在调用 joinChannel 方法前调用该方法。
是否开启远端用户语音立体声:
启用视频模块。
该方法可以在加入频道前或者通话中调用。
成功调用该方法后,远端会触发 userEnableVideo(true)
回调。
若想关闭视频模式,请调用 disableVideo 方法。
是否打开与 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 的版本
初始化渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videosource
或 local
渲染视频的 Dom
初始化一个 AgoraRtcEngine
实例。
Agora 为 App 开发者签发的 App ID,每个项目都应该有一个独一无二的 App ID
101
: App ID 无效,请检查你的 App ID加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 leaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方加入频道后,本地会触发 joinedChannel
回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 userJoined
回调。
在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 rejoinedChannel
回调。
在 App 服务器端生成的用于鉴权的 Token:
(必填)标识通话频道的字符,长度在 64 个字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
(非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户
用户 ID,32 位无符号整数。
2
,3
,5
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
localUserRegistered
和 userInfoUpdated
userJoined
和 userInfoUpdated
回调在 App 服务器端生成的用于鉴权的 Token:
标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
用户 User Account。该参数为必须,最大不超过 255 字节,不可为 NULL。请确保加入频道的 User Account 的唯一性。
2
,3
,5
离开频道。
离开频道,即机挂断或退出通话。
该方法会把回话相关的所有资源都释放掉。该方法是异步操作,调用返回时并没有真正退出频道。
真正退出频道后,本地会触发 leaveChannel
回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 removeStream
回调。
停止/恢复接收所有音频流。
停止/恢复接收所有视频流。
停止/恢复发送本地音频流。
成功调用该方法后,远端会触发 userMuteAudio
回调。
停止/恢复发送本地视频流。
成功调用该方法后,远端会触发 userMuteVideo
回调。
true
:停止发送本地视频流false
:发动本地视频流(默认)停止/恢复接收指定音频流。
如果之前有调用过 muteAllRemoteAudioStreams(true) 停止订阅所有远端
音频,在调用 muteRemoteAudioStreams
之前请确保你已调用 muteAllRemoteAudioStreams(false)。
muteAllRemoteAudioStreams
是全局控制,muteRemoteAudioStream
是精细控制。
指定的用户 ID
true
:停止接收指定用户的音频流false
:继续接收指定用户的音频流停止/恢复接收指定视频流。
如果之前有调用过 muteAllRemoteVideoStreams(true) 停止订阅所有远端
视频,在调用 muteRemoteVideoStreams
之前请确保你已调用 muteAllRemoteVideoStreams(false)。
muteAllRemoteVideoStreams
是全局控制,muteRemoteVideoStream
是精细控制。
指定用户的 ID
API 方法已执行回调。
SDK 执行的 API
当该方法调用失败时 SDK 返回的错误码
发生警告回调。
警告码
详细的警告信息
发生错误回调。
错误码
详细的错误信息
成功加入频道。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。
频道名
用户 ID
从调用 joinChannel 开始到发生此事件过去的时间(毫秒)
提示频道内谁在说话以及说话者音量的回调。
该回调提示频道内瞬时音量较高的几个用户的用户 ID 及他们的音量。默认禁用。可以通过 enableAudioVolumeIndication 方法开启;开启后,无论频道内是否有人说话,都会按方法中设置的时间间隔返回提示音量。
音量较高的说话者的信息,包含:
uid
:用户 IDvolume
:本地用户:该用户的说话音量;远端用户:说话者各自混音后的音量vad
:本地用户:报告本地用户人声状态;远端用户:0音量较高的用户人数:
混音后总音量(分贝)。取值范围 [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
离线原因
远端用户 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 方法直至该回调被触发的延迟(毫秒)
用户 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
新增的推流地址。
详细的错误信息
0
:推流成功1
:推流失败2
:参数错误。如果你在调用 addPublishStreamUrl 前没有调用 setLiveTranscoding 配置 LiveTranscoding
,SDK 会返回该错误10
:推流超时未成功19
:推流地址已经在推流130
:推流已加密不能推流停止旁路推流的结果回调。
该回调返回 removePublishStreamUrl 方法的调用结果。用于通知主播是否停止推流成功。
主播停止推流的 RTMP 地址。
RTMP 推流状态发生改变回调。
该回调返回本地用户调用 addPublishStreamUrl 或 removePublishStreamUrl 方法的结果。
RTMP 推流状态发生改变时,SDK 会触发该回调,并在回调中明确状态发生改变的 URL 地址及 当前推流状态。该回调方便推流用户了解当前的推流状态;推流出错时,你可以通过返回的错误码 了解出错的原因,方便排查问题。
推流状态发生改变的 URL 地址
推流状态:
0
: 推流未开始或已结束。成功调用 removePublishStreamUrl 后会返回该状态。1
: 正在连接 Agora 推流服务器和 RTMP 服务器。调用 addPublishStreamUrl
后会返回该状态。2
: 推流正在进行。成功推流后,会返回该状态。3
: 正在恢复推流。当 CDN 出现异常,或推流短暂中断时,SDK 会自动尝试恢复推流,并返回该状态。2
。4
。如果觉得 60 秒太长,也可以主动调用
addPublishStreamUrl,再调用 removePublishStreamUrl 尝试重连。4
: 推流失败。失败后,你可以通过返回的错误码排查错误原因,也可以再次调用
addPublishStreamUrl 重新尝试推流。推流错误码:
0
: 推流成功。1
: 参数无效。请检查输入参数是否正确。2
: 推流已加密,不能推流。3
: 推流超时未成功。可调用 addPublishStreamUrl 重新推流。4
: 推流服务器出现错误。请调用 addPublishStreamUrl 重新推流。5
: RTMP 服务器出现错误。6
: 推流请求过于频繁。7
: 单个主播的推流地址数目达到上线 10。请删掉一些不用的推流地址再增加推流地址。8
: 主播操作不属于自己的流。例如更新其他主播的流参数、停止其他主播的流。请检查 App 逻辑。9
: 服务器未找到这个流。10
: 推流地址格式有错误。请检查推流地址格式是否正确。旁路推流设置被更新回调。该
回调用于通知主播 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
: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]
开启或关闭本地美颜功能,并设置美颜效果选项(仅适用于 Windows 平台)。
是否开启美颜功能:
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 采样率):
是否启用立体声编解码器:
是否启用高码率模式:
设置直播转码。
调用该方法更新 transcoding
参数时,SDK 会触发 transcodingUpdated
回调。
旁路推流转码合图相关设置
设置弱网条件下发布的音视频流回退选项。
网络不理想的环境下,音、视频的质量都会下降。使用该接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY (2)
后,SDK 会:
当本地推流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 localPublishFallbackToAudioOnly
回调。
本地推流回退处理选项:
STREAM_FALLBACK_OPTION_DISABLED (0)
:(默认)上行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW (1)
:(默认)下行网络较弱时只接收视频小流。该选项只对本方法无效。STREAM_FALLBACK_OPTION_AUDIO_ONLY (2)
:上行网络较弱时只发布音频流设置本地视频镜像。
该方法设置本地视频镜像,须在 startPreview 前设置。如果在开启预览后设置, 需要重新开启预览才能生效。
设置本地视频镜像模式:
设置本地语音变声。
设置本地语音的变声效果选项
设置本地语音音效均衡。
频谱子带索引。取值范围是 [0, 9],分别代表 10 个频带,对应的中心频率分别是 31,62,125,250,500,1k,2k,4k,8k,16 kHz
增益 (dB)。取值范围是 [-15, 15],默认值为 0
设置本地语音音调。
语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调
设置本地音效混响。
混响音效类型。:
0
:原始声音强度 (dB),即所谓的 dry signal,取值范围 [-20, 10]1
:早期反射信号强度 (dB),即所谓的 wet signal,取值范围 [-20, 10]2
:所需混响效果的房间尺寸。一般房间越大,混响越强,取值范围 [0, 100]3
:Wet signal 的初始延迟长度 (ms),取值范围 [0, 200]4
:混响持续的强度,取值范围为 [0, 100]设置混响音效的效果数值,各数值请参考 reverbKey
设置预设的本地语音混响效果选项。
预设的本地语音混响效果选项
设置日志文件。
设置 SDK 的输出 log 文件。SDK 运行时产生的所有 log 将写入该文件。你的 app 必须保证指定的目录存在而且可写。
日志文件的完整路径
设置 SDK 输出的日志文件大小(KB)。
Agora SDK 设有 2 个日志文件,每个文件默认大小为 512 KB。如果你将 size
设置为 1024 KB,SDK 会最多输出 2 M 的日志文件。如果日志文件超出设置值,新的日志会覆盖之前的日志。
指定 SDK 输出日志文件的内存大小(KB)
设置日志文件过滤器。
该方法设置 SDK 的输出日志过滤等级。不同的过滤等级可以单独或组合使用。
日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。 例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
设置过滤器等级
0
:不输出任何日志0x080f
:输出所有的 API 日志,即CRITICAL、ERROR、WARNING、INFO 和 DEBUG 级别的日志。如果你想获取最完整的日志,可将日志级别设为该等级0x000f
:输出 CRITICAL、ERROR、WARNING、INFO 级别的日志。我们推荐你将日志级别设为该等级0x000e
:仅输出 CRITICAL、ERROR、WARNING 级别的日志0x000c
:仅输出 CRITICAL、ERROR 级别的日志0x0008
:仅输出 CRITICAL 级别的日志通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 选项默认不公开。声网工程师正在努力寻求以标准化方式公开 JSON 选项。
JSON 字符串形式的参数
设置默认订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode(false) 关闭双流模式, 接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流,小流则是低分辨率低码率的视频流。
正常情况下,用户接收大流。如需默认接收小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
设置视频流的类型:
设置弱网条件下订阅的音视频流回退选项。
网络不理想的环境下,音、视频的质量都会下降。使用该接口并将 option 设置为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW (1)
或者 STREAM_FALLBACK_OPTION_AUDIO_ONLY (2)
后,SDK 会:
当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 remoteSubscribeFallbackToAudioOnly
回调。
远端订阅流回退处理选项:
STREAM_FALLBACK_OPTION_DISABLED (0)
:下行网络较弱时,不对音视频流作回退处理,但不能保证音视频流的质量STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW (1)
:(默认)下行网络较弱时只接收视频小流。该选项只对该方法有效,对 setLocalPublishFallbackOption 方法无效STREAM_FALLBACK_OPTION_AUDIO_ONLY (2)
:下行网络较弱时,先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流设置远端用户媒体流的优先级。
如果将某个远端用户的优先级设为高,那么发给这个用户的音视频流的优先级就会高于其他用户。
该方法可以与 setRemoteSubscribeFallbackOption 搭配使用。如果开启了订阅流回退选项,弱网下 SDK 会优先保证高优先级用户收到的流的质量。
远端用户的 ID
远端用户的需求优先级
设置订阅的视频流类型。
在网络条件受限的情况下,如果发送端没有调用 enableDualStreamMode(false) 关闭双流模式, 接收端可以选择接收大流还是小流。其中,大流可以接为高分辨率高码率的视频流,小流则是低分辨率低码率的视频流。
正常情况下,用户默认接收大流。如需接收小流,可以调用本方法进行切换。SDK 会根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。
视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
调用本方法的执行结果将在 apiCallExecuted
中返回。
用户 ID
视频流类型
设置远端用户声音的空间位置和音量,方便本地用户听声辨位。
用户通过调用该接口,设置远端用户声音出现的位置,左右声道的声音差异会让用户产生声音的方位感,从而判断出远端用户的实时位置。 在多人在线游戏场景,如吃鸡游戏中,该方法能有效增加游戏角色的方位感,模拟真实场景。
远端用户的 ID
设置远端用户声音出现的位置,取值范围为 [-1.0, 1.0]:
设置远端用户声音的音量,取值范围为 [0.0, 100.0],默认值为 100.0,表示该用户的原始音量。取值越小,则音量越低
设置渲染模式。
该方法确定是使用 WebGL 渲染还是软件渲染。
渲染模式:
设置屏幕共享内容类型。
设置屏幕共享的内容类型。Agora SDK 会根据不同的内容类型,使用不同的算法对共享效果进行优化。 如果不调用该方法,SDK 会将屏幕共享的内容默认为 CONTENT_HINT_NONE ,即无指定的内容类型。
指定屏幕共享的内容类型。详见 VideoContentHint
设置视频设备。
设备 ID
设置视频编码属性。
该方法设置视频编码属性。每个属性对应一套视频参数,如分辨率、帧率、码率、视频方向等。 所有设置的参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。
如果用户加入频道后不需要重新设置视频编码属性,则 Agora 建议在 enableVideo 前调用该方法,可以加快首帧出图的时间。
视频编码属性
视频属性
是否交换宽高值:
视频偏好选项:
设置视频渲染的分辨率。
该方法只对发送给 js 层的视频数据有效。其他端的视频分辨率由 setVideoEncoderConfiguration 方法决定。
渲染器的类型:
目标用户的 ID
想要发送的视频宽度
想要发送的视频高度
设置视频的全局渲染帧率。
该方法主要用来提升 js 渲染的性能。完成设置后,视频数据会被强制按设置的帧率进行传输,以降低 js 渲染的 CPU 消耗。
渲染帧率(fps)
设置高帧率流的渲染帧率。
其中高帧率流指调用 addVideoRenderToHighFPS 方法添加至高帧率的视频流。
渲染帧率(fps)
设置单个音效文件的音量。
指定音效的 ID。每个音效均有唯一的 ID
音效文件的音量。取值范围为 [0.0, 100.0]。100.0 为默认值
设置本地视图和渲染器。
初始化视图的 Dom
双实例方法:设置 videoSource
的渲染器
播放共享视频的 Dom
设置视窗内容显示模式。
用户 ID,表示设置的是哪个用户的流。设置远端用户的流时,请确保你已先调用 subscribe 方法订阅该远端用户流。
视窗内容显示模式:
开始音频设备回路测试。
该方法测试本地的音频设备是否正常工作。
调用该方法后,麦克风会采集本地语音并通过扬声器播放出来,用户需要配合说一段话。SDK 会通过 groupAudioVolumeIndication
回调向 App 上报音量信息。
SDK 返回 groupAudioVolumeIndication
回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。
开始播放音乐文件及混音。
该方法指定本地或在线音频文件来和麦克风采集的音频流进行混音或替换。替换是指用音频文件替换麦克风采集的音频流。该方法可以选择是否让对方听到本地播放的音频,并指定循环播放的次数。
音乐文件开始播放后,本地会收到 audioMixingStateChanged
回调,报告音乐文件播放状态发生改变。
指定需要混音的本地或在线音频文件的绝对路径(包含文件后缀名)。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 及 wav
true
:只有本地可以听到混音或替换后的音频流false
:本地和对方都可以听到混音或替换后的音频流true
:只推动设置的本地音频文件或者线上音频文件,不传输麦克风收录的音频false
:音频文件内容将会和麦克风采集的音频流进行混音指定音频文件循环播放的次数:
-1
:无限循环开始音频播放设备测试。
该方法检测音频播放设备是否正常工作。SDK 会播放用户指定的音乐文件,如果用户可以听到声音,则说明播放设备正常工作。
用来测试的音乐文件的路径
开始客户端录音。
Agora SDK 支持通话过程中在客户端进行录音。调用该方法后,你可以录制频道内所有用户的音频, 并得到一个包含所有用户声音的录音文件。录音文件格式可以为:
录音文件在本地保存的绝对路径,由用户自行指定,需精确到文件名及格式,
例如:c:/music/audio.aac
(Windows)和 file:///Users/Agora/Music/audio.aac
(macOS)。
录音采样率(Hz),可以设为以下值:
录音音质:
0
: 低音质。采样率为 32 kHz,录制 10 分钟的文件大小为 1.2 M 左右。1
: 中音质。采样率为 32 kHz,录制 10 分钟的文件大小为 2 M 左右。2
: 高音质。采样率为 32 kHz,录制 10 分钟的文件大小为 3.75 M 左右。开始音频录制设备测试。
该方法测试麦克风是否正常工作。开始测试后,SDK 会通过 groupAudioVolumeIndication
回调向 App 上报音量信息。
groupAudioVolumeIndication
回调的周期(毫秒)
开始跨频道媒体流转发。
该方法可用于实现跨频道连麦等场景。
成功调用该方法后,SDK 会触发 channelMediaRelayState
和 channelMediaRelayEvent
回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
channelMediaRelayState
回调报告 ChannelMediaRelayState 中的
状态码 1
和 ChannelMediaRelayError 中错误码为 0
,且 channelMediaRelayEvent
回调报告
ChannelMediaRelayEvent 中的事件码 4
,则表示 SDK 开始在源频道和目标频道
之间转发媒体流。channelMediaRelayState
回调报告 ChannelMediaRelayState 中的
状态码 3
,则表示跨频道媒体流转发出现异常。跨频道媒体流转发参数配置
开始语音通话回路测试。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。
在测试过程中,用户先说一段话,声音会在设置的时间间隔(单位为秒)后回放出来。如果用户能正常听到自己刚才说的话, 就表示系统音频设备和网络连接都是正常的。
设置返回语音通话回路测试结果的时间间隔(s)。取值范围为 [2, 10],默认为 10。
开始通话前网络质量探测。
启用该方法后,SDK 会向用户反馈上下行网络的带宽、丢包、网络抖动和往返时延数据。SDK 会一次返回如下两个回调:
lastMileQuality
:视网络情况约 2 秒内返回。该回调通过打分反馈上下行网络质量,更贴近用户的主观感受。lastmileProbeResult
:视网络情况约 30 秒内返回。该回调通过客观数据反馈上下行网络质量,因此更客观。该方法主要用于以下两种场景:
last mile 网络探测配置
通过窗口信息共享屏幕
待共享的窗口 ID
共享视频的编码帧率(fps)。默认值为 5,建议不要超过 15
(可选)共享区域相对于整个屏幕左上角的位置。如不填,则表示共享整个窗口。由如下参数组成:
窗口底部位置
窗口左侧位置
窗口右侧位置
窗口顶部位置
共享视频的码率(Kbps);默认值为 0,表示由 SDK 根据当前共享的分辨率计算出一个合理的值
待共享的窗口 ID
共享视频的编码帧率(fps)。默认值为 5,建议不要超过 15
共享窗口相对于屏幕左上角的相对位置和大小,可设为 null
共享视频的码率(Kbps);默认值为 0,表示由 SDK 根据当前共享的分辨率计算出一个合理的值
通过指定区域共享屏幕。
共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
指定待共享的屏幕相对于虚拟屏的位置。详见 {@link screenSymbol}
(可选)指定待共享区域相对于整个屏幕屏幕的位置。如不填,则表示共享整个屏幕。 如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0 , 则共享整个屏幕。详见 CaptureRect
屏幕共享的编码参数配置。详见 CaptureParam
通过窗口 ID 共享窗口。
共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 ID。
指定待共享的窗口 ID
可选)指定待共享的区域相对于整个窗口的位置。如不填,则表示共享整个窗口。 如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容; 如果宽或高为 0,则共享整个窗口。详见 CaptureRect
屏幕共享的编码参数配置。详见 CaptureParam
双实例方法:开启预览共享屏幕。
开始视频设备测试。
该方法测试视频采集设备是否正常工作。
停止播放所有音效文件。
停止音频设备回路测试。
停止播放音乐文件及混音。请在频道内调用该方法。
停止播放设备测试。
停止音频录制设备测试。
停止跨频道媒体流转发。
一旦停止,主播会退出所有目标频道。
成功调用该方法后,SDK 会触发 channelMediaRelayState
回调。
如果报告 ChannelMediaRelayState 中的状态码 0
和 ChannelMediaRelayError
中的错误码 0
,则表示已停止转发媒体流。
停止语音通话回路测试。
停止播放指定音效文件。
指定音效的 ID。每个音效均有唯一的 ID
停止通话前 last mile 网络质量探测。
停止视频预览。
停止共享屏幕。
双实例方法:停止共享屏幕。
双实例方法:停止预览共享屏幕。
停止视频设备测试。
订阅远端用户并初始化渲染器。
想要订阅的远端用户的 ID
初始化渲染器的 Dom
快速切换直播频道。
当直播频道中的观众想从一个频道切换到另一个频道时,可以调用该方法,实现快速切换。
成功调用该方切换频道后,本地会先收到离开原频道的回调 leavechannel
,
再收到成功加入新频道的回调 joinedChannel
。
The token generated at your server:
(Required) Pointer to the unique channel name for the Agora RTC session in the string format smaller than 64 bytes. Supported characters:
2
,3
,5
/**
Switches to a different channel.This method allows the audience of a Live-broadcast channel to switch to a different channel.
After the user successfully switches to another channel, the leavechannel and joinedChannel callbacks are triggered to indicate that the user has left the original channel and joined a new one.
释放音效文件。
指定音效的 ID。每个音效均有唯一的 ID
更新媒体流转发的频道。
成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道,或退出当前的转发频道,可以 调用该方法。
成功调用该方法后,SDK 会触发 channelMediaRelayState
回调,向你报告
ChannelMediaRelayEvent 中的 事件码 7
。
跨频道媒体流转发参数配置
更新屏幕共享的编码参数配置。
屏幕共享的编码参数配置。详见 CaptureParam
更新共享区域。
共享区域相对于整个屏幕左上角的位置。如不填,则表示共享整个窗口。由如下参数组成:
窗口底部位置
窗口左侧位置
窗口右侧位置
窗口顶部位置
双实例方法:对屏幕共享流开启双流模式。
是否开始双流模式:
是否开启与 Web SDK 之间的互通:
true
:开启与 Web SDK 的互通false
:不开启与 Web SDK 的互通双实例方法:初始化 videoSource
对象
你在 Agora Console 创建项目的 APP ID
ERR_INVALID_APP_ID (101)
: App ID 无效,请检查你的 App ID双实例方法:videoSource
加入频道。
在 App 服务器端生成的用于鉴权的 Token:
标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
频道信息
videoSource
的用户 ID。一个频道内不能出现相同的用户 ID。请确保 videoSource
用户 ID 和用户 joinChannel 时使用的 uid
不同。
双实例方法:videoSource
离开频道。
双实例方法:释放 videoSource
对象。
双实例方法:更新 videoSource
的 Token
新的 Token
双实例方法:设置 videoSource
的频道场景。
频道场景:
双实例方法:设置屏幕共享对象的日志。
日志文件的完整路径
双实例方法:通过 JSON 配置 SDK 提供技术预览或特别定制功能。
JSON 格式的字符串。
双实例方法:设置共享屏幕的内容类型。
Agora SDK 会根据不同的内容类型,使用不同的算法对共享效果进行优化。
如果不调用该方法,SDK 会将屏幕共享的内容默认为 CONTENT_HINT_NONE (0)
,即无指定的内容类型。
共享屏幕的内容类型
双实例方法:设置 videoSource
的视频属性。
视频属性
是否交换视频的宽和高:
双实例方法:通过屏幕信息共享屏幕。
屏幕标识:
(可选)共享区域相对于整个屏幕左上角的位置。如不填,则表示共享整个屏幕。
屏幕共享的编码配置
双实例方法:通过窗口信息共享屏幕。
窗口 ID
(可选)共享区域相对于整个窗口左上角的位置。如不填,则表示共享整个窗口。
屏幕共享的编码配置
双实例方法:更新共享屏幕的编码配置。
共享屏幕的编码配置
双实例方法:更新共享区域。
共享区域相对于整个屏幕左上角的位置。如不填,则表示共享整个窗口。由如下参数组成:
窗口底部位置
窗口左侧位置
窗口右侧位置
窗口顶部位置
AgoraRtcEngine