agora::base::IAgoraService类 参考

  • C++

更新时间不可用

详细描述

IAgoraService 类。作为 SDK 的入口类,你可以通过 IAgoraService 类创建媒体轨道和连接。

调用 createAgoraService 创建 IAgoraService 对象。

使用 AgoraServiceConfiguration 配置 IAgoraService 对象。

构造及析构函数说明

~IAgoraService()

inlineprotectedvirtual
virtual agora::base::IAgoraService::~IAgoraService()

成员函数说明

initialize()

purevirtual
virtual int agora::base::IAgoraService::initialize(const AgoraServiceConfiguration & config)

初始化 IAgoraService 对象。

参数
参数名描述
config

初始化配置。 详见 AgoraServiceConfiguration。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

release()

purevirtual
virtual int agora::base::IAgoraService::release()

释放 IAgoraService 对象。

注解

该方法需要在非回调内的子线程调用,避免在回调中执行。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setAudioSessionPreset()

purevirtual
virtual int agora::base::IAgoraService::setAudioSessionPreset(agora::rtc::AUDIO_SCENARIO_TYPE scenario, aosl_ref_t ares = AOSL_REF_INVALID)

设置预设音效。

参数
参数名描述
scenario

预设音效场景: AUDIO_SCENARIO_TYPE。

ares

用于 SDK 的生命周期保护,填写默认值即可。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

setLogFile()

purevirtual
virtual int agora::base::IAgoraService::setLogFile(const char * filePath, unsigned int fileSize, aosl_ref_t ares = AOSL_REF_INVALID)

设置 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()

purevirtual
virtual int agora::base::IAgoraService::setLogFilter(unsigned int filters, aosl_ref_t ares = AOSL_REF_INVALID)

设置日志输出等级。

该方法设置 SDK 的输出日志输出等级。不同的输出等级可以单独或组合使用。日志级别顺序依次为 OFF、CRITICAL、ERROR、WARNING、INFO 和 DEBUG。 选择一个级别,你就可以看到在该级别之前所有级别的日志信息。

例如,你选择 WARNING 级别,就可以看到在 CRITICAL、ERROR 和 WARNING 级别上的所有日志信息。

参数
参数名描述
filters

日志过滤等级。详见 LOG_FILTER_TYPE。

ares

用于 SDK 的生命周期保护,填写默认值即可。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。

createRtcConnection()

purevirtual
virtual agora_refptr<rtc::IRtcConnection> agora::base::IAgoraService::createRtcConnection(const rtc::RtcConnectionConfiguration & cfg)

创建一个 RtcConnection 对象。

参数
参数名描述
cfg

RTC 连接配置: RtcConnectionConfiguration 。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • IRtcConnection 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createRtmpConnection()

purevirtual
virtual agora_refptr<rtc::IRtmpConnection> agora::base::IAgoraService::createRtmpConnection(const rtc::RtmpConnectionConfiguration & cfg)

创建一个 IRtmpConnection 对象。

参数
参数名描述
cfg

CDN 连接配置: RtmpConnectionConfiguration。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • IRtmpConnection 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createLocalAudioTrack()

purevirtual
virtual agora_refptr<rtc::ILocalAudioTrack> agora::base::IAgoraService::createLocalAudioTrack()

创建本地音频轨道对象。

SDK 默认通过用户选中的音频输入设备创建本地音频轨道,例如手机的麦克风。

返回值

  • ILocalAudioTrack 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createCustomAudioTrack() [1/2]

purevirtual
virtual agora_refptr<rtc::ILocalAudioTrack> agora::base::IAgoraService::createCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)

创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。

该轨道对象可用于发送来 PCM 格式的音频数据。

参数
参数名描述
audioSource

PCM 格式的音频数据源: IAudioPcmDataSender。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalAudioTrack 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createDirectCustomAudioTrack()

purevirtual
virtual agora_refptr<rtc::ILocalAudioTrack> agora::base::IAgoraService::createDirectCustomAudioTrack(agora_refptr< rtc::IAudioPcmDataSender > audioSource)

创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。

该轨道对象可用于发送来 PCM 格式的音频数据。音频数据不参与混音。

参数
参数名描述
audioSource

PCM 格式的音频数据源: IAudioPcmDataSender。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalAudioTrack 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createCustomAudioTrack() [2/2]

purevirtual
virtual agora_refptr<rtc::ILocalAudioTrack> agora::base::IAgoraService::createCustomAudioTrack(agora_refptr< rtc::IAudioEncodedFrameSender > audioSource, TMixMode mixMode, aosl_ref_t ares = AOSL_REF_INVALID)

创建本地音频轨道对象,包含一个发送编码音频数据的音频源。

该轨道对象可用于发送已编码的音频数据,例如 Opus 格式的编码数据。

参数
参数名描述
audioSource

发送编码音频数据的音频源: IAudioEncoderFrameSender。

mixMode

已编码的音频在频道中的混音模式: TMixMode 。

ares

用于 SDK 的生命周期保护,填写默认值即可。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalAudioTrack 对象的指针:方法调用成功。
  • 空指针:方法调用失败。

createMediaNodeFactory()

purevirtual
virtual agora_refptr<rtc::IMediaNodeFactory> agora::base::IAgoraService::createMediaNodeFactory()

创建一个媒体节点工厂对象。

返回值

  • IMediaNodeFactory 的指针: 方法调用成功。
  • 空指针: 方法调用失败。

createMixedVideoTrack()

purevirtual
virtual agora_refptr<rtc::ILocalVideoTrack> agora::base::IAgoraService::createMixedVideoTrack(agora_refptr< rtc::IVideoMixerSource > videoSource, const char * id = OPTIONAL_NULLPTR)

创建本地视频轨道对象,包含一个合图器。

创建之后,你可以将该轨道添加到合图器进行合图。

参数
参数名描述
videoSource

合图器: IVideoMixerSource。

id

流 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalVideoTrack 对象的指针: 方法调用成功。
  • 空指针: 方法调用失败。

createCustomVideoTrack() [1/2]

purevirtual
virtual agora_refptr<rtc::ILocalVideoTrack> agora::base::IAgoraService::createCustomVideoTrack(agora_refptr< rtc::IVideoFrameSender > videoSource, const char * id = OPTIONAL_NULLPTR)

创建本地视频轨道对象,包含一个发送 YUV 格式视频数据的视频源。

该轨道对象可用于发送 YUV 格式视频数据。

参数
参数名描述
videoSource

YUV 格式视频源对象 IVideoFrameSender。

id

视频轨道的频道 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalVideoTrack 对象的指针: 方法调用成功。
  • 空指针: 方法调用失败。

createCustomVideoTrack() [2/2]

purevirtual
virtual agora_refptr<rtc::ILocalVideoTrack> agora::base::IAgoraService::createCustomVideoTrack(agora_refptr< rtc::IVideoEncodedImageSender > videoSource, const rtc::SenderOptions & options, const char * id = OPTIONAL_NULLPTR)

创建本地视频轨道对象,包含一个发送编码视频数据的视频源。

该轨道对象可用于发送已编码的视频数据,例如 H.264 或 VP8 格式的编码数据。

参数
参数名描述
videoSource

发送编码视频数据的视频源。详见 IVideoEncodedImageSender。

options

视频轨道设置。

id

视频轨道的频道 ID。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • ILocalVideoTrack 对象的指针: 方法调用成功。
  • 空指针: 方法调用失败。

getAgoraParameter()

purevirtual
virtual agora_refptr<base::IAgoraParameter> agora::base::IAgoraService::getAgoraParameter()

获取 SDK 全局的 IAgoraParameter 对象。

自从

4.4.30

通过该方法获取的 IAgoraParameter 对象,设置对 SDK 全局有效。如果仅需对某个 Connection 进行设置,改用 IRtcConnection::getAgoraParameter 方法。

返回值

  • IAgoraParameter 对象:方法调用成功。
  • 空指针:方法调用失败。