agora::base::IAgoraService类 参考
IAgoraService
类。作为 SDK 的入口类,你可以通过 IAgoraService
类创建媒体轨道和连接。
调用 createAgoraService 创建 IAgoraService
对象。
使用 AgoraServiceConfiguration 配置 IAgoraService
对象。
构造及析构函数说明
~IAgoraService()
|
成员函数说明
createCustomAudioTrack() [1/2]
|
创建本地音频轨道对象,包含一个发送编码音频数据的音频源。
该轨道对象可用于发送已编码的音频数据,例如 Opus 格式的编码数据。
参数
参数名 | 描述 |
---|---|
audioSource | 发送编码音频数据的音频源: IAudioEncoderFrameSender 。 |
mixMode | 已编码的音频在频道中的混音模式: TMixMode 。 |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- ILocalAudioTrack 对象的指针:方法调用成功。
- 空指针:方法调用失败。
createCustomAudioTrack() [2/2]
|
创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。
该轨道对象可用于发送来 PCM 格式的音频数据。
参数
参数名 | 描述 |
---|---|
audioSource | PCM 格式的音频数据源: IAudioPcmDataSender 。 |
返回值
- ILocalAudioTrack 对象的指针:方法调用成功。
- 空指针:方法调用失败。
createCustomVideoTrack() [1/2]
|
创建本地视频轨道对象,包含一个发送编码视频数据的视频源。
该轨道对象可用于发送已编码的视频数据,例如 H.264 或 VP8 格式的编码数据。
参数
参数名 | 描述 |
---|---|
videoSource | 发送编码视频数据的视频源。详见 IVideoEncodedImageSender。 |
options | 视频轨道设置。 |
id | 视频轨道的频道 ID。 |
返回值
- ILocalVideoTrack 对象的指针: 方法调用成功。
- 空指针: 方法调用失败。
createCustomVideoTrack() [2/2]
|
创建本地视频轨道对象,包含一个发送 YUV 格式视频数据的视频源。
该轨道对象可用于发送 YUV 格式视频数据。
参数
参数名 | 描述 |
---|---|
videoSource | YUV 格式视频源对象 IVideoFrameSender。 |
id | 视频轨道的频道 ID。 |
返回值
- ILocalVideoTrack 对象的指针: 方法调用成功。
- 空指针: 方法调用失败。
createDirectCustomAudioTrack()
|
创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。
该轨道对象可用于发送来 PCM 格式的音频数据。音频数据不参与混音。
参数
参数名 | 描述 |
---|---|
audioSource | PCM 格式的音频数据源: IAudioPcmDataSender 。 |
返回值
- ILocalAudioTrack 对象的指针:方法调用成功。
- 空指针:方法调用失败。
createLocalAudioTrack()
|
创建本地音频轨道对象。
SDK 默认通过用户选中的音频输入设备创建本地音频轨道,例如手机的麦克风。
返回值
- ILocalAudioTrack 对象的指针:方法调用成功。
- 空指针:方法调用失败。
createMediaNodeFactory()
|
创建一个媒体节点工厂对象。
返回值
- IMediaNodeFactory 的指针: 方法调用成功。
- 空指针: 方法调用失败。
createMixedVideoTrack()
|
创建本地视频轨道对象,包含一个合图器。
创建之后,你可以将该轨道添加到合图器进行合图。
参数
参数名 | 描述 |
---|---|
videoSource | 合图器。 |
id | 流 ID。 |
返回值
- ILocalVideoTrack 对象的指针: 方法调用成功。
- 空指针: 方法调用失败。
createRtcConnection()
|
创建一个 RtcConnection 对象。
参数
参数名 | 描述 |
---|---|
cfg | RTC 连接配置: RtcConnectionConfiguration 。 |
返回值
- IRtcConnection 对象的指针: 方法调用成功。
- 空指针:方法调用失败。
createRtmpConnection()
|
创建一个 IRtmpConnection 对象。
参数
参数名 | 描述 |
---|---|
cfg | CDN 连接配置: RtmpConnectionConfiguration 。 |
返回值
- IRtmpConnection 对象的指针: 方法调用成功。
- 空指针:方法调用失败。
getAgoraParameter()
|
获取 SDK 全局的 IAgoraParameter 对象。
通过该方法获取的 IAgoraParameter
对象,设置对 SDK 全局有效。如果仅需对某个 Connection 进行设置,改用 IRtcConnection::getAgoraParameter 方法。
返回值
IAgoraParameter
对象:方法调用成功。- 空指针:方法调用失败。
initialize()
|
初始化 IAgoraService 对象。
参数
参数名 | 描述 |
---|---|
config | 初始化配置。 详见 AgoraServiceConfiguration。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
release()
|
释放 IAgoraService 对象。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
setAudioSessionPreset()
|
设置预设音效。
参数
参数名 | 描述 |
---|---|
scenario | 预设音效场景: AUDIO_SCENARIO_TYPE 。 |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
setLogFile()
|
设置 SDK 日志文件的路径和大小。
默认情况下,SDK 会生成 5 个 SDK 日志文件和 5 个 API 调用日志文件,规则如下:
- SDK 日志文件的名称分别为:
agorasdk.log
、agorasdk.1.log
、agorasdk.2.log
、agorasdk.3.log
、agorasdk.4.log
。 - API 调用日志文件的名称分别为:
agoraapi.log
、agoraapi.1.log
、agoraapi.2.log
、agoraapi.3.log
、agoraapi.4.log
。 - 每个 SDK 日志文件的默认大小为 1,024 KB;API 调用日志文件的默认大小为 2,048 KB。日志文件均为 UTF-8 编码。
- 最新的日志永远写在
agorasdk.log
和agoraapi.log
中。 当agorasdk.log
写满后,SDK 会按照以下顺序对日志文件进行操作: - 删除
agorasdk.4.log
文件(如有)。 - 将
agorasdk.3.log
重命名为agorasdk.4.log
。 - 将
agorasdk.2.log
重命名为agorasdk.3.log
。 - 将
agorasdk.1.log
重命名为agorasdk.2.log
。 - 新建
agorasdk.log
文件。agoraapi.log
文件的覆盖规则与agorasdk.log
相同。
参数
参数名 | 描述 |
---|---|
filePath | 日志文件的完整路径。该日志文件为 UTF-8 编码。 |
fileSize | 单个 agorasdk.log 日志文件的大小,单位为 KB,取值范围为 [128,20480],默认值为 1,024 KB。 如果你将 fileSize 设为小于 128 KB,SDK 会自动调整到 128 KB;如果你将 fileSize 设为大于 20,480 KB,SDK 会自动调整到 20,480 KB。 |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
setLogFilter()
|
设置日志输出等级。
该方法设置 SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。 选择一个级别,你就可以看到在该级别之前所有级别的日志信息。
例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。
参数
参数名 | 描述 |
---|---|
filters | 日志过滤等级。详见 LOG_FILTER_TYPE 。 |
ares | 用于 SDK 的生命周期保护,填写默认值即可。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。