导入在线媒体流。
该方法适用于 Native SDK v2.4.1 及之后的版本。
该方法通过在服务端拉取视频流并发送到频道中,将正在播出的视频导入到正在进行的直播中。 可主要应用于赛事直播、多人看视频互动等直播场景。
调用该方法后,SDK 会在本地触发 streamInjectStatus 回调,报告导入在线媒体流的状态。 成功导入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 userJoined 回调,其中 uid 为 666。
Note:请确保已联系 sales@agora.io 开通旁路直播推流功能。
增加旁路推流地址。
调用该方法后,SDK 会在本地触发 streamPublished 回调,报告增加旁路推流地址的状态。
Note:
设置是否转码:
将指定用户的视频流添加为高帧率流。添加为高帧率流后,你可以调用 setVideoRenderHighFPS 方法对视频流进行控制。
用户 ID
调节音乐文件的本地播放音量。请在频道内调用该方法。
调节音乐文件的远端播放音量。请在频道内调用该方法。
调节音乐文件的播放音量。请在频道内调用该方法。
调节播放音量。
播放信号音量,可在 0~400 范围内进行调节:
调节录音音量。
录音信号音量,可在 0~400 范围内进行调节:
投诉通话质量。
通话 getCallId 函数获取的通话 ID
(非必选项)给通话的描述,可选,长度应小于 800 字节
该方法为私有接口。
创建数据流。
该方法用于创建数据流。频道内每人最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 App 报错。
Note:请将 reliable 和 ordered 同时设置为 true 或 false,暂不支持交叉设置。
销毁渲染器对象。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
destroyRenderer
方法的错误回调
关闭音频模块。
Note:
该方法重置整个引擎,响应速度较慢,因此 Agora 建议使用如下方法来控制音频模块:
关闭网络测试。
关闭视频模块。
该方法用于关闭视频。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式。 调用 enableVideo 方法可开启视频模式。
成功掉调用该方法后,远端会触发 userEnableVideo(fasle) 回调。
Note:
该方法重置整个引擎,响应速度较慢,因此 Agora 建议使用如下方法来控制视频模块:
启用音频模块(默认为开启状态)。
Note:
该方法重置整个引擎,响应速度较慢,因此 Agora 建议使用如下方法来控制音频模块:
启用说话者音量提示。
该方法允许 SDK 定期向 App 反馈当前谁在说话以及说话者的音量。启用该方法后,无论频道内是否有人说话,都会在说话声音音量提示回调 groupAudioVolumeIndication 回调中按设置的间隔时间返回音量提示。
指定音量提示的时间间隔:
10:返回音量提示的间隔,单位为毫秒。建议设置到大于 200 毫秒
平滑系数,指定音量提示的灵敏度。取值范围为 [0, 10],建议值为 3,数字越大,波动越灵敏;数字越小,波动越平滑
开/关视频双流模式。 该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
指定双流或者单流模式:
启用网络测试。
该方法启用网络连接质量测试,用于检测用户网络接入质量。默认该功能为关闭状态。该方法主要用于以下两种场景:
启用该方法会消耗一定的网络流量,影响通话质量。在收到 lastmileQuality 回调后,需调用 stopEchoTest 方法停止测试,再加入频道或切换用户角色。
Note:
开/关本地音频采集。
当 App 加入频道时,它的语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收或播放远端音频流,enableLocalAudio(false) 适用于只听不发的用户场景。语音功能关闭或重新开启后,会收到回调 microphoneEnabled。
开/关本地视频采集。
该方法禁用/启用本地视频功能。enableLocalVideo(false) 适用于只看不发的视频场景。 成功调用该方法后,远端会触发 userEnableLocalVideo 回调。
Note:
开启声卡采集。
一旦开启声卡采集,SDK 会采集本地所有的声音。
是否开启声卡采集:
声卡的设备名。默认设为 null,即使用当前声卡采集。如果用户使用虚拟声卡,如 “Soundflower”,可以将虚拟声卡名称 “Soundflower” 作为参数,SDK 会找到对应的虚拟声卡设备,并开始采集。
开启/关闭远端用户的语音立体声。
如果想调用 setRemoteVoicePosition 实现听声辨位的功能,请确保在调用 joinChannel 方法前调用该方法。
是否开启远端用户语音立体声:
启用视频模块。
该方法用于打开视频模式。可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启视频模式,在通话中调用则由音频模式切换为视频模式。 调用 disableVideo 方法可关闭视频模式。
成功调用该方法后,远端会触发 userEnableVideo(true) 回调。
Note:
该方法重置整个引擎,响应速度较慢,因此 Agora 建议使用如下方法来控制视频模块:
打开与 Web SDK 的互通(仅在直播下适用)。
该方法打开或关闭与 Agora Web SDK 的互通。该方法仅在直播模式下适用,通信模式下默认互通是打开的。
是否打开与 Agora Web SDK 的互通:
该方法为私有接口。
获取音乐文件的播放进度,单位为毫秒。请在频道内调用该方法。
获取音乐文件的时长。请在频道内调用该方法。如果返回值 < 0,表明调用失败。
获取当前音频播放设备的静音状态。
获取音频播放设备列表。
音频播放设备的 Array
获取音频播放设备的音量
音量
获取当前音频录制设备的静音状态。
获取音频录制设备
音频录制设备的 Array
获取录制设备的音量。
音量
该方法为私有接口。
获取通话 ID。
获取当前的通话 ID。客户端在每次 joinChannel 后会生成一个对应的 CallId,标识该客户端的此次通话。 有些方法如 rate, complain 需要在通话结束后调用,向 SDK 提交反馈,这些方法必须指定 CallId 参数。 使用这些反馈方法,需要在通话过程中调用 getCallId 方法获取 CallId,在通话结束后在反馈方法中作为参数传入。
通话 ID
获取当前网络连接状态。
connect 网络连接状态,详见 ConnectionState
获取当前的音频播放设备。
音频播放设备对象
获取当前的音频录制设备。
音频录制设备对象
获取当前的视频设备。
视频设备对象
获取播放音效文件音量。范围为 [0.0, 100.0]。
获取指定错误码的详细错误信息。
错误码
错误描述
该方法为私有接口。
该方法为私有接口。
该方法为私有接口。
获取播放设备信息。
设备 ID
设备名称
获取录制设备信息。
设备 ID
设备名
获取屏幕 ID。
该方法获取所有的系统屏幕 ID,以及相关信息。你可以使用获取到的屏幕 ID 进行屏幕共享。
系统屏幕 ID 和相关信息列表
获取系统窗口 ID。
该方法获取所有系统窗口 ID,以及相关信息。你可以使用获取到的窗口 ID 进行屏幕共享。
系统窗口 ID 和相关信息列表
该方法为私有接口。
该方法为私有接口。
通过 UID 获取用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 userInfoUpdated 回调。 收到这个回调后,你可以调用该方法,通过传入 UID 获取包含了指定用户 User Account 的 UserInfo 对象。
用户 UID。该参数为必填
ErrorCode的指针,可以为空
标识用户信息的 UserInfo 对象
通过 User Account 获取用户信息。 远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表, 并在本地触发 userInfoUpdated 回调。收到这个回调后,你可以调用该方法,通过传入 User Account 获取包含了指定用户 UID 的 UserInfo 对象。
用户 User Account。该参数为必填
ErrorCode的指针,可以为空
标识用户信息的 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 位无符号整数。建议设置范围:1到 (232-1),并保证唯一性。如果不指定(即设为 0),SDK 会自动分配一个
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
Note:为保证通信质量,请确保频道内使用同一类型的数据标识用户身份。即同一频道内需要统一使用 UID 或 User Account。如果有用户通过 Agora Web SDK 加入频道,请确保 Web 加入的用户也是同样类型。
The token generated at your server.
The channel name. The maximum length of this parameter is 64 bytes. Supported character scopes are:
The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
离开频道。
离开频道,机挂断或退出通话。当调用 joinChannel 方法后,必须调用该方法结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用该方法,没有副作用。该方法会把回话相关的所有资源都释放掉。该方法是异步操作,调用返回时并没有真正退出频道。
在真正退出频道后,本地会触发 leaveChannel 回调;通信模式下的用户和直播模式下的主播离开频道后,远端会触发 removeStream 回调。
停止/恢复接收所有音频流。
停止/恢复接收所有视频流。
停止/恢复发送本地音频流。
该方法用于允许/禁止往网络发送本地音频流。 成功调用该方法后,远端会触发 userMuteAudio 回调。
停止/恢复发送本地视频流。
成功调用该方法后,远端会触发 userMuteVideo 回调。
Note:调用该方法时,SDK 不再发送本地视频流,但摄像头仍然处于工作状态。
停止/恢复接收指定音频流。
指定的用户 ID
停止/恢复接收指定视频流。
指定用户的 ID
API 方法已执行回调。包含如下参数:
发生警告回调。包含如下参数:
发生错误警告。包含如下参数:
成功加入频道。包含如下参数:
重新加入频道回调。 有时候由于网络原因,客户端可能会和服务器失去连接,SDK 会进行自动重连,自动重连成功后触发此回调方法。 包含如下参数:
提示频道内谁在说话以及说话者音量的回调。
提示频道内谁在说话以及说话者音量的回调。包含如下参数:
离开频道回调。 App 调用 leaveChannel 方法成功离开频道后,SDK 会触发该回调。
通话相关统计信息。包含如下参数:
通话中本地视频流的统计信息回调。包含如下参数:
通话中远端视频流的统计信息回调。包含如下参数:
通话中远端音频流的统计信息回调。包含如下参数:
通话中远端视频流传输的统计信息回调。包含如下参数:
该回调描述远端用户通话中端到端的网络统计信息,通过视频包计算,用客观的数据,如丢包、网络延迟等 ,展示当前网络状态。
通话中,当用户收到远端用户/主播发送的视频数据包后,会每 2 秒触发一次该回调。和 remoteVideoStats 回调相比,该回调以数据展示当前网络状态,因此更客观。
通话中远端音频流传输的统计信息回调。包含如下参数:
音频设备状态已改变回调。包含如下参数:
本地用户的音乐文件播放状态改变。包含如下参数:
远端音乐文件播放已开始回调。 当远端有用户调用 startAudioMixing 播放本地音乐文件,会触发该回调。
远端音乐文件播放已结束回调。
本地音效文件播放已结束回调。
视频设备变化回调。包含如下参数:
该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。
通话中每个用户的网络上下行 last mile 质量报告回调。 其中 last mile 是指设备到 Agora 边缘服务器的网络状态。包含如下参数:
通话前网络上下行 last mile 质量报告回调。包含如下参数:
该回调描述本地用户在加入频道前的 last mile 网络探测的结果,其中 last mile 是指设备到 Agora 边缘服务器的网络状态。
在调用 enableLastmileTest 之后,该回调函数每 2 秒触发一次。如果远端有多个用户/主播,该回调每 2 秒会被触发多次。
通话前网络质量探测报告回调。包含如下参数:
话前网络上下行 Last mile 质量探测报告回调。在调用 startLastmileProbeTest 之后,SDK 会在约 30 秒内返回该回调。
已发送本地视频首帧回调。包含如下参数:
已接收到远端视频并完成解码回调。包含如下参数:
引擎收到第一帧远端视频流并解码成功时,触发此调用。有两种情况:
本地或远端视频大小和旋转信息发生改变回调。包含如下参数:
已显示首帧远端视频回调。 第一帧远端视频显示在视图上时,触发此调用。包含如下参数:
远端用户加入当前频道回调。包含如下参数:
该回调在如下情况下会被触发:
Note:直播场景下,
远端用户离开当前频道回调。包含如下参数:
用户离开频道有两个原因:
远端用户暂停/重新发送音频流回调。该回调是由远端用户调用 muteLocalAudioStream 方法关闭或开启音频发送触发的。 包含如下参数:
Note:当频道内的用户或主播人数超过 20 时,该回调不生效。
远端用户暂停/重新发送视频流回调。该回调是由远端用户调用 muteLocalVideoStream 方法关闭或开启音频发送触发的。 包含如下参数:
Note:当频道内的用户或主播人数超过 20 时,该回调不生效。
其他用户开启/关闭视频模块回调。该回调是由远端用户调用 enableVideo 或 disableVideo 方法开启或关闭视频模块触发的。 包含如下参数:
远端用户开启/关闭本地视频采集。该回调是由远端用户调用 enableLocalVideo 方法开启或关闭视频采集触发的。 包含如下参数:
网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。 SDK 在调用 joinChannel 后,无论是否加入成功,只要 10 秒和服务器无法连接就会触发该回调。
网络连接已被服务器禁止回调。
接收到对方数据流消息的回调。该回调表示本地用户收到了远端用户调用 sendStreamMessage 方法发送的流消息。 包含如下参数:
接收对方数据流小时发生错误回调。该回调表示本地用户未收到远端用户调用 sendStreamMessage 方法发送的流消息。 包含如下参数:
媒体引擎成功启动的回调。
Token 已过期回调。 在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中 SDK 可能由于网络原因和服务器失去连接, 重连时可能需要新的 Token。该回调通知 App 需要生成新的 Token,并需调用 renewToken 为 SDK 指定新的 Token。
已发送本地音频首帧回调。包含如下参数:
已接收远端音频首帧回调。包含如下参数:
检测到活跃用户回调。包含如下参数:
如果用户开启了 enableAudioVolumeIndication 功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的 uid。
Note:
用户角色已切换回调。该回调由本地用户在加入频道后调用 setClientRole 改变用户角色触发的。 包含如下参数:
回放、录音设备、或 App 的音量发生改变。包含如下参数:
屏幕共享对象成功加入频道回调。包含如下参数:
屏幕共享对象 Token 已过期回调。
屏幕共享对象离开频道回调。
远端用户视频流状态发生改变回调。包含如下参数:
相机对焦区域已改变回调。包含如下参数:
摄像头曝光区域已改变回调。包含如下参数:
Token 服务即将过期回调。 在调用 joinChannel 时如果指定了 Token,由于 Token 具有一定的时效,在通话过程中如果 Token 即将失效,SDK 会提前 30 秒触发该回调,提醒 App 更新 Token。 当收到该回调时,用户需要重新在服务端生成新的 Token,然后调用 renewToken 将新生成的 Token 传给 SDK。 包含如下参数:
开启旁路推流的结果回调。 该回调返回 addPublishStreamUrl 方法的调用结果。用于通知主播是否推流成功。 如果不成功,你可以在 error 参数中查看详细的错误信息。 包含如下参数:
停止旁路推流的结果回调。 该回调返回 removePublishStreamUrl 方法的调用结果。用于通知主播是否停止推流成功。 包含如下参数:
旁路推流设置被更新回调。该回调用于通知主播 CDN 转码已成功更新。
导入在线媒体流状态回调。该回调表明向直播导入的外部视频流的状态。 包含如下参数:
本地发布流已回退为音频流回调。
如果你调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口并将 option 设置为 AUDIO_ONLY(2) 时, 当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。 如果本地推流已回退为音频流,远端的 App 上会收到 userMuteVideo 的回调事件。
包含如下参数: isFallbackOrRecover:本地推流已回退或恢复:
远端订阅流已回退为音频流回调。
如果你调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置为 AUDIO_ONLY(2) 时, 当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。 远端订阅流因弱网环境不能同时满足音视频而回退为小流时,你可以使用 remoteVideoStats 回调来监控远端视频大小流的切换。
包含如下参数:
麦克风状态已改变回调。该回调由本地用户开启或关闭本地音频采集触发的。 包含如下参数:
网络连接状态已改变回调。 该回调在网络连接状态发生改变的时候触发,并告知用户当前的网络连接状态,和引起网络状态改变的原因。 包含如下参数:
本地用户成功注册 User Account 回调。
本地用户成功调用 registerLocalUserAccount 方法注册用户 User Account,或调用 joinChannelWithUserAccount 加入频道后, SDK 会触发该回调,并告知本地用户的 UID 和 User Account。包含如下参数:
远端用户信息已更新回调。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发该回调。 包含如下参数:
本地视频状态发生改变回调。
本地视频的状态发生改变时,SDK 会触发该回调返回当前的本地视频状态;当状态为 3 时,你可以在 error
参数中查看返回的错误信息。 该接口在本地视频出现故障时,方便你了解当前视频的状态以及出现故障的原因。
包含如下参数:
暂停所有音效文件播放。
暂停播放音乐文件及混音。请在频道内调用该方法。
暂停音效文件播放。
指定音效的 ID。每个音效均有唯一的 ID
播放指定音效文件。
该方法播放指定的本地或在线音效文件。你可以在该方法中设置音效文件的播放次数、音调、音效的空间位置和增益,以及远端用户是否能听到该音效。
你可以多次调用该方法,通过传入不同的音效文件的 soundID 和 filePath,同时播放多个音效文件,实现音效叠加。为获得最佳用户体验,我们建议同时播放的音效文件不要超过 3 个。调用该方法播放音效结束后,SDK 会触发 audioEffectFinished 回调。
指定音效的 ID。每个音效均有唯一的 ID
指定要播放的音效文件的绝对路径或 URL 地址
设置音效循环播放的次数:
设置音效的音调,取值范围为 [0.5, 2]。默认值为 1.0,表示不需要修改音调。取值越小,则音调越低
设置是否改变音效的空间位置。取值范围为 [-1.0, 1.0]:
设置是否改变单个音效的音量。取值范围为 [0.0, 100.0]。默认值为 100.0。取值越小,则音效的音量越低
设置是否将音效传到远端:
预加载音效文件。
为保证通信畅通,请注意控制预加载音效文件的大小,并在 joinChannel 前就使用该方法完成音效预加载。 音效文件支持以下音频格式:mp3,aac,m4a,3gp,wav。
指定音效的 ID。每个音效均有唯一的 I
音效文件的绝对路径
给通话评分。
通过 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 加入的用户也是同样类型。
Note:
userAccount
不能为空,否则该方法不生效。userAccount
在频道中的唯一性。The App ID of your project.
The user account. The maximum length of this parameter is 255 bytes. Ensure that you set this parameter and do not set it as null. Ensure that you set this parameter and do not set it as null. Supported character scopes are:
释放 AgoraRtcEngine 实例。
调用该方法后,用户将无法再使用和回调该 SDK 内的其它方法。如需再次使用,必须重新初始化 initialize 一个 AgoraRtcEngine 实例。
Note: 该方法需要在子线程中操作。
删除导入的在线媒体流。
Note:成功删除后,会触发 removeStream 回调,其中 uid 为 666。
已导入、待删除的外部视频流 URL 地址,格式为 HTTP 或 HTTPS
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 streamUnpublished 回调,报告删除旁路推流地址的状态。
Note:
将指定用户的视频从高帧率流中删除。删除后,你可以调用 setVideoRenderFPS 方法对视频流进行控制。
用户 ID
更新 Token。
如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
需要更新的新 Token
更新渲染尺寸。 当视图尺寸发生改变时,该方法可以根据视窗尺寸长宽比更新缩放比例,在收到下一个视频帧时,按照新的比例进行渲染。 该方法可以防止视图不连贯的问题。
存储渲染器 Map 的关键标识,如 uid
、videoSource
或 local
恢复播放所有音效文件。
恢复播放音乐文件及混音。请在频道内调用该方法。
恢复播放指定音效文件。
指定音效的 ID。每个音效均有唯一的 ID
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。
成功调用该方法后,远端会触发 streamMessage 回调,远端用户可以在该回调中获取接收到的流消息; 若调用失败,远端会触发 streamMessageError 回调。
数据流 ID,createDataStream 的返回值
待发送的数据
设置音乐文件的播放位置。
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而不是非得从头到尾播放一个文件。
通过设备 ID 指定音频播放设备
音频播放设备的 ID
设置当前音频播放设备为静音/不静音。
是否设置当前音频播放设备静音:
设置音频播放设备的音量
音量,取值范围为 [0, 255]
设置音频编码配置。
Note:该方法需要在 joinChannel 之前调用,否则不生效。
设置采样率、码率、编码模式和声道数:
设置音频应用场景:
设备音频录制设备
设备 ID
设置当前音频录制设备静音/不静音。
是否设置当前音频录制设备静音:
设置录音设备的音量
录音设备的音量,取值范围为 [0, 255]
开启或关闭本地美颜功能,并设置美颜效果选项。
是否开启美颜功能:
设置美颜选项,包含如下字段:
亮度明暗对比度:0 为低对比度,1 为正常(默认),2 为高对比度
亮度,取值范围为 [0.0, 1.0],其中 0.0 表示原始亮度。可用来实现美白等视觉效果。
红色度,取值范围为 [0.0, 1.0],其中 0.0 表示原始红色度。可用来实现红润肤色等视觉效果。
平滑度,取值范围为 [0.0, 1.0],其中 0.0 表示原始平滑等级。可用来实现祛痘、磨皮等视觉效果。
该方法为私有接口。
设置摄像头的采集偏好。
一般的视频通话或直播中,默认由 SDK 自动控制摄像头的输出参数。在如下特殊场景中,默认的参数通常无法满足需求,或可能引起设备性能问题,我们推荐调用该接口设置摄像头的采集偏好:
Note:请在启动摄像头之前调用该方法,如 joinChannel、enableVideo 或者 enableLocalVideo。
频道模式:
设置直播模式下的用户角色。
在加入频道前,用户需要通过本方法设置观众(默认)或主播模式。在加入频道后,用户可以通过本方法切换用户模式。
直播模式下,如果你在加入频道后调用该方法切换用户角色,调用成功后,本地会触发 clientRoleChanged 事件;远端会触发 userJoined 事件。
用户角色:
当 setRenderMode 方法中的渲染模式设置为 3 时,调用该方法可以设备自定义的渲染器。 customRender 是一个类.
自定义渲染器
设置是否默认接收音频流。
该方法在加入频道前后都可调用。如果在加入频道后调用 setDefaultMuteAllRemoteAudioStreams(true),会接收不到后面加入频道的用户的音频流。
设置是否默认接收视频流。
设置播放音效文件音量。
音效文件的音量。取值范围为 [0.0, 100.0]。100.0 为默认值
设置内置的加密方案。
Agora Native SDK 支持内置加密功能,默认使用 AES-128-XTS 加密方式。如需使用其他加密方式,可以调用该 API 设置。 同一频道内的所有用户必须设置相同的加密方式和密码才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
Note:调用本方法前,请先调用 setEncryptionSecret 方法启用内置加密功能。
加密方式。目前支持以下几种:
启用内置加密,并设置数据加密密码。
如需启用加密,请在 joinChannel 前调用该方法,并设置加密的密码。 同一频道内的所有用户应设置相同的密码。当用户离开频道时,该频道的密码会自动清除。如果未指定密码或将密码设置为空,则无法激活加密功能。
Note:为保证最佳传输效果,请确保加密后的数据大小不超过原始数据大小 + 16 字节。16 字节是 AES 通用加密模式下最大填充块大小。
加密密码
设置外部音频采集参数。
是否开启外部音频采集:
外部音频源的采样率,可设置为 8000,16000,32000,44100 或 48000
外部音频源的通道数(最多支持两个声道)
是否启用全频带编解码器(48 kHz 采样率):
是否启用立体声编解码器:
是否启用高码率模式:
设置耳返音量。
耳返的音量,取值范围为 [0, 100],默认值为 100
该方法为私有接口。
设置直播转码。
设置弱网条件下发布的音视频流回退选项。
网络不理想的环境下,直播音视频的质量都会下降。使用该接口并将 option 设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY后,SDK 会:
当本地推流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 localPublishFallbackToAudioOnly 回调。
Note:旁路推流场景下,设置本地推流回退为 Audio-only 可能会导致远端的 CDN 用户听到声音的时间有所延迟。因此在有旁路推流的场景下,Agora 建议不开启该功能。
本地推流回退处理选项:
设置本地视频镜像。
该方法设置本地视频镜像,须在开启本地预览前设置。如果在开启预览后设置,需要重新开启预览才能生效。
设置本地视频镜像模式:
设置本地语音变声。
Note:该方法不能与 setLocalVoiceReverbPreset 方法同时使用,否则先调用的方法会不生效。
设置本地语音的变声效果选项
设置本地语音音效均衡。
频谱子带索引,取值范围是 [0-9],分别代表 10 个频带,对应的中心频率是 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz
每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15],默认值为 0
设置本地语音音调。
语音频率。可以在 [0.5, 2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调
设置本地音效混响。
Note: Agora SDK 在 v2.4.0 版本中提供一个使用更为简便的接口 setLocalVoiceReverbPreset,该 方法通过一系列内置参数的调整,直接实现流行、R&B、摇滚、嘻哈等预置的混响效果。详见 setLocalVoiceReverbPreset。
混响音效 Key。该方法共有 5 个混响音效 Key:
各混响音效 Key 所对应的值
设置预设的本地语音混响效果选项。
Note:
预设的本地语音混响效果选项
设置日志文件。 设置 SDK 的输出 log 文件。SDK 运行时产生的所有 log 将写入该文件。App 必须保证指定的目录存在而且可写。
Note:如需调用本方法,请在调用 initialize 方法初始化 AgoraRtcEngine 对象后立即调用,否则可能造成输出日志不完整。
日志文件的完整路径
设置 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 级别上的所有日志信息。
设置过滤器等级:
设置录制和播放声音混音后的数据格式。
指定返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000
指定 onMixedAudioFrame 中返回数据的采样点数,如 RTMP 推流应用中通常为 1024。 SamplesPerCall = (int)(SampleRate × sampleInterval),其中:sample ≥ 0.01,单位为秒
该方法为私有接口。
该方法为私有接口。
该方法为私有接口。
设置播放的声音格式。
AgoraRtcEngine 类。