继承自 IRtcEngineNative .
静态 Public 成员函数 | |
static string | GetSdkVersion () |
static string | GetErrorDescription (int code) |
static IRtcEngine | GetEngine (string appId) |
static IRtcEngine | GetEngine (RtcEngineConfig engineConfig) |
static IRtcEngine | getEngine (string appId) |
static void | Destroy () |
IRtcEngine 类提供了供 app 调用的主要接口方法。
|
static |
查询 SDK 版本号。
int agora_gaming_rtc.IRtcEngine.SetChannelProfile | ( | CHANNEL_PROFILE | profile | ) |
设置频道场景。
该方法用于设置频道场景。Agora 会针对不同的使用场景采用不同的优化策略,如通信场景偏好流畅,直播场景偏好画质。
profile | 频道属性: CHANNEL_PROFILE。 |
int agora_gaming_rtc.IRtcEngine.SetClientRole | ( | CLIENT_ROLE_TYPE | role | ) |
设置直播场景下的用户角色。
在加入频道前,用户需要通过本方法设置观众(默认)或主播场景。在加入频道后,用户可以通过本方法切换用户场景。
直播场景下,如果你在加入频道后调用该方法切换用户角色,调用成功后,本地会触发 OnClientRoleChangedHandler 回调;远端会触发 OnUserJoinedHandler 回调或 OnUserOfflineHandler (BECOME_AUDIENCE) 回调。
role | 直播场景里的用户角色: CLIENT_ROLE_TYPE。 |
int agora_gaming_rtc.IRtcEngine.SetLogFilter | ( | LOG_FILTER | filter | ) |
设置日志输出等级。
设置 Agora RTC SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。选择一个级别,你就可以看到在该级别之前所有级别的日志信息。
例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
filter | 设置过滤等级: LOG_FILTER. |
int agora_gaming_rtc.IRtcEngine.SetLogFile | ( | string | filePath | ) |
设置 Agora SDK 输出的日志文件。
默认情况下,SDK 会生成 agorasdk.log
、agorasdk_1.log
、agorasdk_2.log
、agorasdk_3.log
、agorasdk_4.log
这 5 个日志文件。 每个文件的默认大小为 1024 KB。日志文件为 UTF-8 编码。最新的日志永远写在 agorasdk.log
中。agorasdk.log
写满后,SDK 会从 1-4 中删除修改时间最早的一个文件, 然后将 agorasdk.log
重命名为该文件,并建立新的 agorasdk.log
写入最新的日志。
filePath | 日志文件的完整路径。请确保指定的目录存在而且可写。你可通过该参数修改日志文件名。 |
int agora_gaming_rtc.IRtcEngine.JoinChannel | ( | string | channelName, |
string | info, | ||
uint | uid | ||
) |
加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。 使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 LeaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方加入频道后,本地会触发 OnJoinChannelSuccessHandler 回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 OnUserJoinedHandler 回调。 在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 OnReJoinChannelSuccessHandler 回调。
uid
设为 0,系统将自动分配一个 uid
。如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 uid
是不同的。Mute
方法实现。channelName | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
info | (非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
uid | (非必选项) 用户ID,32位无符号整数。建议设置范围:1到 232-1,并保证唯一性。如果不指定(即设为0),SDK 会自动分配一个,并在 OnJoinChannelSuccessHandler 回调中返回,app 层必须记住该返回值并维护,SDK不对该返回值进行维护。 |
AgoraChannel
频道。AgoraChannel
加入了一个频道,并在该 AgoraChannel
频道中发布了音视频流。 int agora_gaming_rtc.IRtcEngine.JoinChannelByKey | ( | string | channelKey, |
string | channelName, | ||
string | info, | ||
uint | uid | ||
) |
使用 Token 加入频道。
该方法让用户加入通话频道,在同一个频道内的用户可以互相通话,多个用户加入同一个频道,可以群聊。 使用不同 App ID 的 App 是不能互通的。如果已在通话中,用户必须调用 LeaveChannel 退出当前通话,才能进入下一个频道。
成功调用该方加入频道后,本地会触发 OnJoinChannelSuccessHandler 回调;通信场景下的用户和直播场景下的主播加入频道后,远端会触发 OnUserJoinedHandler 回调。 在网络状况不理想的情况下,客户端可能会与 Agora 的服务器失去连接;SDK 会自动尝试重连,重连成功后,本地会触发 OnReJoinChannelSuccessHandler 回调。
uid
设为 0,系统将自动分配一个 uid
。如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 uid
是不同的。Mute
方法实现。channelKey | 动态秘钥。
|
channelName | 标识通话的频道名称,长度在 64 字节以内的字符串。以下为支持的字符集范围(共 89 个字符):
|
info | (非必选项) 开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
uid | (非必选项) 用户ID,32位无符号整数。建议设置范围:1到 232-1,并保证唯一性。如果不指定(即设为0),SDK 会自动分配一个,并在 OnJoinChannelSuccessHandler 回调中返回,app 层必须记住该返回值并维护,SDK不对该返回值进行维护。 |
AgoraChannel
频道。AgoraChannel
加入了一个频道,并在该 AgoraChannel
频道中发布了音视频流。 int agora_gaming_rtc.IRtcEngine.RenewToken | ( | string | token | ) |
更新 Token。
该方法用于更新 Token。如果启用了 Token 机制,过一段时间后使用的 Token 会失效。当:
app 应重新获取 Token,然后调用该方法更新 Token,否则 SDK 无法和服务器建立连接。
token | 新的 Token。 |
int agora_gaming_rtc.IRtcEngine.LeaveChannel | ( | ) |
离开频道。
离开频道,即挂断或退出通话。
加入频道后,必须调用 LeaveChannel
结束通话,否则无法开始下一次通话。 不管当前是否在通话中,都可以调用 LeaveChannel
,没有副作用。该方法会把会话相关的所有资源释放掉。
该方法是异步操作,调用返回时并没有真正退出频道。在真正退出频道后,SDK 会触发 OnLeaveChannelHandler 回调。
成功调用该方法离开频道后,本地会触发 OnLeaveChannelHandler
回调;通信场景下的用户和直播场景下的主播离开频道后,远端会触发 OnUserOfflineHandler 回调。
LeaveChannel
后立即调用 Destroy,SDK 将无法触发 OnLeaveChannelHandler
回调。LeaveChannel
方法, SDK 将自动调用 RemovePublishStreamUrl 方法。int agora_gaming_rtc.IRtcEngine.SetParameters | ( | string | parameters | ) |
通过 JSON 配置 SDK 提供技术预览或特别定制功能。
parameters | JSON 格式的字符串。 |
string agora_gaming_rtc.IRtcEngine.GetCallId | ( | ) |
int agora_gaming_rtc.IRtcEngine.Rate | ( | string | callId, |
int | rating, | ||
string | desc | ||
) |
给通话评分。
callId | 通话 GetCallId 函数获取的通话 ID。 |
rating | 给通话的评分,最低 1 分,最高 5 分。如超过这个范围,SDK 会返回 ERR_INVALID_ARGUMENT(2) 错误。 |
desc | (非必选项) 给通话的描述,可选,长度应小于 800 字节。 |
int agora_gaming_rtc.IRtcEngine.Complain | ( | string | callId, |
string | desc | ||
) |
投诉通话质量。
callId | 通话 GetCallId 函数获取的通话 ID。 |
desc | (非必选项) 给通话的描述,可选,长度应小于 800 字节。 |
int agora_gaming_rtc.IRtcEngine.EnableAudio | ( | ) |
启用音频模块。
启用音频模块(默认为开启状态)。
int agora_gaming_rtc.IRtcEngine.DisableAudio | ( | ) |
关闭音频模块。
int agora_gaming_rtc.IRtcEngine.MuteLocalAudioStream | ( | bool | mute | ) |
取消或恢复发布本地音频流。
自 v3.4.5 起,该方法仅设置用户在 IRtcEngine 频道中的音频发布状态。
成功调用该方法后,远端会触发 OnUserMutedAudioHandler 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 MuteLocalAudioStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地音频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。 int agora_gaming_rtc.IRtcEngine.MuteAllRemoteAudioStreams | ( | bool | mute | ) |
取消或恢复订阅所有远端用户的音频流。
自 v3.3.1 起,成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的音频流,包括在调用该方法后加入频道的用户的音频流。
mute | 是否取消订阅所有远端用户的音频流。
|
int agora_gaming_rtc.IRtcEngine.MuteRemoteAudioStream | ( | uint | uid, |
bool | mute | ||
) |
取消或恢复订阅指定远端用户的音频流。
uid | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的音频流。
|
int agora_gaming_rtc.IRtcEngine.SetEnableSpeakerphone | ( | bool | speakerphone | ) |
启用/关闭扬声器播放。
该方法设置是否将语音路由设到扬声器(外放)。 你可以在 SetDefaultAudioRouteToSpeakerphone 方法中查看默认的语音路由。
在 Android 上,SetAudioProfile 中 scenario
及 SetChannelProfile 的设置 会影响 SetEnableSpeakerphone
的行为。SetEnableSpeakerphone
不生效的情况如下:
scenario
为 AUDIO_SCENARIO_GAME_STREAMING
时,所有用户都无法切换音频播放路由。scenario
为 AUDIO_SCENARIO_DEFAULT
或 AUDIO_SCENARIO_SHOWROOM
时,直播场景中的观众无法切换音频播放路由,且当频道中只有一个主播时,该主播也无法切换音频播放路由。scenario
为 AUDIO_SCENARIO_EDUCATION
时,直播场景中的观众无法切换音频播放路由。speakerphone | 设置是否切换语音路由到扬声器(外放):
|
int agora_gaming_rtc.IRtcEngine.SetDefaultAudioRouteToSpeakerphone | ( | bool | speakerphone | ) |
设置默认的语音路由
该方法设置接收到的语音从听筒或扬声器出声。如果用户不调用本方法,语音默认从听筒出声。
各频道场景下默认的语音路由:
speakerphone | 设置默认的语音路由。
|
bool agora_gaming_rtc.IRtcEngine.IsSpeakerphoneEnabled | ( | ) |
查询扬声器启用状态。
int agora_gaming_rtc.IRtcEngine.SwitchCamera | ( | ) |
切换前置/后置摄像头
int agora_gaming_rtc.IRtcEngine.SetVideoProfile | ( | VIDEO_PROFILE_TYPE | profile, |
bool | swapWidthAndHeight | ||
) |
设置视频编码配置。
该方法设置视频编码属性(Profile)。每个属性对应一套视频参数,如分辨率、帧率、码率等。 当设备的摄像头不支持指定的分辨率时,Agora SDK 会自动选择一个合适的摄像头分辨率,但是编码分辨率仍然用 SetVideoProfile
指定的。
swapWidthAndHeight
设置为默认值 false
。profile | 视频属性。详见: VIDEO_PROFILE_TYPE. |
swapWidthAndHeight | SDK 会按照你选择的视频属性 (profile) 输出固定宽高的视频。该参数设置是否交换宽和高:
|
int agora_gaming_rtc.IRtcEngine.MuteLocalVideoStream | ( | bool | mute | ) |
取消或恢复发布本地视频流。
自 v3.4.5 起,该方法仅设置用户在 IRtcEngine 频道中的视频发布状态。
成功调用该方法后,远端会触发 OnUserMuteVideoHandler 回调。
同一时间,本地的音视频流只能发布到一个频道。如果你创建了多个频道,请确保你只在一个频道中 调用 MuteLocalVideoStream (false), 否则方法会调用失败并返回 -5 (ERR_REFUSED)
。
mute | 是否取消发布本地视频流。
|
-5 (ERR_REFUSED)
: 调用被拒绝。 int agora_gaming_rtc.IRtcEngine.MuteAllRemoteVideoStreams | ( | bool | mute | ) |
取消或恢复订阅所有远端用户的视频流。
自 v3.3.1 起,成功调用该方法后,本地用户会取消或恢复订阅所有远端用户的视频流,包括在调用该方法后加入频道的用户的视频流。
mute | 是否取消订阅所有远端用户的视频流。
|
int agora_gaming_rtc.IRtcEngine.MuteRemoteVideoStream | ( | uint | uid, |
bool | mute | ||
) |
取消或恢复订阅指定远端用户的视频流。
uid | 指定用户的用户 ID。 |
mute | 是否取消订阅指定远端用户的视频流。
|
int agora_gaming_rtc.IRtcEngine.EnableDualStreamMode | ( | bool | enabled | ) |
开关双流模式。
该方法设置单流(默认)或者双流模式。发送端开启双流模式后,接收端可以选择接收大流还是小流。其中,大流指高分辨率、高码率的视频流,小流指低分辨率、低码率的视频流。
enabled | 设置单流或双流模式。
|
int agora_gaming_rtc.IRtcEngine.SetEncryptionMode | ( | string | encryptionMode | ) |
设置内置的加密模式。
Agora Video SDK 支持内置加密模式,默认支持 AES-128-XTS。如需采用其他加密模式,可以调用本方法。同一频道内的所有用户必须设置相同的加密模式和加密密钥才能进行通话。关于这几种加密方式的区别,请参考 AES 加密算法的相关资料。
encryptionMode | 加密模式:
|
int agora_gaming_rtc.IRtcEngine.SetEncryptionSecret | ( | string | secret | ) |
启用内置加密,并设置数据加密密钥。
在加入频道之前,app 需调用 SetEncryptionSecret
方法指定加密密钥来启用内置的加密功能,同一频道内的所有用户应设置相同的加密密钥。当用户离开频道时,该频道的加密密钥会自动清除。如果未指定加密密钥或将加密密钥设置为空,则无法激活加密功能。
secret | 加密密码。 |
int agora_gaming_rtc.IRtcEngine.CreateDataStream | ( | bool | reliable, |
bool | ordered | ||
) |
创建数据流。
该方法用于创建数据流。IRtcEngine 生命周期内,每个用户最多只能创建 5 个数据流。频道内数据通道最多允许数据延迟 5 秒,若超过 5 秒接收方尚未收到数据流,则数据通道会向 app 报错。
reliable
设为 true
且 ordered
设为 false
。reliable |
|
ordered |
|
int agora_gaming_rtc.IRtcEngine.CreateDataStream | ( | DataStreamConfig | config | ) |
创建数据流。
该方法用于创建数据流。每个用户在每个频道内最多只能创建 5 个数据流。
相比 CreateDataStream1, 本方法不支持数据可靠,接收方会丢弃超出发送时间 5 秒后的数据包。
config | 数据流设置:DataStreamConfig |
int agora_gaming_rtc.IRtcEngine.SendStreamMessage | ( | int | streamId, |
string | data | ||
) |
发送数据流。
该方法发送数据流消息到频道内所有用户。SDK 对该方法的实现进行了如下限制:频道内每秒最多能发送 30 个包,且每个包最大为 1 KB。 API 须对数据通道的传送速率进行控制: 每个客户端每秒最多能发送 6 KB 数据。频道内每人最多能同时有 5 个数据通道。
成功调用该方法后,远端会触发 OnStreamMessageHandler 回调,远端用户可以在该回调中获取接收到的流消息;若调用失败,远端会触发 OnStreamMessageHandler
回调。
streamId | 由 CreateDataStream 返回的数据流 ID。 |
data | 自定义数据。 |
int agora_gaming_rtc.IRtcEngine.SetSpeakerphoneVolume | ( | int | volume | ) |
设置扬声器音量。
volume | 扬声器音量,0 (音量最低) 到 255 (音量最高) 的整数。 |
int agora_gaming_rtc.IRtcEngine.SetVideoQualityParameters | ( | bool | preferFrameRateOverImageQuality | ) |
设置视频质量偏好选项。
该方法仅适用于直播场景。在网络条件不好或者设备性能不足影响到直播体验的情况下,可以使用该方法设置是否要优先保障流畅度。
preferFrameRateOverImageQuality | 画质和流畅度里,是否优先保障流畅度:
|
int agora_gaming_rtc.IRtcEngine.StartEchoTest | ( | ) |
开始语音通话回路测试。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。 在测试过程中,用户先说一段话,在 10 秒后,声音会回放出来。如果 10 秒后用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。
StartEchoTest
后必须调用 StopEchoTest 以结束测试,否则不能进行下一次回声测试,或者调用 JoinChannelByKey 进行通话。int agora_gaming_rtc.IRtcEngine.StartEchoTest | ( | int | intervalInSeconds | ) |
开始语音通话回路测试。
该方法启动语音通话测试,目的是测试系统的音频设备(耳麦、扬声器等)和网络连接是否正常。在测试过程中,用户先说一段话,声音会在设置的时间间隔后回放出来。如果用户能正常听到自己刚才说的话,就表示系统音频设备和网络连接都是正常的。
intervalInSeconds | 返回语音通话回路测试结果的时间间隔,取值范围为 [2,10],单位为秒,默认值为 10 秒。 |
int agora_gaming_rtc.IRtcEngine.StopEchoTest | ( | ) |
停止语音通话回路测试。
int agora_gaming_rtc.IRtcEngine.StartLastmileProbeTest | ( | LastmileProbeConfig | lastmileProbeConfig | ) |
开始通话前网络质量探测,向用户反馈上下行网络的带宽、丢包、网络抖动和往返时延数据。
启用该方法后,SDK 会依次返回如下 2 个回调:
该方法主要用于以下两种场景:
OnLastmileQualityHandler
和 OnLastmileProbeResultHandler
回调之前请不要调用其他方法,否则可能会由于 API 操作过于频繁导致此方法无法执行。lastmileProbeConfig | Last mile 网络探测配置,详见 LastmileProbeConfig 。 |
int agora_gaming_rtc.IRtcEngine.StopLastmileProbeTest | ( | ) |
停止通话前网络质量探测。
int agora_gaming_rtc.IRtcEngine.AddVideoWatermark | ( | RtcImage | rtcImage | ) |
添加本地视频水印。
该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的观众,旁路推流观众,甚至采集设备都能看到或采集到该水印图片。 如果你仅仅希望在旁路直播推流中添加水印,请参考 SetLiveTranscoding 中描述的用法。
rtcImage | 待添加在本地直播推流中的水印图片:RtcImage 。 |
int agora_gaming_rtc.IRtcEngine.AddVideoWatermark | ( | string | watermarkUrl, |
WatermarkOptions | watermarkOptions | ||
) |
添加本地视频水印。
该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的观众、旁路直播观众和采集设备都能看到或采集到该水印图片。Agora 当前只支持在直播视频流中添加一个水印,后添加的水印会替换掉之前添加的水印。
水印坐标和 SetVideoEncoderConfiguration 方法中的设置有依赖关系:
SetVideoEncoderConfiguration
方法中设置的视频尺寸,否则超出部分将被裁剪。visibleInPreview
可设置水印在预览时是否可见。watermarkUrl | 待添加的水印图片的本地路径。本方法支持从本地绝对/相对路径添加水印图片。 在 Android 上访问本地文件时,Agora 推荐填入 URI 地址或以 /assets/ 开头的路径。 |
watermarkOptions | 待添加的水印图片的设置选项,详见 WatermarkOptions 。 |
int agora_gaming_rtc.IRtcEngine.ClearVideoWatermarks | ( | ) |
删除已添加的视频水印。
int agora_gaming_rtc.IRtcEngine.SetRemoteVideoStreamType | ( | uint | uid, |
REMOTE_VIDEO_STREAM_TYPE | streamType | ||
) |
设置订阅的视频流类型。
如果发送端选择发送视频双流 (大流,即高分辨率、高码率视频流,或小流,即低分辨率、低码率视频流),接收端可以选择接收大流还是小流。该方法可以根据视频窗口的大小动态调整对应视频流的大小,以节约带宽和计算资源。
调用本方法的执行结果将在 OnApiExecutedHandler 中返回。
SetRemoteVideoStreamType
,也调用了 SetRemoteDefaultVideoStreamType,则 SDK 以 SetRemoteVideoStreamType
中的设置为准。uid | 用户 ID。 |
streamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE. |
int agora_gaming_rtc.IRtcEngine.SetMixedAudioFrameParameters | ( | int | sampleRate, |
int | samplesPerCall | ||
) |
设置采集与播放声音混音后的数据格式。
samplesPerCall
、sampleRate
和 AudioFrame 中的 channels
参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channels
)。请确保采样间隔不得小于 0.01 (s)。SDK 会根据该采样间隔触发 OnMixedAudioFrameHandler 回调。sampleRate | 指定 OnMixedAudioFrameHandler 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000。 |
samplesPerCall | 指定 OnMixedAudioFrameHandler 中返回数据的采样点数,如转码推流应用中通常为 1024。 |
int agora_gaming_rtc.IRtcEngine.SetAudioMixingPosition | ( | int | pos | ) |
设置音乐文件的播放位置。该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。
pos | 整数。进度条位置,单位为毫秒。 |
int agora_gaming_rtc.IRtcEngine.EnableAudioVolumeIndication | ( | int | interval, |
int | smooth, | ||
bool | report_vad | ||
) |
启用用户音量提示。
该方法允许 SDK 定期向 app 报告本地发流用户和瞬时音量最高的远端用户(最多 3 位)的音量相关信息。启用该方法后,只要频道内有发流用户,SDK 会在加入频道后按设置的时间间隔触发 OnVolumeIndicationHandler 回调。
interval | 指定音量提示的时间间隔:
|
smooth | 平滑系数,指定音量提示的灵敏度。取值范围为 [0,10],建议值为 3。数字越大,波动越灵敏;数字越小,波动越平滑。 |
report_vad |
|
int agora_gaming_rtc.IRtcEngine.AdjustRecordingSignalVolume | ( | int | volume | ) |
调节麦克风采集信号音量。
volume | 麦克风采集信号音量。取值范围为 [0,100]。默认值为 100,表示原始音量。 |
int agora_gaming_rtc.IRtcEngine.AdjustPlaybackSignalVolume | ( | int | volume | ) |
调节本地播放的所有远端用户的信号音量。
AdjustPlaybackSignalVolume
和 AdjustAudioMixingVolume 方法,并将 volume
参数设置为 0。volume | 播放音量。取值范围为 [0,100]。默认值为 100,表示原始音量。 |
int agora_gaming_rtc.IRtcEngine.StartAudioMixing | ( | string | filePath, |
bool | loopback, | ||
bool | replace, | ||
int | cycle | ||
) |
开始播放音乐文件。
指定本地或在线音频文件来和麦克风采集的音频流进行混音和替换。替换是指用音频文件替换采集设备采集的音频流。该方法可以选择是否让对方听到本地播放的音频并指定循环播放的次数。成功调用该方法后,本地会触发 OnAudioMixingStateChangedHandler(PLAYING) 回调。播放结束后,会收到 OnAudioMixingStateChangedHandler(STOPPED)
回调。
WARN_AUDIO_MIXING_OPEN_ERROR(701)
.filePath | 指定需要混音的本地或在线音频文件的绝对路径。建议填写文件后缀名。如果无法确定文件后缀名,可不填。支持的音频格式包括:3GP、ASF、ADTS、AVI、MP3、MP4、MPEG-4、SAMI 和 WAVE。 详见:Supported Media Formats in Media Foundation。 在 Android 上访问本地文件时,Agora 推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopback |
|
replace |
|
cycle | 循环播放次数:
|
int agora_gaming_rtc.IRtcEngine.StartAudioMixing | ( | string | filePath, |
bool | loopback, | ||
bool | replace, | ||
int | cycle, | ||
int | startPos | ||
) |
开始播放音乐文件。
该方法支持将本地或在线音乐文件和麦克风采集的音频进行混音或替换。成功播放音乐文件后,本地 会触发 OnAudioMixingStateChangedHandler(AUDIO_MIXING_STATE_PLAYING,AUDIO_MIXING_REASON_STARTED_BY_USER)
回调。 播放结束后,本地会触发 OnAudioMixingStateChangedHandler(AUDIO_MIXING_STATE_STOPPED,AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED)
回调。
StartAudioMixing
,请确保调用间隔大于 500 ms。WARN_AUDIO_MIXING_OPEN_ERROR
(701)。/sdcard/
目录下,且格式为 MP3。filePath | 音乐文件的绝对路径或 URL 地址,需精确到文件名及后缀。 例如:C:\music\audio.mp4 。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV、3GP。 详见 Supported Media Formats in Media Foundation。 在 Android 上访问本地文件时,Agora 推荐填入 URI 地址或以 /assets/ 开头的路径。 |
loopback | 是否只在本地播放音乐文件:
|
replace | 是否用音乐文件替换麦克风采集的音频:
|
cycle | 音乐文件的播放次数。
|
startPos | 音乐文件的播放位置,单位为毫秒。 |
int agora_gaming_rtc.IRtcEngine.StopAudioMixing | ( | ) |
停止播放音乐文件。
该方法停止播放音乐文件。请在频道内调用该方法。
int agora_gaming_rtc.IRtcEngine.PauseAudioMixing | ( | ) |
暂停播放音乐文件。
该方法暂停播放音乐文件。请在频道内调用该方法。
int agora_gaming_rtc.IRtcEngine.ResumeAudioMixing | ( | ) |
恢复播放音乐文件。
该方法恢复混音,继续播放音乐文件。请在频道内调用该方法。
int agora_gaming_rtc.IRtcEngine.AdjustAudioMixingVolume | ( | int | volume | ) |
调节音乐文件的播放音量。
该方法调节混音音乐文件在本端和远端的播放音量大小。
volume | 音乐文件音量范围为 [0,100]。
|
int agora_gaming_rtc.IRtcEngine.GetAudioMixingDuration | ( | ) |
获取音乐文件总时长。
该方法获取音乐文件总时长,单位为毫秒。请在频道内调用该方法。
int agora_gaming_rtc.IRtcEngine.GetAudioMixingDuration | ( | string | filePath | ) |
获取指定音乐文件总时长。
filePath | 本地音乐文件的绝对路径,需精确到文件名及后缀。例如:C:\music\audio.mp4 。支持的音频格式包括 MP3、AAC、M4A、MP4、WAV、3GP。 详见 Supported Media Formats in Media Foundation 。 在 Android 上访问本地文件时,Agora 推荐填入 URI 地址或以 /assets/ 开头的路径。 |
int agora_gaming_rtc.IRtcEngine.GetAudioMixingCurrentPosition | ( | ) |
获取音乐文件的播放进度。
该方法获取当前音乐文件播放进度,单位为毫秒。请在频道内调用该方法。
int agora_gaming_rtc.IRtcEngine.StartAudioRecording | ( | string | filePath, |
AUDIO_RECORDING_QUALITY_TYPE | quality | ||
) |
开始客户端录音。
Agora RTC SDK 支持通话过程中在客户端进行录音。该方法录制频道内所有用户的音频,并生成一个包含所有用户声音的录音文件,录音文件格式可以为:
请确保 app 里指定的目录存在且可写。该接口需在 JoinChannelByKey 之后调用。如果调用 LeaveChannel 时还在录音,录音会自动停止。
filePath | 录音文件的本地保存路径,由用户自行指定,需精确到文件名及格式,例如:/dir1/dir2/dir3/audio.aac。 |
quality | 设置录音质量。详见 AUDIO_RECORDING_QUALITY_TYPE. |
int agora_gaming_rtc.IRtcEngine.StartAudioRecording | ( | string | filePath, |
int | sampleRate, | ||
AUDIO_RECORDING_QUALITY_TYPE | quality | ||
) |
开始客户端录音。
Agora RTC SDK 支持通话过程中在客户端进行录音。调用该方法后,你可以录制频道内所有用户的音频,并得到一个包含所有用户声音的录音文件。录音文件格式可以为:
sampleRate
设为 441000 Hz 或 48000 Hz 时,建议将 quality
设为 AUDIO_RECORDING_QUALITY_MEDIUM(1) 或 AUDIO_RECORDING_QUALITY_HIGH(2)。filePath | 录音文件在本地保存的绝对路径,由用户自行指定,需精确到文件名及格式,例如:/dir1/dir2/dir3/audio.aac。 |
sampleRate | 录音采样率(Hz),可以设为以下值:
|
quality | 录音音质。详见 AUDIO_RECORDING_QUALITY_TYPE 。 |
int agora_gaming_rtc.IRtcEngine.StopAudioRecording | ( | ) |
IAudioEffectManager agora_gaming_rtc.IRtcEngine.GetAudioEffectManager | ( | ) |
获取 AudioEffectManagerImpl 对象。
IAudioRecordingDeviceManager agora_gaming_rtc.IRtcEngine.GetAudioRecordingDeviceManager | ( | ) |
获取 AudioRecordingDeviceManager 对象。
IAudioPlaybackDeviceManager agora_gaming_rtc.IRtcEngine.GetAudioPlaybackDeviceManager | ( | ) |
获取 AudioPlaybackDeviceManager 对象。
IVideoDeviceManager agora_gaming_rtc.IRtcEngine.GetVideoDeviceManager | ( | ) |
获取 VideoDeviceManager 对象。
IAudioRawDataManager agora_gaming_rtc.IRtcEngine.GetAudioRawDataManager | ( | ) |
获取 AudioRawDataManager 对象。
IVideoRawDataManager agora_gaming_rtc.IRtcEngine.GetVideoRawDataManager | ( | ) |
获取 VideoRawDataManager 对象。
int agora_gaming_rtc.IRtcEngine.EnableVideo | ( | ) |
启用视频模块。
该方法可以在加入频道前或者通话中调用,在加入频道前调用则自动开启视频模块;在通话中调用则由音频模式切换为视频模式。 调用 DisableVideo 方法可关闭视频模式。
成功调用该方法后,远端会触发 OnUserEnableVideoHandler(true) 回调。
EnableVideo
和 EnableVideoObserver 方法。int agora_gaming_rtc.IRtcEngine.DisableVideo | ( | ) |
关闭视频模块。
该方法可以在加入频道前或者通话中调用,在加入频道前调用,则自动开启纯音频模式,在通话中调用则由视频模式切换为纯音频频模式。 调用 EnableVideo 方法可开启视频模式。
成功调用该方法后,远端会触发 OnUserEnableVideoHandler(false) 回调。
DisableVideo
和 DisableVideoObserver 方法。int agora_gaming_rtc.IRtcEngine.EnableLocalVideo | ( | bool | enabled | ) |
开关本地视频采集。
该方法禁用或重新启用本地视频采集,不影响接收远端视频。
调用 EnableVideo 后,本地视频即默认开启。你可以调用 EnableLocalVideo(false)
关闭本地视频采集。关闭后如果想要重新开启,则可调用 EnableLocalVideo(true)
。
成功禁用或启用本地视频采集后,远端会触发 OnUserEnableLocalVideoHandler 回调。
enabled |
|
int agora_gaming_rtc.IRtcEngine.EnableLocalAudio | ( | bool | enabled | ) |
开关本地音频采集。
当用户加入频道时,语音功能默认是开启的。该方法可以关闭或重新开启本地语音功能,即停止或重新开始本地音频采集。
该方法不影响接收或播放远端音频流,EnableLocalAudio(false)
适用于只听不发的用户场景。
语音功能关闭或重新开启后,会收到回调 OnLocalAudioStateChangedHandler,并报告 LOCAL_AUDIO_STREAM_STATE_STOPPED(0)
或 LOCAL_AUDIO_STREAM_STATE_RECORDING(1)
。
EnableLocalAudio
: 开启或关闭本地语音采集及处理。使用 EnableLocalAudio
关闭或开启本地采集后,本地听远端播放会有短暂中断。MuteLocalAudioStream
: 停止或继续发送本地音频流。enabled |
|
int agora_gaming_rtc.IRtcEngine.StartPreview | ( | ) |
开启视频预览。
该方法用于在进入频道前启动本地视频预览。调用该 API 前,必须调用 EnableVideo 开启视频功能。
int agora_gaming_rtc.IRtcEngine.StopPreview | ( | ) |
停止视频预览。
int agora_gaming_rtc.IRtcEngine.EnableVideoObserver | ( | ) |
开启视频观测器。
该方法直接将视频图片发送给 App,而无需经过传统的视图渲染器。
EnableVideoObserver
方法。int agora_gaming_rtc.IRtcEngine.DisableVideoObserver | ( | ) |
关闭视频观测器。
该方法禁止直接将视频图片发送给 App。
DisableVideoObserver
方法。int agora_gaming_rtc.IRtcEngine.SetDefaultMuteAllRemoteAudioStreams | ( | bool | mute | ) |
默认取消或恢复订阅远端用户的音频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的音频流:
|
int agora_gaming_rtc.IRtcEngine.SetDefaultMuteAllRemoteVideoStreams | ( | bool | mute | ) |
默认取消或恢复订阅远端用户的视频流。
该方法需要在加入频道后调用。调用成功后,本地用户取消或恢复订阅调用时刻之后加入频道的远端用户。
mute | 是否默认取消订阅远端用户的视频流:
|
int agora_gaming_rtc.IRtcEngine.EnableLastmileTest | ( | ) |
启动网络测试。
该方法启用网络连接质量测试,用于检测用户目前的网络接入质量(上行网络质量)。默认该功能为关闭状态。该方法主要用于以下场景:
启用该方法均会消耗网络流量,影响通话质量。用户必须在收到 OnLastmileQualityHandler 回调后调用 DisableLastmileTest 停止测试,再加入频道或切换为主播。
OnLastmileQualityHandler
回调前请勿调用其他方法,否则可能由于 API 操作过于频繁导致回调无法执行。int agora_gaming_rtc.IRtcEngine.DisableLastmileTest | ( | ) |
关闭网络测试。
CONNECTION_STATE_TYPE agora_gaming_rtc.IRtcEngine.GetConnectionState | ( | ) |
int agora_gaming_rtc.IRtcEngine.SetAudioProfile | ( | AUDIO_PROFILE_TYPE | audioProfile, |
AUDIO_SCENARIO_TYPE | scenario | ||
) |
设置音频编码属性。
JoinChannelByKey
之后设置不生效。audioProfile
设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4),scenario
设置为 AUDIO_SCENARIO_GAME_STREAMING(3)。audioProfile | 设置采样率,码率,编码模式和声道数: AUDIO_PROFILE_TYPE. |
scenario | 设置音频应用场景: AUDIO_SCENARIO_TYPE 。不同的音频场景下,设备的音量类型是不同的。详见如何区分媒体音量和通话音量。 |
int agora_gaming_rtc.IRtcEngine.SetVideoEncoderConfiguration | ( | VideoEncoderConfiguration | configuration | ) |
设置本地视频的编码属性。
configuration | 视频编码参数配置。详见: VideoEncoderConfiguration 。 |
int agora_gaming_rtc.IRtcEngine.AdjustAudioMixingPlayoutVolume | ( | int | volume | ) |
调节音乐文件本端播放音量。
该方法调节混音音乐文件在本端的播放音量大小。
volume | 音乐文件音量范围为 [0,100]。100 (默认值) 为原始文件音量。 |
int agora_gaming_rtc.IRtcEngine.AdjustAudioMixingPublishVolume | ( | int | volume | ) |
调节音乐文件远端播放音量。
该方法调节混音音乐文件在远端的播放音量大小。
volume | 音乐文件音量范围为 [0,100]。100 (默认值) 为原始文件音量。 |
int agora_gaming_rtc.IRtcEngine.SetVolumeOfEffect | ( | int | soundId, |
int | volume | ||
) |
实时调整音效文件的播放音量。
soundId | 指定音效的 ID。每个音效均有唯一的 ID。 |
volume | 播放音量。音量范围为 [0,100]。100 (默认值)为原始文件音量。 |
int agora_gaming_rtc.IRtcEngine.SetRecordingAudioFrameParameters | ( | int | sampleRate, |
int | channel, | ||
RAW_AUDIO_FRAME_OP_MODE_TYPE | mode, | ||
int | samplesPerCall | ||
) |
设置采集的声音格式。
该方法设置 OnRecordAudioFrameHandler 回调的采集声音格式。
samplesPerCall
、sampleRate
和 channel
参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。请确保采样间隔不得小于 0.01 (s)。SDK 会根据该采样间隔触发 OnRecordAudioFrameHandler
回调。sampleRate | 指定 OnRecordAudioFrameHandler 中返回数据的采样率,可设置为 8000、 16000、 32000、 44100 或 48000。 |
channel | 指定 OnRecordAudioFrameHandler 中返回数据的通道数,可设置为 1 或 2:
|
mode | 指定 OnRecordAudioFrameHandler 回调的使用模式: RAW_AUDIO_FRAME_OP_MODE_TYPE 。 |
samplesPerCall | 指定 OnRecordAudioFrameHandler 中返回数据的采样点数,如 RTMP/RTMPS 推流应用中通常为 1024。 |
int agora_gaming_rtc.IRtcEngine.SetPlaybackAudioFrameParameters | ( | int | sampleRate, |
int | channel, | ||
RAW_AUDIO_FRAME_OP_MODE_TYPE | mode, | ||
int | samplesPerCall | ||
) |
设置播放的声音格式。
samplesPerCall
、sampleRate
和 channel
参数计算出采样间隔,计算公式为采样间隔 = samplesPerCall
/(sampleRate
× channel
)。请确保采样间隔不得小于 0.01 (s)。SDK 会根据该采样间隔触发 OnPlaybackAudioFrameHandler
回调。sampleRate | 指定 OnPlaybackAudioFrameHandler 中返回数据的采样率,可设置为 8000,16000,32000,44100 或 48000。 |
channel | 指定 OnPlaybackAudioFrameHandler 中返回数据的通道数,可设置为 1 或 2:
|
mode | 指定 OnPlaybackAudioFrameHandler 的使用模式: RAW_AUDIO_FRAME_OP_MODE_TYPE 。 |
samplesPerCall | 指定 OnPlaybackAudioFrameHandler 中返回数据的采样点数,如 RTMP/RTMPS 推流应用中通常为 1024。 |
int agora_gaming_rtc.IRtcEngine.SetLocalPublishFallbackOption | ( | STREAM_FALLBACK_OPTIONS | option | ) |
设置弱网条件下发布的音视频流回退选项。
网络不理想的环境下,直播音视频的质量都会下降。使用该接口并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2) 后,SDK 会在上行弱网且音视频质量严重受影响时,自动关断视频流,从而保证或提高音频质量。同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。当本地推流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发本地发布的媒体流已回退为音频流 OnLocalPublishFallbackToAudioOnlyHandler 回调。
option | 本地推流回退处理选项: STREAM_FALLBACK_OPTIONS 。 |
int agora_gaming_rtc.IRtcEngine.SetRemoteSubscribeFallbackOption | ( | STREAM_FALLBACK_OPTIONS | option | ) |
设置弱网条件下订阅的音视频流的回退选项。
默认 option
为 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW(1)。如果你使用本方法并将 option
设置为 STREAM_FALLBACK_OPTION_AUDIO_ONLY(2),SDK 会在下行弱网且音视频质量严重受影响时,将视频流切换为小流,或关断视频流,从而保证或提高音频质量。同时 SDK 会持续监控网络质量,并在网络质量改善时恢复音视频流。
当远端订阅流回退为音频流时,或由音频流恢复为音视频流时,SDK 会触发 OnRemoteSubscribeFallbackToAudioOnlyHandler 回调。
option | 详见 STREAM_FALLBACK_OPTIONS 。 |
int agora_gaming_rtc.IRtcEngine.SetRemoteDefaultVideoStreamType | ( | REMOTE_VIDEO_STREAM_TYPE | remoteVideoStreamType | ) |
设置默认订阅的视频流类型。
如果发送端选择发送视频双流 (大流,即高分辨率、高码率视频流,或小流,即低分辨率、低码率视频流),接收端可以选择接收大流还是小流。
调用本方法的执行结果将在下文的 OnApiExecutedHandler 中返回。视频小流默认的宽高比和视频大流的宽高比一致。根据当前大流的宽高比,系统会自动分配小流的分辨率、帧率及码率。
SetRemoteDefaultVideoStreamType
,也调用了 SetRemoteVideoStreamType,则 SDK 以 SetRemoteVideoStreamType
中的设置为准。remoteVideoStreamType | 视频流类型: REMOTE_VIDEO_STREAM_TYPE 。 |
int agora_gaming_rtc.IRtcEngine.AddPublishStreamUrl | ( | string | url, |
bool | transcodingEnabled | ||
) |
增加旁路推流地址。
调用该方法后,你可以向 CDN 推送 RTMP 或 RTMPS 协议的媒体流。SDK 会在本地触发 OnRtmpStreamingStateChangedHandler 回调,报告增加旁路推流地址的状态。
url | CDN 推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。url 不支持中文字符等特殊字符。 |
transcodingEnabled |
|
ERR_INVALID_ARGUMENT(-2)
: URL 为空或是长度为 0 的的字符串。ERR_NOT_INITIALIZED(-7)
: 推流时未初始化引擎。 int agora_gaming_rtc.IRtcEngine.RemovePublishStreamUrl | ( | string | url | ) |
删除旁路推流地址。
调用该方法后,SDK 会在本地触发 OnRtmpStreamingStateChangedHandler 回调,报告删除旁路推流地址的状态。
url | 待删除的旁路推流地址,格式为 RTMP 或 RTMPS。该字符长度不能超过 1024 字节。 |
|
static |
int agora_gaming_rtc.IRtcEngine.EnableWebSdkInteroperability | ( | bool | enabled | ) |
打开直播场景下与 Agora Web SDK 的互通。
enabled |
|
int agora_gaming_rtc.IRtcEngine.SetLiveTranscoding | ( | LiveTranscoding | transcoding | ) |
设置直播推流转码。
该方法用于旁路推流的视图布局及音频设置等。调用该方法更新转码设置后本地会触发 OnTranscodingUpdatedHandler 回调。
OnTranscodingUpdatedHandler
回调。transcoding | 详见 LiveTranscoding 。 |
int agora_gaming_rtc.IRtcEngine.PushVideoFrame | ( | ExternalVideoFrame | externalVideoFrame | ) |
使用 ExternalVideoFrame 将视频帧数据传递给 Agora RTC SDK。 更多信息请参考进阶功能《自定义视频采集和渲染》。
externalVideoFrame | 待传输的视频帧。详见 ExternalVideoFrame。 |
int agora_gaming_rtc.IRtcEngine.SetExternalVideoSource | ( | bool | enable, |
bool | useTexture = false |
||
) |
配置外部视频源。
enable | 是否使用外部视频源:
|
useTexture | 是否使用 Texture 作为输入(现不支持使用 Texture 作为输入,请用默认值 false ):
|
int agora_gaming_rtc.IRtcEngine.SetExternalAudioSource | ( | bool | enabled, |
int | sampleRate, | ||
int | channels | ||
) |
设置外部音频采集参数。
enabled |
|
sampleRate | 外部音频源的采样率 (Hz),可设置为 8000,16000,32000,44100 或 48000。 |
channels | 外部音频源的通道数,可设置为 1 或 2:
|
int agora_gaming_rtc.IRtcEngine.PushAudioFrame | ( | AudioFrame | audioFrame | ) |
int agora_gaming_rtc.IRtcEngine.GetAudioMixingPlayoutVolume | ( | ) |
获取音乐文件的本地播放音量。
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
int agora_gaming_rtc.IRtcEngine.GetAudioMixingPublishVolume | ( | ) |
获取音乐文件的远端播放音量。
该接口可以方便开发者排查音量相关问题。
int agora_gaming_rtc.IRtcEngine.EnableSoundPositionIndication | ( | bool | enabled | ) |
开启/关闭远端用户的语音立体声。
如果想调用 SetRemoteVoicePosition 实现听声辨位的功能,请确保在加入频道前调用该方法开启远端用户的语音立体声。
enabled | 是否开启远端用户语音立体声:
|
int agora_gaming_rtc.IRtcEngine.SetLocalVoiceChanger | ( | VOICE_CHANGER_PRESET | voiceChanger | ) |
设置本地语音变声、美音或语聊美声效果。
通信场景下的用户或直播场景下的主播均可调用该方法为本地语音设置以下效果。成功设置以后,频道内的所有用户均可听到声音效果。
VOICE_CHANGER
为前缀。效果包括老男人、小男孩、小女孩、猪八戒、空灵和绿巨人,通常用于语聊场景。VOICE_BEAUTY
为前缀。效果包括浑厚、低沉、圆润、假音、饱满、清澈、高亢、嘹亮和空旷,通常用于语聊和唱歌场景。GENERAL_BEAUTY_VOICE
为前缀。效果包括磁性(男)、清新(女)和活力(女),通常用于语聊场景。该功能主要细化了男声和女声各自的特点。profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。voiceChanger | 预设本地语音变声、美音或语聊美声效果选项,默认值为 VOICE_CHANGER_OFF ,即原声。详见 VOICE_CHANGER_PRESET 。 设置语聊美声效果时,Agora 推荐使用 GENERAL_BEAUTY_VOICE_MALE_MAGNETIC 处理男声,使用 GENERAL_BEAUTY_VOICE_FEMALE_FRESH 或 GENERAL_BEAUTY_VOICE_FEMALE_VITALITY 处理女声,否则音频可能会产生失真。 |
int agora_gaming_rtc.IRtcEngine.SetLocalVoiceReverbPreset | ( | AUDIO_REVERB_PRESET | audioReverbPreset | ) |
设置本地语音混响(含虚拟立体声效果)。
通信场景下的用户或直播场景下的主播均可调用该方法设置本地语音混响。成功设置以后,频道内的所有用户均可听到声音效果。
AUDIO_REVERB_FX
为前缀的枚举值时,请确保在调用该方法前将 SetAudioProfile 的 profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。AUDIO_VIRTUAL_STEREO
时,Agora 推荐在调用该方法前将 setAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。audioReverbPreset | 本地语音混响选项,默认值为 AUDIO_REVERB_OFF ,即原声。详见 AUDIO_REVERB_PRESET 。 为达到更好的混响效果,Agora 推荐使用以 AUDIO_REVERB_FX 为前缀的枚举值。 |
int agora_gaming_rtc.IRtcEngine.SetLocalVoicePitch | ( | double | pitch | ) |
设置本地语音音调。
pitch | 语音频率可以 [0.5,2.0] 范围内设置。取值越小,则音调越低。默认值为 1.0,表示不需要修改音调。 |
int agora_gaming_rtc.IRtcEngine.SetLocalVoiceEqualization | ( | AUDIO_EQUALIZATION_BAND_FREQUENCY | bandFrequency, |
int | bandGain | ||
) |
设置本地语音音效均衡。
bandFrequency | 频谱子带索引。取值范围是 [0,9],分别代表音效的 10 个频带。对应的中心频率为 [31,62,125,250,500,1k,2k,4k,8k,16k] Hz。详见 AUDIO_EQUALIZATION_BAND_FREQUENCY 。 |
bandGain | 每个 band 的增益,单位是 dB,每一个值的范围是 [-15,15]。 |
int agora_gaming_rtc.IRtcEngine.SetLocalVoiceReverb | ( | AUDIO_REVERB_TYPE | reverbKey, |
int | value | ||
) |
设置本地音效混响。
reverbKey | 混响音效类型,详见 AUDIO_REVERB_TYPE 。 |
value | 各混响音效 Key 所对应的值。 |
int agora_gaming_rtc.IRtcEngine.SetCameraCapturerConfiguration | ( | CameraCapturerConfiguration | cameraCaptureConfiguration | ) |
设置摄像头采集配置。
一般的视频通话或直播中,默认由 SDK 自动控制摄像头的输出参数。在如下特殊场景中,默认的参数通常无法满足需求,或可能引起设备性能问题,我们推荐调用该方法设置摄像头的采集偏好:
cameraCaptureConfiguration | 摄像头采集配置,详见 CameraCapturerConfiguration 。 |
int agora_gaming_rtc.IRtcEngine.SetRemoteUserPriority | ( | uint | uid, |
PRIORITY_TYPE | userPriority | ||
) |
设置远端用户流的优先级。
设置远端用户的优先级。如果将某个用户的优先级设为高,那么发给这个用户的音视频流的优先级就会高于其他用户。
该方法可以与 SetRemoteSubscribeFallbackOption 搭配使用。如果开启了订阅流回退选项,弱网下 SDK 会优先保证高优先级用户收到的流的质量。
uid | 远端用户的 ID。 |
userPriority | 远端用户的需求优先级。详见: PRIORITY_TYPE 。 |
int agora_gaming_rtc.IRtcEngine.SetLogFileSize | ( | uint | fileSizeInKBytes | ) |
设置 Agora SDK 输出的单个日志文件大小。
默认情况下,SDK 会生成 agorasdk.log
、agorasdk_1.log
、agorasdk_2.log
、agorasdk_3.log
、agorasdk_4.log
这 5 个日志文件。 每个文件的默认大小为 1024 KB。日志文件为 UTF-8 编码。最新的日志永远写在 agorasdk.log
中。agorasdk.log
写满后,SDK 会从 1-4 中删除修改时间最早的一个文件, 然后将 agorasdk.log
重命名为该文件,并建立新的 agorasdk.log
写入最新的日志。
fileSizeInKBytes | 单个日志文件的大小,单位为 KB。默认值为 1024 KB。如果你将 fileSizeInKBytes 设为 1024 KB,SDK 会最多输出 5 MB 的日志文件。如果你将 fileSizeInKBytes 设为小于 1024 KB,单个日志文件最大仍为 1024 KB。 |
int agora_gaming_rtc.IRtcEngine.SetExternalAudioSink | ( | bool | enabled, |
int | sampleRate, | ||
int | channels | ||
) |
设置外部音频渲染。该方法适用于需要自行渲染音频的场景。开启外部音频渲染后,你可以通过调用 PullAudioFrame 方法拉取远端音频数据。app 可以对拉取到的原始音频数据进行处理后再渲染,获取想要的音频效果。
enabled |
|
sampleRate | 外部音频渲染的采样率 (Hz),可设置为 16000,32000,44100 或 48000。 |
channels | 外部音频渲染的声道数,可设置为 1 或 2:
|
int agora_gaming_rtc.IRtcEngine.RegisterLocalUserAccount | ( | string | appId, |
string | userAccount | ||
) |
注册本地用户 User Account。
该方法为本地用户注册一个 User Account。注册成功后,该 User Account 即可标识该本地用户的身份,用户可以使用它加入频道。成功注册 User Account 后,本地会触发 OnLocalUserRegisteredHandler 回调,告知本地用户的 UID 和 User Account。
该方法为可选。如果你希望用户使用 User Account 加入频道,可以选用以下两种方式:
RegisterLocalUserAccount
方法注册 Account,再调用 JoinChannelWithUserAccount 方法加入频道JoinChannelWithUserAccount
方法加入频道。两种方式的区别在于,提前调用 RegisterLocalUserAccount
,可以缩短使用 JoinChannelWithUserAccount
进入频道的时间。
userAccount
不能为空,否则该方法不生效。userAccount
在频道中的唯一性。appId | 你的项目在 Agora 控制台注册的 App ID。 |
userAccount | 用户 User Account。该参数为必填,最大不超过 255 字节,不可填 null 。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
int agora_gaming_rtc.IRtcEngine.JoinChannelWithUserAccount | ( | string | token, |
string | channelId, | ||
string | userAccount | ||
) |
使用 User Account 加入频道。
该方法允许本地用户使用 User Account 加入频道。成功加入频道后,会触发以下回调:
Mute
方法实现。token | 在 app 服务器端生成的用于鉴权的 Token:
|
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
|
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null 。请确保注册的 User Account 的唯一性。以下为支持的字符集范围(共 89 个字符):
|
int agora_gaming_rtc.IRtcEngine.JoinChannelWithUserAccount | ( | string | token, |
string | channelId, | ||
string | userAccount, | ||
ChannelMediaOptions | options | ||
) |
通过 User account 加入频道。
相比于 IRtcEngine 类下的 JoinChannelWithUserAccount
方法,该方法支持通过创建多个 AgoraChannel 对象,并调用相应对象的 joinChannelWithUserAccount
方法,实现同时加入多个频道。
用户成功加入频道后,发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。如果想取消订阅, 可以通过设置 options
参数或调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 频道名称。 |
userAccount | 用户 User Account。该参数为必需,最大不超过 255 字节,不可为 null。请确保加入频道的 User Account 的唯一性。 以下为支持的字符集范围(共 89 个字符):
|
options | 频道媒体设置选项: ChannelMediaOptions。 |
ERR_INVALID_ARGUMENT
(2)ERR_NOT_READY
(3)ERR_REFUSED
(5)ERR_NOT_INITIALIZED
(7) UserInfo agora_gaming_rtc.IRtcEngine.GetUserInfoByUserAccount | ( | string | account | ) |
通过 User Account 获取用户信息。
远端用户加入频道后,SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 OnUserInfoUpdatedHandler 回调。收到这个回调后,你可以调用该方法,通过传入 User Account 获取包含了指定用户 UID 的 UserInfo
对象。
account | 用户 User Account。该参数为必填。 |
UserInfo agora_gaming_rtc.IRtcEngine.GetUserInfoByUid | ( | uint | uid | ) |
通过 UID 获取用户信息。
远端用户加入频道后, SDK 会获取到该远端用户的 UID 和 User Account,然后缓存一个包含了远端用户 UID 和 User Account 的 Mapping 表,并在本地触发 OnUserInfoUpdatedHandler 回调。收到这个回调后,你可以调用该方法,通过传入 UID 获取包含了指定用户 User Account 的 UserInfo
对象。
uid | 用户 UID。该参数为必填。 |
int agora_gaming_rtc.IRtcEngine.SetBeautyEffectOptions | ( | bool | enabled, |
BeautyOptions | beautyOptions | ||
) |
设置美颜效果选项。
开启本地美颜功能,并设置美颜效果选项。
enabled | 是否开启美颜功能:
|
beautyOptions | 美颜选项。详见: BeautyOptions 。 |
int agora_gaming_rtc.IRtcEngine.StartScreenCaptureByDisplayId | ( | uint | displayId, |
Rectangle | rectangle, | ||
ScreenCaptureParameters | screenCaptureParameters | ||
) |
通过屏幕 ID 共享屏幕。
共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 ID。
displayId | 指定待共享的屏幕 ID。开发者需要通过该参数指定你要共享的那个屏幕。 |
rectangle | (Optional) (可选)指定待共享区域相对于整个屏幕的位置。如不填,则表示共享整个屏幕。详见: Rectangle 。如果设置的共享区域超出了屏幕的边界,则只共享屏幕视窗内的内容;如果宽或高为 0,则共享整个屏幕。 |
screenCaptureParameters | 屏幕共享的参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
ERR_INVALID_ARGUMENT(-2)
: 传入的参数无效。 int agora_gaming_rtc.IRtcEngine.StartScreenCaptureByScreenRect | ( | Rectangle | screenRectangle, |
Rectangle | regionRectangle, | ||
ScreenCaptureParameters | screenCaptureParameters | ||
) |
通过指定区域共享屏幕。
共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
screenRectangle | 指定待共享的屏幕相对于虚拟屏的位置。 |
regionRectangle | (可选)指定待共享区域相对于整个屏幕屏幕的位置。如不填,则表示共享整个屏幕。详见: Rectangle 。如果设置的共享区域超出了屏幕的边界,则只共享屏幕内的内容;如果将 width 或 height 设为 0 ,则共享整个屏幕。 |
screenCaptureParameters | 屏幕共享的参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
ERR_INVALID_ARGUMENT(-2)
: 传入的参数无效。 int agora_gaming_rtc.IRtcEngine.SetScreenCaptureContentHint | ( | VideoContentHint | videoContentHint | ) |
设置屏幕共享内容类型。
设置屏幕共享的内容类型。Agora SDK 会根据不同的内容类型,使用不同的算法对共享效果进行优化。如果不调用该方法,SDK 会将屏幕共享的内容默认为 CONTENT_HINT_NONE(0),即无指定的内容类型。
videoContentHint | 指定屏幕共享的内容类型。详见: VideoContentHint 。 |
int agora_gaming_rtc.IRtcEngine.UpdateScreenCaptureParameters | ( | ScreenCaptureParameters | screenCaptureParameters | ) |
更新屏幕共享的参数配置。
screenCaptureParameters | 屏幕共享的编码参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准。详见: ScreenCaptureParameters 。 |
ERR_NOT_READY(-3)
: 如果当前没有共享的屏幕,会返回该错误码。 int agora_gaming_rtc.IRtcEngine.UpdateScreenCaptureRegion | ( | Rectangle | rectangle | ) |
更新屏幕共享区域。
rectangle | 待共享区域相对于整个屏幕或窗口的位置,如不填,则表示共享整个屏幕或窗口。详见: Rectangle 。如果设置的共享区域超出了屏幕或窗口的边界,则只共享屏幕或窗口内的内容;如果将 width 或 height 设为 0 ,则共享整个屏幕或窗口。 |
ERR_NOT_READY(-3)
: 如果当前没有共享的屏幕,会返回该错误码。 int agora_gaming_rtc.IRtcEngine.StopScreenCapture | ( | ) |
停止屏幕共享。
int agora_gaming_rtc.IRtcEngine.AddInjectStreamUrl | ( | string | url, |
InjectStreamConfig | streamConfig | ||
) |
输入在线媒体流。
该方法将正在播放的音视频作为音视频源输入到正在进行的直播中。可主要应用于赛事直播、多人看视频互动等直播场景。调用该方法后,SDK 会在本地触发 OnStreamInjectedStatusHandler 回调,报告输入在线媒体流的状态;成功输入媒体流后,该音视频流会出现在频道中,频道内所有用户都会收到 OnUserJoinedHandler 回调,其中 uid
为 666
。该音视频流会出现在频道中。
url | 添加到直播中的视频流 URL 地址。支持 RTMP、HLS、HTTP-FLV 协议传输。
|
streamConfig | 所添加的视频流属性定义,详见: InjectStreamConfig 。 |
ERR_INVALID_ARGUMENT(-2)
: 输入的 URL 为空。请重新调用该方法,并确认输入的媒体流的 URL 有效。 -ERR_NOT_READY(-3)
: 用户没有加入频道。 -ERR_NOT_SUPPORTED(-4)
: 频道非直播场景。请调用 SetChannelProfile 并将频道设置为直播场景再调用该方法。 -ERR_NOT_INITIALIZED(-7)
: 引擎没有初始化。请确认调用该方法前已创建 IRtcEngine 对象并完成初始化。 int agora_gaming_rtc.IRtcEngine.RemoveInjectStreamUrl | ( | string | url | ) |
删除输入的外部媒体流。
url | 已输入、待删除的外部视频源 URL 地址。 |
int agora_gaming_rtc.IRtcEngine.EnableLoopbackRecording | ( | bool | enabled, |
string | deviceName | ||
) |
开启声卡采集。
启用声卡采集功能后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端。
enabled | 设置是否开启声卡采集:
|
deviceName | 声卡的设备名。默认设为 NULL,即使用当前声卡采集。如果用户使用虚拟声卡,如 “Soundflower”,可以将虚拟声卡名称 “Soundflower” 作为参数,SDK 会找到对应的虚拟声卡设备,并开始采集。 |
int agora_gaming_rtc.IRtcEngine.SetAudioSessionOperationRestriction | ( | AUDIO_SESSION_OPERATION_RESTRICTION | restriction | ) |
设置 SDK 对 Audio Session 的控制权限
该接口可以在任意时候调用,可以在任意时候通过该方法把控制权交还给 SDK。
restriction | Agora SDK 对 Audio Session 的控制权限,详见: AUDIO_SESSION_OPERATION_RESTRICTION 。该 restriction 为 Bit Mask,每个 Bit 对应一个权限。 |
int agora_gaming_rtc.IRtcEngine.StartChannelMediaRelay | ( | ChannelMediaRelayConfiguration | mediaRelayConfiguration | ) |
开始跨频道媒体流转发。该方法可用于实现跨频道连麦等场景。
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChangedHandler 和 OnChannelMediaRelayEventHandler 回调,并在回调中报告当前的跨频道媒体流转发状态和事件。
OnChannelMediaRelayStateChangedHandler
回调报告 RELAY_STATE_RUNNING(2) 和 RELAY_OK(0),且 OnChannelMediaRelayEventHandler
回调报告 RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL(4),则表示 SDK 开始在源频道和目标频道之间转发媒体流。OnChannelMediaRelayStateChangedHandler
回调报告 RELAY_STATE_FAILURE(3),则表示跨频道媒体流转发出现异常。mediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
int agora_gaming_rtc.IRtcEngine.UpdateChannelMediaRelay | ( | ChannelMediaRelayConfiguration | mediaRelayConfiguration | ) |
更新媒体流转发的频道。成功开始跨频道转发媒体流后,如果你希望将流转发到多个目标频道,或退出当前的转发频道,可以调用该方法。
成功调用该方法后,SDK 会触发 OnChannelMediaRelayEventHandler 回调,并在回调中报告状态码 RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL(7)。
StartChannelMediaRelay
方法后调用该方法,更新媒体流转发的频道。mediaRelayConfiguration | 跨频道媒体流转发参数配置。详见 ChannelMediaRelayConfiguration 。 |
int agora_gaming_rtc.IRtcEngine.StopChannelMediaRelay | ( | ) |
停止跨频道媒体流转发。一旦停止,主播会退出所有目标频道。
成功调用该方法后,SDK 会触发 OnChannelMediaRelayStateChangedHandler 回调。如果报告 RELAY_STATE_IDLE(0) 和 RELAY_OK(0),则表示已停止转发媒体流。
OnChannelMediaRelayStateChangedHandler
回调,并报告状态码 RELAY_ERROR_SERVER_NO_RESPONSE(2) 或 RELAY_ERROR_SERVER_CONNECTION_LOST(8)。你可以调用 LeaveChannel 方法离开频道,跨频道媒体流转发会自动停止。int agora_gaming_rtc.IRtcEngine.SwitchChannel | ( | string | token, |
string | channelId | ||
) |
快速切换直播频道。
当直播频道中的观众想从一个频道切换到另一个频道时,可以调用该方法,实现快速切换。
成功调用该方切换频道后,本地会先收到离开原频道的回调 OnLeaveChannelHandler,再收到成功加入新频道的回调 OnJoinChannelSuccessHandler。
Mute
方法实现。token | 在服务器端生成的用于鉴权的 Token:
|
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围(共 89 个字符):
|
int agora_gaming_rtc.IRtcEngine.SetMultiChannelWant | ( | bool | multiChannelWant | ) |
设置是否开启多频道模式。
在多频道视频场景中,你需要调用该方法开启多频道模式,否则用户无法接收多个频道中的视频流。
multiChannelWant | 是否开启多频道模式:
|
int agora_gaming_rtc.IRtcEngine.SetMirrorApplied | ( | bool | wheatherApply | ) |
设置是否开启镜像模式。
wheatherApply | 设置是否开启本地和远端视频的镜像模式。
|
int agora_gaming_rtc.IRtcEngine.SetInEarMonitoringVolume | ( | int | volume | ) |
设置耳返音量。
volume | 设置耳返音量,取值范围在 [0,100]。默认值为 100。 |
int agora_gaming_rtc.IRtcEngine.StartScreenCaptureByWindowId | ( | int | windowId, |
Rectangle | regionRect, | ||
ScreenCaptureParameters | screenCaptureParameters | ||
) |
通过窗口 ID 共享窗口。共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 ID。
自 v3.0.1 起,该方法支持共享通用 Windows 平台(UWP)应用窗口。
声网使用最新版 SDK 对主流的 UWP 应用进行了测试,结果如下:
系统版本 | 软件 | 软件版本 | 是否支持 |
win10 | Chrome | 76.0.3809.100 | 否 |
Office Word | 18.1903.1152.0 | 是 | |
Office Excel | 否 | ||
Office PPT | 是 | ||
WPS Word | 11.1.0.9145 | 是 | |
WPS Excel | |||
WPS PPT | |||
Media Player(系统自带) | 全部 | 是 | |
win8 | Chrome | 全部 | 是 |
Office Word | 全部 | 是 | |
Office Excel | |||
Office PPT | |||
WPS Word | 11.1.0.9098 | 是 | |
WPS Excel | |||
WPS PPT | |||
Media Player(系统自带) | 全部 | 是 | |
win7 | Chrome | 73.0.3683.103 | 否 |
Office Word | 全部 | 是 | |
Office Excel | |||
Office PPT | |||
WPS Word | 11.1.0.9098 | 否 | |
WPS Excel | |||
WPS PPT | 11.1.0.9098 | 是 | |
Media Player(系统自带) | 全部 | 否 |
windowId | 指定待共享的窗口 ID。关于如何获取窗口 ID。 |
regionRect | (可选)指定待共享的区域相对于整个窗口的位置。如不填,则表示共享整个窗口。详见: Rectangle 。如果设置的共享区域超出了窗口的边界,则只共享窗口内的内容;如果宽或高为 0,则共享整个窗口。 |
screenCaptureParameters | 屏幕共享的参数配置。默认的分辨率为 1920 x 1080,即 2073600 像素。该像素值为计费标准详见: ScreenCaptureParameters 。 |
ERR_INVALID_ARGUMENT(-2)
: 传入的参数无效。 int agora_gaming_rtc.IRtcEngine.EnableInEarMonitoring | ( | bool | enabled | ) |
开启耳返功能。
enabled | 是否开启耳返功能:
|
int agora_gaming_rtc.IRtcEngine.AdjustUserPlaybackSignalVolume | ( | uint | uid, |
int | volume | ||
) |
调节本地播放的指定远端用户的信号音量。
加入频道后,你可以多次调用该方法调节不同远端用户在本地播放的音量,或对某个远端用户在本地播放的音量调节多次。
uid | 远端用户 ID。 |
volume | 播放音量,取值范围为 [0,100]:
|
AgoraChannel agora_gaming_rtc.IRtcEngine.CreateChannel | ( | string | channelId | ) |
创建并获取一个 AgoraChannel
对象。
你可以多次调用该方法,创建多个 AgoraChannel
对象,再调用各 AgoraChannel
对象中的 JoinChannel 方法,实现同时加入多个频道。
加入多个频道后,你可以同时订阅各个频道的音、视频流;但是同一时间只能在一个频道发布一路音、视频流。
channelId | 能标识频道的频道名,长度在 64 字节以内的字符。以下为支持的字符集范围(共 89 个字符):
|
-5(ERR_REFUSED)
AgoraChannel
对象null
channelId
设为空字符 "",SDK 会返回 -5(ERR_REFUSED)
int agora_gaming_rtc.IRtcEngine.EnableFaceDetection | ( | bool | enable | ) |
开启/关闭本地人脸检测。仅适用于 Android 和 iOS。
开启本地人脸检测后,SDK 会触发 OnFacePositionChangedHandler 回调向你报告人脸检测的信息:
enable | 是否开启人脸检测:
|
int agora_gaming_rtc.IRtcEngine.SetAudioMixingPitch | ( | int | pitch | ) |
调整本地播放的音乐文件的音调。
本地人声和播放的音乐文件混音时,调用该方法可以仅调节音乐文件的音调。
pitch | 按半音音阶调整本地播放的音乐文件的音调,默认值为 0 ,即不调整音调。取值范围为 [-12,12], 每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。 |
int agora_gaming_rtc.IRtcEngine.EnableEncryption | ( | bool | enabled, |
EncryptionConfig | encryptionConfig | ||
) |
开启或关闭内置加密。
在安全要求较高的场景下,Agora 建议你在加入频道前,调用 enableEncryption
方法开启内置加密。
用户离开频道后,SDK 会自动关闭加密。如需重新开启加密,你需要在用户再次加入频道前调用该方法。
自 v3.4.5 起,Agora 推荐使用 AES_128_GCM2
或 AES_256_GCM2
加密模式。 这两种模式支持设置盐,安全性更高。设置方法详见《媒体流加密》。
enabled | 是否开启内置加密:
|
encryptionConfig | 配置内置加密方案。详见 EncryptionConfig。 |
IRtcEngine
对象并完成初始化。 int agora_gaming_rtc.IRtcEngine.SetClientRole | ( | CLIENT_ROLE_TYPE | role, |
ClientRoleOptions | clientRoleOptions | ||
) |
设置直播场景下的用户角色。
在加入频道前和加入频道后均可调用该方法设置用户角色。
如果你在加入频道后调用该方法成功切换用户角色,SDK 会触发以下回调:
role
)确定用户在 SDK 层的权限,包含是否可以发送流、是否可以接收流、是否可以推流到 CDN 等。level
)需要与角色结合使用,确定用户在其权限范围内,可以操作和享受到的服务级别。例如对于观众,选择接收低延时还是超低延时的视频流。不同的级别会影响计费。role | 直播场景中的用户角色,详见 CLIENT_ROLE_TYPE |
clientRoleOptions | 用户具体设置,包含用户级别,详见 ClientRoleOptions |
int agora_gaming_rtc.IRtcEngine.SetVoiceBeautifierPreset | ( | VOICE_BEAUTIFIER_PRESET | preset | ) |
设置 SDK 预设的美声效果。
调用该方法可以为本地发流用户设置 SDK 预设的人声美化效果。设置美声效果后,频道内所有用户都能听到该效果。根据不同的场景,你可以为用户设置 不同的美声效果。
为获取更好的人声效果,Agora 推荐你在调用该方法前将 SetAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
,并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。
SetAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | 预设的美声效果选项,详见 VOICE_BEAUTIFIER_PRESET |
int agora_gaming_rtc.IRtcEngine.SetAudioEffectPreset | ( | AUDIO_EFFECT_PRESET | preset | ) |
设置 SDK 预设的人声音效。
调用该方法可以为本地发流用户设置 SDK 预设的人声音效,且不会改变原声的性别特征。设置音效后,频道内所有用户都能听到该效果。
根据不同的场景,你可以为用户设置不同的音效。
为获取更好的人声效果,Agora 推荐你在调用该方法前将 SetAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
。
SetAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。或
PITCH_CORRECTION` 外的枚举,请勿再 调用 SetAudioEffectParameters,否则该方法设置的效果会被覆盖。preset | 预设的音效选项,详见 AUDIO_EFFECT_PRESET |
int agora_gaming_rtc.IRtcEngine.SetAudioEffectParameters | ( | AUDIO_EFFECT_PRESET | preset, |
int | param1, | ||
int | param2 | ||
) |
设置 SDK 预设人声音效的参数。
调用该方法可以对本地发流用户进行如下设置:
设置后,频道内所有用户都能听到该效果。
该方法可以单独使用,也可以搭配 SetAudioEffectPreset 使用。搭配使用时, 需要先调用 SetAudioEffectPreset
并使用 ROOM_ACOUSTICS_3D_VOICE
或 PITCH_CORRECTION
枚举,再调用该方法使用相同的枚举。否则,该方法设置的效果会覆盖 setAudioEffectPreset
设置的效果。
scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
。SetAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | SDK 预设的音效:
|
param1 |
|
param2 |
|
int agora_gaming_rtc.IRtcEngine.SendCustomReportMessage | ( | string | id, |
string | category, | ||
string | events, | ||
string | label, | ||
int | value | ||
) |
声网提供自定义数据上报和分析服务。
该服务当前处于免费内测期。内测期提供的能力为 6 秒内最多上报 10 条数据,每条自定义数据不能超过 256 字节,每个字符串不能超过 100 字节。如需试用该服务,请联系 sales 开通并商定自定义数据格式。 @ago ra.io
int agora_gaming_rtc.IRtcEngine.SetVoiceBeautifierParameters | ( | VOICE_BEAUTIFIER_PRESET | preset, |
int | param1, | ||
int | param2 | ||
) |
设置 SDK 预设美声效果的参数。
调用该方法可以设置歌唱美声效果的性别特征和混响效果。该方法对本地发流用户进行设置。设置后,频道内所有用户都能听到该效果。
为获取更好的人声效果,Agora 推荐你在调用该方法前将 SetAudioProfile 的 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
,并将 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
。
SetAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
,否则该方法不生效。preset | SDK 预设的音效:
|
param1 | 歌声的性别特征:
|
param2 | 歌声的混响效果:
|
int agora_gaming_rtc.IRtcEngine.EnableDeepLearningDenoise | ( | bool | enable | ) |
开启或关闭 AI 降噪模式。
SDK 默认开启传统降噪模式,以消除大部分平稳噪声。如果你还需要消除非平稳噪声,Agora 推荐你按如下步骤开启 AI 降噪模式:
libagora_ai_denoise_extension.so
AgoraAIDenoiseExtension.framework
AgoraAIDenoiseExtension.framework
libagora_ai_denoise_extension.dll
EnableDeepLearningDenoise(true)
。AI 降噪模式对设备性能有要求。只有在设备性能良好的情况下,SDK 才会成功开启 AI 降噪模式。例如, 支持在如下设备及其之后的型号中开启 AI 降噪模式:
成功开启 AI 降噪模式后,如果 SDK 检测到当前设备的性能不足,SDK 会自动关闭 AI 降噪模式,并开启传统降噪模式。
在频道内,如果你调用了 EnableDeepLearningDenoise(false)
或 SDK 自动关闭了 AI 降噪模式,当你需要重新开启 AI 降噪模式时, 你需要先调用 LeaveChannel,再调用 EnableDeepLearningDenoise(true)
。
enable | 是否开启 AI 降噪模式:
|
-157
(ERR_MODULE_NOT_FOUND
): 未集成用于 AI 降噪的动态库。 int agora_gaming_rtc.IRtcEngine.JoinChannel | ( | string | token, |
string | channelId, | ||
string | info, | ||
uint | uid, | ||
ChannelMediaOptions | options | ||
) |
通过 UID 加入频道。
相比于 IRtcEngine 类下的 joinChannel
方法,该方法支持通过创建多个 AgoraChannel 对象,并调用相应对象的 joinChannel
方法,实现同时加入多个频道。
用户成功加入频道后,默认发布本地音视频流并自动订阅频道内所有其他用户的音视频流。订阅音视频流会产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
token | 在你服务器上生成的 Token。详见使用 Token 鉴权。 |
channelId | 频道名称。 |
info | (非必选项)开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。 |
uid | 用户 ID,32 位无符号整数。建议设置范围:1 到 232-1,并保证唯一性。如果不指定(即设为 0),SDK 会自动分配一个,并在 OnJoinChannelSuccessHandler 回调中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。 |
options | 频道媒体设置选项: ChannelMediaOptions。 |
int agora_gaming_rtc.IRtcEngine.SwitchChannel | ( | string | token, |
string | channelId, | ||
ChannelMediaOptions | options | ||
) |
快速切换直播频道,并设置是否自动订阅音频流或视频流。
当直播频道中的观众想从一个频道切换到另一个频道时,可以调用该方法,实现快速切换。
成功调用该方切换频道后,本地会先收到离开原频道的回调 OnLeaveChannelHandler,再收到成功加入新频道的回调 OnJoinChannelSuccessHandler。
用户成功切换频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
options
参数,用于配置终端用户在切换到新的频道时是否自动订阅频道内所有远端音视频流。token | 在服务端生成的用于鉴权的 Token。详见从服务端生成 Token。 |
channelId | 标识频道的频道名,最大不超过 64 字节。以下为支持的字符集范围 (共 89 个字符):
|
options | 频道媒体设置选项:ChannelMediaOptions。 |
int agora_gaming_rtc.IRtcEngine.SetVoiceConversionPreset | ( | VOICE_CONVERSION_PRESET | preset | ) |
设置 SDK 预设的变声效果。
调用该方法可以为本地发流用户设置 SDK 预设的变声效果。设置变声效果后,频道内所有用户都能听到该效果。根据不同的场景, 你可以为用户设置不同的变声效果,各变声效果的适用场景可参考《设置人声效果》。
为获取更好的人声效果,Agora 推荐你在调用该方法前将 SetAudioProfile 的 profile
设为 AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4)
或 AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5)
,并将 scenario
设为 AUDIO_SCENARIO_GAME_STREAMING(3)
。
SetAudioProfile
的 profile
参数设置为 AUDIO_PROFILE_SPEECH_STANDARD(1)
或 AUDIO_PROFILE_IOT(6)
, 否则该方法不生效。preset | 预设的变声效果选项: VOICE_CONVERSION_PRESET。 |
int agora_gaming_rtc.IRtcEngine.SetCloudProxy | ( | CLOUD_PROXY_TYPE | proxyType | ) |
设置 Agora 云代理服务。
当用户防火墙限制 IP 和端口号时,你需要参考《使用云代理》开放相应 IP 和端口号,然后调用该方法开启云代理,并将 proxyType
参数 设置为 UDP_PROXY(1)
,即 UDP 协议的云代理。
成功连接云代理后,SDK 会触发 OnConnectionStateChangedHandler(CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER)
回调。
如果你想关闭已设置的云代理,请调用 SetCloudProxy(NONE_PROXY)
。如果你想更改已设置的云代理类型, 请先调用 SetCloudProxy(NONE_PROXY)
,再调用 SetCloudProxy
并传入你期望的 proxyType
值。
proxyType | 云代理类型,详见 CLOUD_PROXY_TYPE。 该参数为必填参数,如果你不赋值,SDK 会报错。 |
-2(ERR_INVALID_ARGUMENT)
: 传入的参数无效-7(ERR_NOT_INITIALIZED)
: SDK 尚未初始化 int agora_gaming_rtc.IRtcEngine.StartAudioRecording | ( | AudioRecordingConfiguration | config | ) |
开始客户端录音。
Agora SDK 支持通话过程中在客户端进行录音。调用该方法后,你可以录制频道内用户的音频,并得到一个录音文件。录音文件格式可以为:
AUDIO_RECORDING_QUALITY_MEDIUM
,录音时长为 10 分钟的文件大小约为 2 M。一旦用户离开频道,录音会自动停止。
config | 录音配置。详见 AudioRecordingConfiguration 。 |
-160(ERR_ALREADY_IN_RECORDING)
: 客户端正在录音。如需开始新的录音, 请先调用 StopAudioRecording 停止当前录音, 再调用 StartAudioRecording。 int agora_gaming_rtc.IRtcEngine.AdjustLoopbackRecordingSignalVolume | ( | int | volume | ) |
调节声卡采集信号音量。
调用 EnableLoopbackRecording 开启声卡采集后,你可以调用该方法调节声卡采集的信号音量。
volume | 声卡采集信号音量。取值范围为 [0,100]。默认值为 100,表示原始音量。 |
int agora_gaming_rtc.IRtcEngine.EnableVirtualBackground | ( | bool | enabled, |
VirtualBackgroundSource | source | ||
) |
开启/关闭虚拟背景。(beta 功能)
开启虚拟背景功能后,你可以使用自定义的背景图替代本地用户原来的背景图。替换后,频道内所有用户都能看到自定义的背景图。 你可以从 OnVirtualBackgroundSourceEnabledHandler 回调了解虚拟 背景是否成功开启和相应的出错原因。
libagora_segmentation_extension.dll
(Windows)/AgoraVideoSegmentationExtension.framework
(macOS) 动态库集成到项目文件中。enabled | 设置是否开启虚拟背景:
|
source | 自定义的背景图。详见 VirtualBackgroundSource 。 |
Note: 为将自定义背景图的分辨率与 SDK 的视频采集分辨率适配,SDK 会在保证自定义背景图内容不变形的前提下,对自定义背景图进行缩放和裁剪。
|
static |
初始化 IRtcEngine
。
IRtcEngine
类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
IRtcEngine
。IRtcEngine
实例。该方法与 GetEngine2
的区别在于,GetEngine2
支持在创建 IRtcEngine
实例时指定访问区域。IRtcEngine
实例。appId | Agora 为 app 开发者签发的 App ID,详见获取 App ID。使用同一个 App ID 的 app 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 IRtcEngine 。如需更换 App ID,必须先调用 Destroy 销毁当前 IRtcEngine ,并在 Destroy 成功返回后,再调用该方法重新创建 IRtcEngine 。 |
IRtcEngine
对象。
|
static |
初始化 IRtcEngine
。
IRtcEngine
类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
IRtcEngine
。GetEngine1
的区别在于,该方法支持在创建 IRtcEngine
实例时指定访问区域。IRtcEngine
实例。engineConfig | IRtcEngine 实例的配置,详见 RtcEngineConfig。 |
IRtcEngine
对象。
|
static |
|
static |
销毁 IRtcEngine 实例。
该方法释放 Agora SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作, 该方法适用于此类情况。调用 Destroy
方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能, 你必须重新调用 GetEngine 创建一个新的 IRtcEngine
对象。
IRtcEngine
对象,需要等待 Destroy
方法执行结束后再创建实例。