DingRtcEngine

通过阅读本文,您可以了解到Windows SDK的DingRtcEngine接口详情。

接口说明

目录

基础接口

API

描述

支持的最低版本

Create

创建一个RtcEngine实例。

3.0

Destroy

销毁RtcEngine实例。

3.0

SetLogDirPath

设置SDK日志文件保存路径。

3.0

SetEngineEventListener

设置相关监听事件回调。

3.0

频道相关接口

API

描述

支持的最低版本

JoinChannel

该方法让用户加入频道,一个频道内可以加入多个用户进行互相通话。

3.0

LeaveChannel

离开频道,即挂断或者停止通话。

3.0

IsInCall

获取状态:当前是否在频道中。

3.0

发布相关接口

API

描述

支持的最低版本

PublishLocalVideoStream

是否推送本地视频(摄像头)流。

3.0

PublishLocalAudioStream

是否推送本地音频流。

3.0

IsLocalVideoStreamPublished

查询是否推送视频流。

3.0

IsLocalAudioStreamPublished

是否推送音频流。

3.0

订阅相关接口

API

描述

支持的最低版本

SubscribeAllRemoteAudioStreams

停止/恢复订阅所有远端音频流,包含后入会成员的订阅。从3.4开始,“所有人”是指大厅中所有人,解释见note。

3.0

SubscribeAllRemoteVideoStreams

停止/恢复订阅所有远端视频流,包含后入会成员的订阅。

3.0

SubscribeRemoteVideoStream

停止/恢复订阅远端用户的视频流。

3.0

SetRemoteVideoStreamType

设置订阅视频流分辨率规格。

3.0

SetRemoteDefaultVideoStreamType

设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。

3.0

视频相关接口

API

描述

支持的最低版本

GetVideoDeviceManager

获取视频设备管理类接口。

3.0

MuteLocalVideo

暂停/恢复本地视频流的发送。

3.0

EnableLocalVideo

禁用或启用本地视频采集。

3.0

SetVideoEncoderConfiguration

设置相机流视频编码属性。

3.0

SetLocalViewConfig

设置本地预览显示视图。

3.0

SetRemoteViewConfig

设置远端视频显示视图。

3.0

UpdateViewConfig

更新渲染配置。

3.0

RegisterVideoFrameObserver

注册视频帧观察类对象。

3.0

EnableVideoFrameObserver

设置视频帧数据观察开关。

3.1

SetExternalVideoSource

设置外部视频输入源。

3.0

PushExternalVideoFrame

推送外部视频帧。

3.0

StartRecord

开始录制。

3.0

UpdateRecordLayout

更新录制内容信息。

3.0

PauseRecord

暂停录制。

3.0

ResumeRecord

重新开始录制。

3.0

StopRecord

停止录制。

3.0

SnapshotVideo

对指定用户的视频进行截图,生成一张JPG格式的图片,并保存至指定的路径。

共享视频相关接口

API

描述

支持的最低版本

IsScreenSharePublished

是否推送屏幕分享。

3.0

StartScreenShareByDesktopId

根据桌面ID进行屏幕分享。

3.0

StartScreenShareByWindowId

根据窗口ID进行屏幕分享。

3.0

UpdateScreenShareConfig

更新当前正在进行中的屏幕分享的配置。

3.4.0

StopScreenShare

停止屏幕分享。

3.0

GetScreenShareSourceInfo

获取屏幕分享源信息。

3.0

GetCurrentScreenShareSourceId

获取当前屏幕共享源Id。

3.0

SetScreenShareEncoderConfiguration

设置屏幕流视频编码属性。

3.0

音频相关接口

API

描述

支持的最低版本

GetAudioMixingManager

获取伴奏混音管理类接口。

3.4

GetAudioDeviceManager

获取音频设备管理类接口。

3.0

MuteLocalAudio

静音/取消静音本地音频数据。

3.0

SetAudioProfile

设置音频profile。

3.0

EnableAudioVolumeIndication

设置音量回调频率和平滑系数。

3.0

RegisterAudioFrameObserver

注册音频观察类对象。

3.0

SetExternalAudioSource

设置外部音频源参数。

3.0

PushExternalAudioFrame

推送外部音频采集源。

3.0

SetExternalAudioRender

设置是否启用外部输入音频播放。

3.1

PushExternalAudioRenderFrame

推送外部音频到扬声器。

3.1

EnableCustomAudioCapture

开启自定义音频采集,开始后,SDK内部不再操作音频采集设备。

3.2

SendCustomAudioCaptureFrame

向SDK投送自己采集的音频数据。

3.2

EnableCustomAudioRender

开启自定义音频播放,开始后,SDK内部不再操作音频播放设备。

3.2

GetCustomAudioRenderFrame

获取可播放的音频数据。

3.2

GetPlayoutSignalVolume

获取音频播放音量。

3.1

SetRecordingSignalVolume

设置音频采集音量,音量范围[0,100]。

3.5

GetRecordingSignalVolume

获取音频采集音量。

3.5

JoinGroup

加入音频分组。如果分组当前不存在,则自动创建一个。

3.4

LeaveGroup

离开音频分组。

3.4

DismissGroup

解散音频分组,所有成员被迫离开该音频分组。

3.4

MixAudioToGroup

本地音频合并进分组音频或者大厅音频中。

3.4

SwitchSubscriptionToGroup

切换订阅的音频流到指定的分组或者大厅音频。

3.4

GetCurrentSubscribedAudio

查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。

3.4

媒体引擎相关接口

API

描述

支持的最低版本

EnableBeautyFace

开启或关闭视频美颜。

EnableVirtualBackground

开启或关闭虚拟背景。

SetVideoEnhance

设置视频暗光增强功能。

SetVideoDenoise

设置视频去噪场景功能。

SetAudioDenoise

设置音频降噪功能。

3.4

SendMediaExtensionMsg

发送媒体扩展信息

预览相关接口

API

描述

支持的最低版本

StartPreview

开启本地视频预览。

3.0

StopPreview

关闭本地视频预览。

3.0

远端用户查询接口

API

描述

支持的最低版本

GetOnlineRemoteUsers

获取远端在线用户列表。

3.0

GetUserInfo

查询远端用户状态。

3.0

IsUserOnline

查询用户是否在线。

3.0

其他接口

API

描述

支持的最低版本

GetLogDirPath

获取当前SDK日志文件保存路径,包含SDK添加的子目录。

3.0

SetLogLevel

设置日志等级。

3.0

GetErrorDescription

根据错误码,获取错误码描述,也适用于获取Warning的描述。

3.0

GetCurrentConnectionStatus

获取当前网络链接状态。

3.0

SetParameters

设置算法或者其他私有参数。

3.4.2

接口详情

  • Create:创建一个RtcEngine实例。

    RtcEngine * Create (const char *extras)

    该方法为同步调用,支持多实例。

    参数说明

    参数

    类型

    描述

    extras

    const char *

    用于接收来自客户设置的参数,通过JSON配置SDK的特别功能,可以是空字符串。

  • Destroy:销毁RtcEngine实例。

    void Destroy (RtcEngine *instance)

    调用该方法将会释放所有内部使用的资源,当完成音视频通信之后都建议调用该方法释放实例.调用该方法后,你将不能再使用RtcEngine的其他方法和任何回调,如需要再次使用需要重新调用Create方法创建一个新的实例。

    重要

    为避免死锁,不建议在任何SDK的回调中调用本方法。

  • SetLogDirPath:设置SDK日志文件保存路径。

    int SetLogDirPath (const char *logDirPath)

    参数说明

    参数

    类型

    描述

    logDirPath

    const char *

    日志文件保存目录的绝对路径,该参数是一个目录路径,而不是文件的路径。

    返回说明

    0,成功非0,失败。其中有两种错误码,释义如下:RtcEngineErrorLogRootPathError:路径已存在或因权限问题不可访问。

    重要

    调用此接口,请在调用其他所有SDK接口前调用本接口,避免日志出现丢失。同时,App必须保证指定的目录已存在并且可以写入。如果,目标路径不可写入或创建日志文件失败,则会使用默认日志路径。本次设置将无效。默认路径:windows平台,在用户目录下dingding/log。

  • SetEngineEventListener:设置相关监听事件回调。

    int SetEngineEventListener (RtcEngineEventListener *listener)=0

    RtcEngineEventListener类是SDK向应用发送自身回调事件的通知,应用开发者需要实现该接口类的方法来获取相关事件通知。默认所有接口都有空实现,开发者不需要实现所有方法,可根据自身业务来实现对应的事件方法。

    参数说明

    参数

    类型

    描述

    listener

    RtcEngineEventListener *

    用于接收来自engine的消息。

    重要

    不建议在回调方法中做耗时操作,如调用RtcEngine本身的Destroy方法,这将有可能引起不必要的阻塞从而影响SDK的运行。

  • JoinChannel:该方法让用户加入频道,一个频道内可以加入多个用户进行互相通话。

    int JoinChannel (const RtcEngineAuthInfo &authInfo, const char *userNameUtf8)=0

    参数说明

    参数

    类型

    描述

    authInfo

    RtcEngineAuthInfo &

    认证信息,从AppServer获取。

    userNameUtf8

    const char *

    任意用于显示的用户名称。不是UserID。支持emoji。要求utf8编码。如何转换为utf8字符串,参考

    返回说明

    0:成功;<0:失败。

    重要

    异步接口。是否成功入会,通过OnJoinChannelResult判断。如果接口返回值为非0,则不会触发回调。正常情况一个Appid对应一个App,只有同一个AppId的应用可进行互相童话,不同AppId和channelID不同都不能互通。当入会成功后,会触发远端用户收到OnJoinChannelResult回调。如果已在会中想重新入会,需要先调用LeaveChannel离会,且确保OnLeaveChannelResult回调收到后,再次调用进行入会。userNameUtf8如果过长,超过64个字节,调用会失败。App业务系统应当避免过长的userNameUtf8传入进来。一般汉字占用3个字节,简单的emoji占用4~8个字节,一个复杂emoji占用34甚至更多字节。

  • LeaveChannel:离开频道,即挂断或者停止通话。

    int LeaveChannel ()=0

    如果当前不在频道内,LeaveChannel不会有任何影响。LeaveChannel会产生消息通知频道内其他用户。

  • IsInCall:获取状态:当前是否在频道中。

    bool IsInCall ()=0

    返回说明

    -true:表示当前已经加入了频道;false:表示当前不在频道中。

    重要

    该方法可在加入频道前或加入频道后调用。

  • PublishLocalVideoStream:是否推送本地视频(摄像头)流。

    int PublishLocalVideoStream (bool enable)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启/关闭本地视频流推送。

    true:开启视频流推送。

    false:关闭视频流推送。

    返回说明

    0:设置成功;<0:设置失败,返回错误码。

    重要

    SDK默认设置不推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。

  • PublishLocalAudioStream:是否推送本地音频流。

    int PublishLocalAudioStream (bool enable)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启/关闭本地音频流推送。

    true:开启音频流推送。

    false:关闭音频流推送。

    返回说明

    0:设置成功;<0:设置失败,返回错误码。

    重要

    SDK默认设置不推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效。

  • IsLocalVideoStreamPublished:查询是否推送视频流。

    bool IsLocalVideoStreamPublished ()=0

    返回说明

    true:会推送;false:不会推送。

  • IsLocalAudioStreamPublished:是否推送音频流。

    bool IsLocalAudioStreamPublished ()=0

    返回说明

    true:会推送;false:不会推送。

  • SubscribeAllRemoteAudioStreams:停止/恢复订阅所有远端音频流,包含后入会成员的订阅。从3.4开始,“所有人”是指大厅中所有人,解释见note。

    int SubscribeAllRemoteAudioStreams (bool sub)=0

    参数说明

    参数

    类型

    描述

    sub

    bool

    是否订阅所有远端音频流。

    true:订阅所有用户的音频流,后入会成员会自动订阅其音频。

    false:停止订阅所有用户的音频流,后入会成员也不会自动订阅其音频。

    返回说明

    0:设置成功;非0:设置失败。

    重要

    从3.4开始,引入音频分组,这个接口的操作是针对大厅的音频。所有人是指留在大厅中的所有人,不包括加入分组中的人。如果您的产品中未使用音频分组,那么行为兼容以前的定义不变。如果使用了分组,想要订阅某个分组的音频,请调用新接口SwitchSubscriptionToGroup如果localuser加入了某个分组,您坚持使用SubscribeAllRemoteAudioStreams接口来订阅音频,则会失败,原因是localuser不在大厅中,根据权限约束,不允许订阅大厅音频。取消订阅SubscribeAllRemoteAudioStreams(false)不受权限约束,总是可以退订任何在订阅的音频。您也可以使用SwitchSubscriptionToGroup(groupid="")来达到同样的结果。

  • SubscribeAllRemoteVideoStreams:停止/恢复订阅所有远端视频流,包含后入会成员的订阅。

    int SubscribeAllRemoteVideoStreams (bool sub)=0

    参数说明

    参数

    类型

    描述

    sub

    bool

    是否订阅所有远端视频流。

    true:订阅所有用户的视频流,后入会成员会自动订阅其视频。

    false:停止订阅所有用户的视频流,后入会成员也不会自动订阅其视频。

    返回说明

    0:设置成功;非0:设置失败。

    重要

    入会前入会后均可以调用。如果设置了SubscribeAllRemoteVideoStreams(false),会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过SubscribeRemoteVideoStream来主动订阅某个人的远端视频流。

  • SubscribeRemoteVideoStream:停止/恢复订阅远端用户的视频流。

    int SubscribeRemoteVideoStream (const char *uid, RtcEngineVideoTrack track, bool sub)=0

    参数说明

    参数

    类型

    描述

    uid

    const char *

    用户ID,从Appserver分配的唯一标示符。

    track

    RtcEngineVideoTrack

    视频流类型RtcEngineVideoTrack

    sub

    bool

    是否订阅远端用户的视频流。

    true:订阅指定用户的视频流。

    false:停止订阅指定用户的视频流。

    返回说明

    0:设置成功;非0:设置失败。

    重要

    如果设置了SubscribeAllRemoteVideoStreams(false),会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过SubscribeRemoteVideoStream来主动订阅某个人的远端视频流。

  • SetRemoteVideoStreamType:设置订阅视频流分辨率规格。

    int SetRemoteVideoStreamType (const char *uid, RtcEngineVideoStreamType streamType)=0

    参数说明

    参数

    类型

    描述

    uid

    const char *

    用户ID,从Appserver分配的唯一标示符。

    streamType

    RtcEngineVideoStreamType

    视频流的分辨率规格。

    返回说明

    0:成功;非0:失败。

  • SetRemoteDefaultVideoStreamType:设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。

    int SetRemoteDefaultVideoStreamType (RtcEngineVideoStreamType streamType)=0

    参数说明

    参数

    类型

    描述

    streamType

    RtcEngineVideoStreamType

    视频流的分辨率规格。

    返回说明

    0:成功;非0:失败。

  • GetVideoDeviceManager:获取视频设备管理类接口。

    RtcEngineVideoDeviceManager * GetVideoDeviceManager ()=0

    返回说明

    视频设备管理类接口。

  • MuteLocalVideo:暂停/恢复本地视频流的发送。

    int MuteLocalVideo (bool mute, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    mute

    bool

    true表示暂停视频流的发送。

    false表示恢复视频流的发送。

    track

    RtcEngineVideoTrack

    只支持和 RtcEngineVideoTrackScreen。

    返回说明

    0:成功;非0:失败。

    重要

    视频流暂停发送时,采集和编码模块仍然在工作。

  • EnableLocalVideo:禁用或启用本地视频采集。

    int EnableLocalVideo (bool enabled)=0

    参数说明

    参数

    类型

    描述

    enabled

    bool

    true:启用本地视频采集。

    false:禁用本地视频采集。

    返回说明

    0:成功;非0:失败。

    重要

    默认为开启状态。

  • SetVideoEncoderConfiguration:设置相机流视频编码属性。

    void SetVideoEncoderConfiguration (const RtcEngineVideoEncoderConfiguration &config)=0

    该方法用于设置相机流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。

    参数说明

    参数

    类型

    描述

    config

    RtcEngineVideoEncoderConfiguration &

    预定义的编码属性,详见RtcEngineVideoEncoderConfiguration

    重要

    该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用。

  • SetLocalViewConfig:设置本地预览显示视图。

    int SetLocalViewConfig (const RtcEngineVideoCanvas &renderConfig, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    renderConfig

    RtcEngineVideoCanvas &

    本地视频显示属性。

    track

    RtcEngineVideoTrack

    只支持RtcEngineVideoTrackCamera和RtcEngineVideoTrackScreen。

    返回说明

    0:成功;非0:失败。

    重要

    支持joinChannel之前和之后切换窗口。如果displayView为null,则停止显示。如果需要重新设置renderMode,请保持renderConfig中其他属性不变,仅修改renderMode。如果需要重新设置mirrorMode,请保持renderConfig中其他属性不变,仅修改mirrorMode。

  • SetRemoteViewConfig:设置远端视频显示视图。

    int SetRemoteViewConfig (const RtcEngineVideoCanvas &renderConfig, const char *uid, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    renderConfig

    RtcEngineVideoCanvas &

    远端视频显示属性。

    uid

    const char *

    userid。

    track

    RtcEngineVideoTrack

    只支持RtcEngineVideoTrackCamera和RtcEngineVideoTrackScreen。

    返回说明

    0:成功;非0:失败。

    重要

    如果displayView为null,则停止显示。如果需要重新设置renderMode,请保持renderConfig中其他属性不变,仅修改renderMode。如果需要重新设置mirrorMode,请保持renderConfig中其他属性不变,仅修改mirrorMode。

  • UpdateViewConfig:更新渲染配置。

    int UpdateViewConfig (const RtcEngineVideoCanvas &renderConfig, const char *uid, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    renderConfig

    RtcEngineVideoCanvas &

    config包含了窗口以及渲染方式。

    uid

    const char *

    userid,为""代表本地用户。

    track

    RtcEngineVideoTrack

    只支持RtcEngineVideoTrackCamera和RtcEngineVideoTrackScreen。

    返回说明

    0:成功;非0:失败。

  • RegisterVideoFrameObserver:注册视频帧观察类对象。

    int RegisterVideoFrameObserver (RtcEngineVideoFrameObserver *observer)=0

    参数说明

    参数

    类型

    描述

    observer

    RtcEngineVideoFrameObserver *

    视频观察类对象指针。

    返回说明

    0:成功;非0:失败。

  • EnableVideoFrameObserver:设置视频帧数据观察开关。

    int EnableVideoFrameObserver (bool enabled, unsigned int position)=0

    参数说明

    参数

    类型

    描述

    enabled

    bool

    是否允许数据回调。

    position

    unsigned int

    视频数据类型,详见RtcEngineVideoObservePosition。

    返回说明

    0:success。

  • SetExternalVideoSource:设置外部视频输入源。

    int SetExternalVideoSource (bool enable, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    true开启。

    false关闭。

    track

    RtcEngineVideoTrack

    视频流类型。

    返回说明

    0:成功;非0:失败。

  • PushExternalVideoFrame:推送外部视频帧。

    int PushExternalVideoFrame (RtcEngineVideoFrame *frame, RtcEngineVideoTrack track)=0

    参数说明

    参数

    类型

    描述

    frame

    RtcEngineVideoFrame *

    外部视频帧,详见RtcEngineVideoFrame

    track

    RtcEngineVideoTrack

    视频流类型RtcEngineVideoTrack

    返回说明

    0:成功;非0:失败。

  • StartRecord:开始录制。

    bool StartRecord (RtcEngineRecordOptions recordOption, const char *filePath, const char *name)=0

    SDK提供了屏录录制的功能,可以录制本地或远端的音频流、视频流、相机流。

    参数说明

    参数

    类型

    描述

    filePath

    文件路径。

    name

    文件名称。

    返回说明

    true:成功;false:失败。

  • UpdateRecordLayout:更新录制内容信息。

    bool UpdateRecordLayout (RtcEngineRecordVideoLayout &layout)=0

    SDK提供了更新录制内容信息的功能,用于实时更新录制模板内容设置。

    参数说明

    参数

    类型

    描述

    layout

    RtcEngineRecordVideoLayout &

    录制视频内容及布局,详细定义见AliEngineRecordVideoLayout。

    返回说明

    true:成功;false:失败。

    重要

    此接口应该在录制过程中调用。

  • PauseRecord:暂停录制。

    bool PauseRecord ()=0

    SDK提供了暂停录制的功能。

    返回说明

    true:成功;false:失败。

  • ResumeRecord:重新开始录制。

    bool ResumeRecord ()=0

    SDK提供了重新开始录制的功能。

    返回说明

    true:成功;false:失败。

  • StopRecord:停止录制。

    void StopRecord ()=0

    SDK提供了停止录制的功能。

  • SnapshotVideo:对指定用户的视频进行截图,生成一张JPG格式的图片,并保存至指定的路径。

    int SnapshotVideo (const char *userId, const RtcEngineVideoTrack &trackType, const char *filePath)=0

    参数说明

    参数

    类型

    描述

    userId

    const char *

    用户ID,为""代表本地用户。

    trackType

    const RtcEngineVideoTrack &

    视频流类型,只支持RtcEngineVideoTrackCameraRtcEngineVideoTrackScreen。

    filePath

    const char *

    截图的本地保存路径,需精确到文件名及格式,请确保目录存在且可写。如xx/yy/zz.jpg。

    返回说明

    0:仅代表调用该接口成功,是否获取到截图画面,详见OnSnapshotComplete<0:失败。

    重要

    视频截图功能为异步接口,通过监听OnSnapshotComplete回调获取当前截图画面。

  • IsScreenSharePublished:是否推送屏幕分享。

    bool IsScreenSharePublished ()=0

    返回说明

    true:会推送;false:不会推送。

    重要

    SDK默认设置不推送屏幕分享,如果需要推送屏幕共享,可以通过StartScreenShareByDesktopIdStartScreenShareByWindowId方法开启屏幕共享推送。

  • StartScreenShareByDesktopId:根据桌面ID进行屏幕分享。

    int StartScreenShareByDesktopId (const char *desktopId, const RtcEngineScreenShareConfig &config)=0

    参数说明

    参数

    类型

    描述

    desktopId

    const char *

    桌面ID(可通过GetScreenShareSourceInfo接口获取)。

    config

    RtcEngineScreenShareConfig &

    屏幕分享配置,可指定分享区域,详见RtcEngineScreenShareConfig

    返回说明

    0:成功;<0:失败。

  • StartScreenShareByWindowId:根据窗口ID进行屏幕分享。

    int StartScreenShareByWindowId (const char *windowId, const RtcEngineScreenShareConfig &config)=0

    参数说明

    参数

    类型

    描述

    windowId

    const char *

    窗口ID(可通过GetScreenShareSourceInfo接口获取)。

    config

    RtcEngineScreenShareConfig &

    屏幕分享配置(暂不支持指定区域分享)。

    返回说明

    0:成功;<0:失败。

    重要

    根据窗口ID进行屏幕分享暂不支持指定区域分享,既config无效果。

  • UpdateScreenShareConfig:更新当前正在进行中的屏幕分享的配置。

    int UpdateScreenShareConfig (const RtcEngineScreenShareConfig &config)=0

    参数说明

    参数

    类型

    描述

    config

    RtcEngineScreenShareConfig &

    屏幕分享配置,详见RtcEngineScreenShareConfig

    返回说明

    0:设置成功<0:失败。

    重要

    正在屏幕分享中才有效。桌面分享可进行更新,窗口分享暂不支持指定区域分享,也就不支持更新。

  • StopScreenShare:停止屏幕分享。

    int StopScreenShare ()=0

    返回说明

    0:成功;<0:失败。

  • GetScreenShareSourceInfo:获取屏幕分享源信息。

    RtcEngineDeviceInfoList * GetScreenShareSourceInfo (RtcEngineScreenShareType sourceType)=0

    参数说明

    参数

    类型

    描述

    sourceType

    RtcEngineScreenShareType

    屏幕分享类型。

    返回说明

    返回屏幕共享源列表,详见RtcEngineDeviceInfoList。

    重要

    请在遍历完屏幕共享源列表后调用其release成员方法,由SDK内部释放相关资源。

  • GetCurrentScreenShareSourceId:获取当前屏幕共享源Id。

    unsigned int GetCurrentScreenShareSourceId ()=0

    返回说明

    当前屏幕共享源Id。

  • SetScreenShareEncoderConfiguration:设置屏幕流视频编码属性。

    void SetScreenShareEncoderConfiguration (const RtcEngineScreenShareEncoderConfiguration &config)=0

    该方法用于设置屏幕流视频编码属性对应的视频参数,如分辨率、帧率、码率、视频方向等所有设置的参数都有相应的范围限制,如果设置的参数不在有效范围内,SDK会自动调节。

    参数说明

    参数

    类型

    描述

    config

    RtcEngineScreenShareEncoderConfiguration &

    预定义的屏幕共享编码属性,详见RtcEngineScreenShareEncoderConfiguration

    重要

    该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用。

  • GetAudioMixingManager:获取伴奏混音管理类接口。

    RtcEngineAudioMixingManager * GetAudioMixingManager ()=0

    返回说明

    音频伴奏混音管理类接口。

  • GetAudioDeviceManager:获取音频设备管理类接口。

    RtcEngineAudioDeviceManager * GetAudioDeviceManager ()=0

    返回说明

    音频设备管理类接口。

  • MuteLocalAudio:静音/取消静音本地音频数据。

    int MuteLocalAudio (bool mute)=0

    参数说明

    参数

    类型

    描述

    mute

    bool

    true表示静音本地音频,发送静音帧。

    false表示取消静音。

    返回说明

    0:成功;非0:失败。

    重要

    mute状态会保持,除非再次调用MuteLocalAudio更新,或者重新创建engineinstance。

  • SetAudioProfile:设置音频profile。

    int SetAudioProfile (int audioProfile, int audioScene)=0

    参数说明

    参数

    类型

    描述

    audioProfile

    int

    音频采集/编码模式参数,详见RtcEngineAudioProfile

    audioScene

    int

    音频场景模式参数,详见RtcEngineAudioScenario

    返回说明

    0:成功;其他:失败。

    重要

    缺省RtcEngineHighQualityMode模式。

  • EnableAudioVolumeIndication:设置音量回调频率和平滑系数。

    int EnableAudioVolumeIndication (int interval, int smooth, int reportVad)=0

    参数说明

    参数

    类型

    描述

    interval

    int

    时间间隔,单位毫秒,最小值不得小于100ms,建议设置300-500ms,<=0表示不启用音量提示和说话人提示功能。

    smooth

    int

    平滑系数,数值越大平滑程度越高,反之越低,实时性越好,建议设置3,范围[0,9]。

    reportVad

    int

    说话人检测开关。

    1:开启。

    0:关闭。

    返回说明

    0:成功;<0:失败。

  • RegisterAudioFrameObserver:注册音频观察类对象。

    int RegisterAudioFrameObserver (RtcEngineAudioFrameObserver *observer)=0

    参数说明

    参数

    类型

    描述

    observer

    RtcEngineAudioFrameObserver *

    音频观察类对象指针。

    返回说明

    0:成功;非0:失败。

    重要

    要移除observer,调用RegisterAudioFrameObserver(NULL)。

  • SetExternalAudioSource:设置外部音频源参数。

    int SetExternalAudioSource (bool enable, int sampleRate, int channels)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    true:开启。

    false:关闭。

    sampleRate

    int

    采样率(Hz),取值:8000,16000,32000,44100,48000。

    channels

    int

    声道数,取值:1:单声道;2:双声道。

    返回说明

    >=0:成功;<0:失败。

  • PushExternalAudioFrame:推送外部音频采集源。

    int PushExternalAudioFrame (RtcEngineAudioFrame *frame)=0

    参数说明

    参数

    类型

    描述

    frame

    RtcEngineAudioFrame *

    外部音频帧,详见RtcEngineAudioFrame

    返回说明

    0:成功;<0:失败。

  • SetExternalAudioRender:设置是否启用外部输入音频播放。

    int SetExternalAudioRender (bool enable, int sampleRate, int channels)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    true:开启。

    false:关闭。

    sampleRate

    int

    采样率(Hz),取值:8000,16000,32000,44100,48000。

    channels

    int

    声道数1:单声道;2:双声道。

    返回说明

    0:成功。非0:失败。

  • PushExternalAudioRenderFrame:推送外部音频到扬声器。

    int PushExternalAudioRenderFrame (RtcEngineAudioFrame *frame)=0

    参数说明

    参数

    类型

    描述

    frame

    RtcEngineAudioFrame *

    外部音频帧,详见RtcEngineAudioFrame

    返回说明

    0:成功。<0:失败。

  • EnableCustomAudioCapture:开启自定义音频采集,开始后,SDK内部不再操作音频采集设备。

    int EnableCustomAudioCapture (bool enable)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启。

    返回说明

    0:成功。<0:失败。

    重要

    使用自定义采集时,不能再使用外部音频输入源SetExternalAudioSource相关功能。

  • SendCustomAudioCaptureFrame:向SDK投送自己采集的音频数据。

    int SendCustomAudioCaptureFrame (RtcEngineAudioFrame *frame)=0

    参数说明

    参数

    类型

    描述

    frame

    RtcEngineAudioFrame *

    音频帧,详见RtcEngineAudioFrame

    返回说明

    0:成功。<0:失败。

    重要

    framebuffer的创建和销毁由app负责管理。

  • EnableCustomAudioRender:开启自定义音频播放,开始后,SDK内部不再操作音频播放设备。

    int EnableCustomAudioRender (bool enable)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启。

    返回说明

    0:成功。<0:失败。

    重要

    使用自定义播放时,不能再使用外部音频渲染源SetExternalAudioRender相关功能。

  • GetCustomAudioRenderFrame:获取可播放的音频数据。

    int GetCustomAudioRenderFrame (RtcEngineAudioFrame *frame)=0

    参数说明

    参数

    类型

    描述

    frame

    RtcEngineAudioFrame *

    音频帧,详见RtcEngineAudioFrame

    返回说明

    0:成功。<0:失败。

    重要

    framebuffer的创建和销毁由app负责管理。

  • GetPlayoutSignalVolume:获取音频播放音量。

    int GetPlayoutSignalVolume ()=0

    返回说明

    音量。

  • SetRecordingSignalVolume:设置音频采集音量,音量范围[0,100]。

    int SetRecordingSignalVolume (int volume)=0

    参数说明

    参数

    类型

    描述

    volume

    int

    音量值。

    返回说明

    0:成功;非0:失败。

  • GetRecordingSignalVolume:获取音频采集音量。

    int GetRecordingSignalVolume ()=0

    返回说明

    音量。

  • JoinGroup:加入音频分组。如果分组当前不存在,则自动创建一个。

    int JoinGroup (const String &groupId, const String &usrData)=0

    参数说明

    参数

    类型

    描述

    groupId

    const ding::rtc::String &

    指定加入的音频分组。不可以是大厅(HallID),也不可以为空。允许的字符以及长度同频道ID。

    usrData

    const ding::rtc::String &

    可以额外提供一个字符串,业务层自行解释。长度不超过64字节。

    返回说明

    int如果返回0,结果将会通过OnAudioGroupJoinResult通知app。如果返回<0,则调用失败,不会有通知消息OnAudioGroupJoinResult。

    重要

    usrData暂时未支持。

  • LeaveGroup:离开音频分组。

    int LeaveGroup (const String &groupId)=0

    参数说明

    参数

    类型

    描述

    groupId

    const ding::rtc::String &

    要离开的音频分组。不可以是大厅(HallID),也不可以为空。

    返回说明

    int如果返回0,结果将会通过OnAudioGroupLeaveResult通知app。如果返回<0,则调用失败,不会有通知消息OnAudioGroupLeaveResult。

    重要

    如果离开了分组,那么没有权限再订阅该分组的音频,也没有权限向该分组mix音频流。

  • DismissGroup:解散音频分组,所有成员被迫离开该音频分组。

    int DismissGroup (const String &groupId)=0

    参数说明

    参数

    类型

    描述

    groupId

    const ding::rtc::String &

    要解散的音频分组。不可以是大厅(HallID),也不可以为空。

    返回说明

    int如果返回0,结果将会通过OnAudioGroupDismissResult通知app。如果返回<0,则调用失败,不会有通知消息OnAudioGroupDismissResult。

  • MixAudioToGroup:本地音频合并进分组音频或者大厅音频中。

    int MixAudioToGroup (bool mix, const String &groupId)=0

    参数说明

    参数

    类型

    描述

    mix

    bool

    true表示合并,false表示不合并。

    groupId

    const ding::rtc::String &

    目标分组。如果是HallID,则表示目标为大厅的音频。不可以为空。

    返回说明

    int如果返回0,结果将会通过OnAudioGroupMixResult通知app。如果返回<0,则调用失败,不会有通知消息OnAudioGroupMixResult。

    重要

    前提条件:1,已经做了音频的publish;2,权限要求:用户需要在目标分组或者大厅中。

  • SwitchSubscriptionToGroup:切换订阅的音频流到指定的分组或者大厅音频。

    int SwitchSubscriptionToGroup (const String &groupId)=0

    参数说明

    参数

    类型

    描述

    groupId

    const ding::rtc::String &

    指定的音频分组。如果是HallID,则表示目标为大厅的音频。如果groupId为空,则取消订阅当前的音频(无论是大厅还是某个分组的音频)。

    返回说明

    int如果返回0,结果将会通过OnAudioSubscribeStateChanged通知app。如果返回<0,则调用失败,不会有通知消息OnAudioSubscribeStateChanged。

    重要

    权限约束:如果订阅指定的分组或者大厅音频,那么localuser必须身在其中。如果取消订阅,那么不检查权限,总是可以安全的释放掉资源。

  • GetCurrentSubscribedAudio:查询当前订阅的音频的类型,可能是大厅音频,也可能是某个分组的音频。

    String GetCurrentSubscribedAudio ()=0

    返回说明

    groupId如果空,表示无订阅,如果是HallID,表示大厅音频,否则,返回分组音频对应的分组ID。

  • EnableBeautyFace:开启或关闭视频美颜。

    int EnableBeautyFace (bool enable, RtcEngineBeautyFaceOptions options)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启。

    options

    RtcEngineBeautyFaceOptions

    视频美颜参数。

    返回说明

    0:成功;非0:失败。

  • EnableVirtualBackground:开启或关闭虚拟背景。

    int EnableVirtualBackground (bool enable, RtcEngineVirtualBackgroundOptions options)=0

    参数说明

    参数

    类型

    描述

    enable

    bool

    是否开启。

    options

    RtcEngineVirtualBackgroundOptions

    虚拟背景参数。

    返回说明

    0:成功;非0:失败。

  • SetVideoEnhance:设置视频暗光增强功能。

    int SetVideoEnhance (RtcEngineVideoEnhanceOptions options)=0

    参数说明

    参数

    类型

    描述

    options

    RtcEngineVideoEnhanceOptions

    视频暗光增强参数。

    返回说明

    0:成功;非0:失败。

  • SetVideoDenoise:设置视频去噪场景功能。

    int SetVideoDenoise (RtcEngineVideoDenoiseOptions options)=0

    参数说明

    参数

    类型

    描述

    options

    RtcEngineVideoDenoiseOptions

    视频去噪参数。

    返回说明

    0:成功;非0:失败。

  • SetAudioDenoise:设置音频降噪功能。

    int SetAudioDenoise (RtcEngineAudioDenoiseOptions options)=0

    参数说明

    参数

    类型

    描述

    options

    RtcEngineAudioDenoiseOptions

    音频降噪参数。

    返回说明

    0:成功;非0:失败。

  • SendMediaExtensionMsg:发送媒体扩展信息

    int SendMediaExtensionMsg (unsigned char *message, unsigned int length, unsigned int repeatCount)=0

    SDK提供了发送和接收媒体扩展信息的功能,接收端参考OnMediaExtensionMsgReceived,使用场景:

  • StartPreview:开启本地视频预览。

    int StartPreview ()=0

    返回说明

    0:成功;非0:失败。

    重要

    如果没有调用SetLocalViewConfig设置显示的view,则无法预览。可以在JoinChannel之前就开启预览会自动打开摄像头。调用LeaveChannel不会关闭本地预览,会一直保留,直到调用StopPreview结束。

  • StopPreview:关闭本地视频预览。

    int StopPreview ()=0

    返回说明

    0:成功;非0:失败。

    重要

    LeaveChannel会自动停止本地预览;如果没有在推相机流,则会自动关闭摄像头。

  • GetOnlineRemoteUsers:获取远端在线用户列表。

    void GetOnlineRemoteUsers (StringArray &userList)=0

    参数说明

    参数

    类型

    描述

    userList

    StringArray &

    当前频道内所有在线用户userid列表。

  • GetUserInfo:查询远端用户状态。

    int GetUserInfo (const char *uid, Dictionary &dict)=0

    通过uid查询,指定远端用户的状态信息,参数dict类型为标准std::map容器,通过键值对的方式进行访问。

    参数说明

    参数

    类型

    描述

    uid

    const char *

    用户ID。从Appserver分配的唯一标示符。

    dict

    Dictionary &

    App提供的容器,用于存放用户数据。

    返回说明

    0:成功;非0:失败,返回值为具体的错误码。

    重要

    Key信息:userID:远端用户的ID。isOnline:远端用户是否在线。displayName:远端用户的名称。hasAudio:远端用户是否推送了音频流。hasCamera:远端用户是否推送了相机流。hasScreenSharing:远端用户是否推送了屏幕流。requestAudio:本端是否订阅了此远端用户的音频流。requestCamera:本端是否订阅了此远端用户的相机流。此状态,系在成功订阅该用户摄像头流前的状态。requestScreenSharing:本端是否订阅了此远端用户的屏幕流。此状态,系在成功订阅该用户屏幕共享前的状态。preferCameraType:如果网络带宽允许,优先订阅的相机流的大小规格,选择范围:FHD,HD,SD,LD。subScribedAudio:本端是否拉到了此远端用户的音频流。subScribedCameraType:本端拉到了此远端用户的相机流的大小规格,可能的值:FHD,HD,SD,LD。subScribedScreenSharing:本端是否拉到了此远端用户的屏幕流。hasCameraView:本端是否设置了此远端用户相机流的view。hasScreenView:本端是否设置了此远端用户屏幕流的view。isCameraMirror:本端是否设置了此远端用户的相机流为镜像。isScreenMirror:本端是否设置了此远端用户的屏幕流为镜像。

  • IsUserOnline:查询用户是否在线。

    bool IsUserOnline (const char *uid)=0

    参数说明

    参数

    类型

    描述

    uid

    const char *

    用户ID,从Appserver分配的唯一标示符。不可为NULL。

    返回说明

    true:用户在线;false:用户不在线。

    重要

    根据特定的UserID,查询该用户是否在线。

  • GetLogDirPath:获取当前SDK日志文件保存路径,包含SDK添加的子目录。

    bool GetLogDirPath (char *buf, int maxBufSize)

    参数说明

    参数

    类型

    描述

    buf

    char *

    用于接收目录,不允许NULL。

    maxBufSize

    int

    buf的大小。拷贝时包含字符串的结束符'\0'。

    返回说明

    true,成功,路径存放在buf中;false,失败,一种可能是提供的buf长度过短,放不下;另一种可能是尚未设置日志路径。

  • SetLogLevel:设置日志等级。

    int SetLogLevel (RtcEngineLogLevel logLevel)

    参数说明

    参数

    类型

    描述

    logLevel

    RtcEngineLogLevel

    Log级别,详见RtcEngineLogLevel枚举类型。

    返回说明

    0:成功;非0:失败。比如没有先调用SetLogDirPath。

    重要

    设置SDK的输出日志等级。默认值为RtcEngineLogLevelInfo。调用此接口,请先于SetLogDirPath接口调用之前调用本接口,否则可能不起作用。如果设置为RtcEngineLogLevelNone,那么停止日志输出。

  • GetErrorDescription:根据错误码,获取错误码描述,也适用于获取Warning的描述。

    const char * GetErrorDescription (int error_code)

    参数说明

    参数

    类型

    描述

    error_code

    int

    错误码,详见RtcEngineErrorCode

    返回说明

    错误码描述字符串。

    重要

    在任何时刻都可以调用。

  • GetCurrentConnectionStatus:获取当前网络链接状态。

    RtcEngineConnectionStatus GetCurrentConnectionStatus ()=0

    返回说明

    当前链接状态,参考RtcEngineConnectionStatus

    重要

    网络链接状态发生变化时,SDK会通过OnConnectionStatusChanged回调通知。

  • SetParameters:设置算法或者其他私有参数。

    int SetParameters (const char *params)=0

    参数说明

    参数

    类型

    描述

    params

    const char *

    用于接收来自客户设置的参数,通过JSON配置SDK的特别功能。

    返回说明

    0:成功;其他:失败。