IRtkService

最近更新时间:2023-02-21 10:39:53

Public 成员函数
virtual intinitialize (const char *appId, IRtkServiceEventHandler *eventHandler)=0
virtual voidrelease (bool sync=false)=0
virtual intlogin (const char *token, const char *userId)=0
virtual intlogout ()=0
virtual intrenewToken (const char *token)=0
virtual intsetAudioEncodeParameter (AUDIO_CODEC_TYPE nCodecId, AUDIO_SAMPLE_RATE_TYPE sampleRate, int nChannels)=0
virtual intsetDefaultPushAudioQuality (int nQuality)=0
virtual intsetDefaultPullAudioQuality (int nQuality)=0
virtual intenableAudioCapture (bool bEnable)=0
virtual intenableLocalAudioRecord (bool bEnable, const char*strFilePath)=0
virtual intenableLocalMicDataCallback (bool bEnable)=0
virtual intenableLocalSpeakerDataCallback (bool bEnable, const char*strChanId)=0
virtual intenableAiDenoise (bool bEnable)=0
virtual intenableAudio3A (bool bEnable)=0
virtual intsetParameters (const char *parameters)=0
virtual IChannel *createChannel (const char *channelId,IChannelEventHandler *eventHandler )=0
virtual intsetPushAudioVolume (int nVolume)=0
virtual intsetPlayAudioVolume (int nVolume)=0
virtual intsetExternalAudioSource (bool enabled, int sampleRate, int channels)=0
virtual intsetExternalAudioSink (bool enabled, int sampleRate, int channels)=0
virtual intpushAudioFrame ([ARK::IAudioFrameObserver::AudioFrame](win_iaudioframeobserver_class* frame)=0
virtual intpullAudioFrame (ARK::IAudioFrameObserver::AudioFrame* frame)=0
virtual intsetLogFile (const char *logfile)=0
virtual intsetLogFilter (LOG_FILTER_TYPE filter)=0
virtual intsetLogFileSize (int fileSizeInKBytes)=0
Protected 成员函数
virtual~IRtkService ()

构造及析构函数说明

~IRtkService

virtual ~IRtkService()

成员函数说明

createChannel

virtual IChannel * createChannel(const char *channelId, IChannelEventHandler *eventHandler)

创建一个 anyRTC RTK 频道

参数

参数说明
channelIdanyRTC RTK 频道名称。该字符串不可超过 64 字节。不可设为空、null 或 "null"。以下为支持的字符集范围:
  • 26 个小写英文字母 a-z
  • 26 个大写英文字母 A-Z
  • 10 个数字 0-9
  • 空格
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "~", ",","¦"
  • eventHandler详见 IChannelEventHandler

    返回

    • 一个 IChannel 对象: 方法调用成功。
    • null: 方法调用失败。channelId 可能无效,或者已经存在具有相同 channelId 的频道。

    注意事项:

    • 一个 IRtkService 实例中可以创建多个频道。但是同一个用户只能同时加入最多 20 个频道。请在不使用某个频道时,调用 release 方法销毁频道实例。

    initialize

    virtual int initialize(const char *appId, IRtkServiceEventHandler *eventHandler)

    初始化一个 IRtkService 实例

    IRtkService 类中的所有方法都是异步执行的。

    参数

    参数说明
    appIdanyRTC 发给你的 App ID。 如果 SDK 中缺少 App ID,请从 anyRTC 申请新的 App ID。
    eventHandler一个 IRtkServiceEventHandler 对象,用于上传 anyRTC RTK SDK 运行事件给应用程序。

    返回

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

    login

    virtual int login(const char *token, const char *userId)

    登录 anyRTC RTK 系统

    • 方法调用成功:本地用户收到回调 onLoginSuccess。
    • 方法调用失败:本地用户收到回调 onLoginFailure。错误码详见 LOGIN_ERR_CODE

    参数

    参数说明
    token用于登录 anyRTC RTK 系统的动态密钥。开启动态鉴权后可用。集成及测试阶段请将 token 设置为 null。
    userId登录 anyRTC RTK 系统的用户 ID。该字符串不可超过 64 字节。不可设为空、null 或 "null"。以下为支持的字符集范围:
  • 26 个小写英文字母 a-z
  • 26 个大写英文字母 A-Z
  • 10 个数字 0-9
  • 空格
  • "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "~", ",","¦"
  • 返回

    • 0: 方法调用成功。
    • ≠0: 方法调用失败。错误码详见 LOGIN_ERR_CODE

    注意事项:

    • 异地登录后之前的状态(目前主要是加入的频道)不会保留。
    • 如果你在不同实例中以相同用户 ID 登录,之前的登录将会失效,你会被踢出之前加入的频道。
    • 只有在调用本方法成功加入频道后(即:当收到 onLoginSuccess 回调时)才可以调用 RTK 的核心业务逻辑。

    logout

    virtual int logout()

    登出 anyRTC RTK 系统

    本地用户收到回调 onLogout。 状态信息详见 LOGIN_ERR_CODE

    返回

    • 0: 方法调用成功。
    • ≠0: 方法调用失败。错误码详见 LOGIN_ERR_CODE

    release

    virtual void release(bool sync = false)

    释放当前 IRtkService 实例使用的所有资源。

    renewToken

    virtual int renewToken(const char* token)

    更新当前的 RTK Token

    在收到 onTokenWillExpired 回调时你需要调用此方法更新 Token。 onRenewTokenResult 回调会返回 Token 更新的结果。该方法的调用频率为 2 次每秒。

    参数

    参数说明
    token新的 RTK Token

    返回

    setAudioEncodeParameter

    virtual int setAudioEncodeParameter(AUDIO_CODEC_TYPE nCodecId, AUDIO_SAMPLE_RATE_TYPE sampleRate, int nChannels)

    设置音频编码属性

    参数

    参数说明
    nCodecId音频编码类型,详见 AUDIO_CODEC_TYPE
    sampleRate音频采样率,详见 AUDIO_SAMPLE_RATE_TYPE
    nChannels声道

    返回

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

    setDefaultPushAudioQuality

    virtual int setDefaultPushAudioQuality(int nQuality)

    设置默认推流音频质量

    参数

    参数说明
    nQuality音频质量等级,默认中(1-5 低,中,高,超高,HD)

    返回

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

    setDefaultPullAudioQuality

    virtual int setDefaultPullAudioQuality(int nQuality)

    设置默认拉流音频质量

    参数

    参数说明
    nQuality音频质量等级,默认中(1-5 低,中,高,超高,HD)

    返回

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

    enableAudioCapture

    virtual int enableAudioCapture(bool bEnable)

    开关音频采集模块

    参数

    参数说明
    bEnable设置true:打开音频采集模块,设置false,关闭音频采集模块

    返回

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

    注意事项:

    上麦前必须先打开音频采集模块,才能上麦成功

    enableLocalAudioRecord

    virtual int enableLocalAudioRecord(bool bEnable, const char*strFilePath)

    开关音频录制模块

    参数

    参数说明
    bEnable设置true:打开音频录音模块,设置false,关闭音频录音模块
    strFilePath录音路径

    返回

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

    注意事项:

    打开录制前必须先打开音频采集并申请上麦,才会有录音文件。 下麦、断网、被打断,如果之前设置了录制,会自动结束本地录制。

    enableLocalMicDataCallback

    virtual int enableLocalMicDataCallback(bool bEnable)

    开关本地录音音频数据回调

    根据回调的本地录音的音频数据,可以进行语音转文字,对声音进行分析等。

    参数

    参数说明
    bEnable设置true:打开本地录音音频数据回调,设置false,关闭本地录音音频数据回调

    返回

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

    enableLocalSpeakerDataCallback

    virtual int enableLocalSpeakerDataCallback(bool bEnable,const char*strChanId)

    开关远程音频数据回调

    根据回调的其他人的音频数据,可以进行语音转文字,对声音进行分析等。

    参数

    参数说明
    bEnable设置true:打开其他人上麦音频数据回调,设置false,关闭其他人上麦音频数据回调
    strChanId频道号

    返回

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

    enableAiDenoise

    virtual int enableAiDenoise(bool bEnable)

    开关 AI 降噪

    RTK SDK 默认关闭了AI降噪,根据自身场景可动态开关 AI 降噪

    参数

    参数说明
    bEnable设置true:打开 AI 降噪,设置false,关闭 AI 降噪

    返回

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

    enableAudio3A

    virtual int enableAudio3A(bool bEnable)

    开关音频 3A 功能

    RTK SDK 默认关闭了音频 3A 功能,根据自身场景可动态开关音频3A功能

    参数

    参数说明
    bEnable设置true:打开音频3A,设置false,关闭音频3A

    返回

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

    注意事项:

    对讲建议不使用 3A 功能,对音质会有影响。 当在使用enableAudioStream 的时候,必须打开 3A 功能,否则会有回声。

    createChannel

    virtual IChannel * createChannel(const char *channelId, IChannelEventHandler *eventHandler)

    创建频道

    参数

    参数说明
    channelId频道ID
    eventHandler一个 IChannelEventHandler 对象

    返回

    • IChannel: 方法调用成功。
    • null: 方法调用失败。

    setPushAudioVolume

    virtual int setPushAudioVolume(int nVolume)

    设置录音音量

    参数

    参数说明
    nVolume音量值设为 [0,100],默认100

    返回

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

    setPlayAudioVolume

    virtual int setPlayAudioVolume(int nVolume)

    设置播放音量

    参数

    参数说明
    nVolume音量值设为 [0,100],默认100

    返回

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

    setExternalAudioSource

    virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels)

    配置外部音频源

    参数

    参数说明
    enabled是否启用,true:启用;false:关闭
    sampleRate采样率
    channels声道

    返回

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

    注意事项:

    调用该方法后,在调用pushAudioFrame方法向 SDK 塞自采集音频流

    setExternalAudioSink

    virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)

    配置自定义音频渲染

    参数

    参数说明
    enabled是否启用,true:启用;false:关闭
    sampleRate采样率
    channels声道

    返回

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

    注意事项:

    调用该方法后,在调用pullAudioFrame方法获取需要播放的音频流

    pushAudioFrame

    virtual int pushAudioFrame(ARK::IAudioFrameObserver::AudioFrame* frame)

    推送外部音频帧

    参数

    参数说明
    frame音频帧数据,详见ARK::IAudioFrameObserver::AudioFrame

    返回

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

    注意事项:

    调用该方法前,需先调用setExternalAudioSource方法配置外部音频源

    pullAudioFrame

    virtual int pullAudioFrame(ARK::IAudioFrameObserver::AudioFrame* frame)

    获取音频帧数据

    参数

    参数说明
    frame音频帧数据,详见ARK::IAudioFrameObserver::AudioFrame

    返回

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

    注意事项:

    调用该方法前,需先调用setExternalAudioSink方法配置自定义音频渲染

    setLogFile

    virtual int setLogFile(const char* logfile)

    设定日志文件的默认地址

    参数

    参数说明
    logfile日志文件的绝对路径。logfile 的编码格式为 UTF-8。

    返回

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

    注意事项:

    • 请确保指定的路径可写。
    • 如需调用本方法,请在调用 initialize 方法初始化 IRtkService 实例后立即调用,否则会造成输出日志不完整。
    • Linux C++ 平台下,ar_rtk_sdk.log 默认位于当前工作路径下。

    setLogFileSize

    virtual int setLogFile(const char* logfile)

    设置日志文件大小

    设置 SDK 输出日志文件的大小,单位为 KB。 SDK 设有 2 个日志文件,每个文件大小为 512 KB。如果你将 fileSizeInKByte 设置为 1024 KB, SDK 会最多输出 2 MB 的日志文件。

    参数

    参数说明
    fileSizeInKBytes指定 SDK 输出日志文件的大小,单位为 KB。

    返回

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

    注意事项:

    • 低于 512 KB 或者高于 10 MB 的日志大小设置不会生效。

    setLogFilter

    virtual int setLogFilter(LOG_FILTER_TYPE filter)

    设置日志输出等级

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

    参数

    参数说明
    filter日志输出等级。详见 LOG_FILTER_TYPE

    返回

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

    setParameters

    virtual int setParameters(const char* parameters)

    通过 JSON 配置 SDK 提供技术预览或特别定制功能

    参数

    参数说明
    parametersJSON 格式的 SDK 选项。

    返回

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

    注意事项:

    • JSON 选项默认不公开。anyRTC工程师正在努力寻求以标准化方式公开 JSON 选项。详情请联系 sales@dync.cc