本文为您介绍了Windows SDK的AliRtcEngine接口详情。

目录

基础接口

API 描述 以上版本支持
setH5CompatibleMode 设置H5兼容模式 1.1
getH5CompatibleMode 检查当前是否兼容H5 1.1
sharedInstance 创建AliRtcEngine实例(同一时间只会存在一个实例) 1.1
destroy 销毁SDK 1.1
uploadLog 上传日志 1.15
setLogDirPath 设置SDK日志文件保存路径 1.16.2

频道相关接口

API 描述 以上版本支持
setAutoPublishSubscribe 设置是否自动发布,是否自动订阅 1.1
joinChannel 加入频道 1.1
leaveChannel 离开频道 1.1
isInCall 检查当前是否在频道中 1.1
setChannelProfile 设置频道模式 1.15

发布相关接口

API 描述 以上版本支持
isAutoPublish 查询当前是否为自动发布模式 1.1
configLocalCameraPublish 设置是否允许发布相机流 1.1
isLocalCameraPublishEnabled 查询当前是否允许发布相机流 1.1
configLocalScreenPublish 设置是否允许发布屏幕流 1.1
isLocalScreenPublishEnabled 查询当前是否允许发布屏幕流 1.1
configLocalAudioPublish 设置是否允许发布音频流 1.1
isLocalAudioPublishEnabled 查询当前是否允许推音频流 1.1
configLocalSimulcast 设置是否允许发布次要视频流 1.1
isLocalSimulcastEnabled 查询当前是否允许发布次要视频流 1.1
publish 手动发布视频和音频流 1.1

订阅相关接口

API 描述 以上版本支持
isAutoSubscribe 查询当前是否为自动订阅模式 1.1
configRemoteCameraTrack 设置是否订阅远端相机流 1.1
configRemoteScreenTrack 设置是否订阅远端屏幕流 1.1
configRemoteAudio 设置是否订阅远端音频流 1.1
subscribe 手动订阅视频和音频流 1.1
subscribeAudioData 订阅音频数据 1.16.2
unsubscribeAudioData 取消订阅音频数据 1.16.2

视频相关接口

API 描述 以上版本支持
setVideoProfile 设置视频流的参数 1.1
setLocalViewConfig 为本地预览设置渲染窗口以及绘制参数 1.1
muteLocalCamera 设置是否停止发布本地视频流 1.1
setRemoteViewConfig 为远端的视频设置渲染窗口以及绘制参数 1.1
getCameraList 获取摄像头列表 1.1
getCurrentCamera 获取当前使用的摄像头名称 1.1
setCurrentCamera 选择摄像头 1.1
isCameraOn 检查摄像头是否打开 1.1
getScreenShareSourceInfo 获取屏幕分享源信息 1.15
getDesktopResolution 获取屏幕分享桌面分辨率 1.15
setScreenShareSource 设置屏幕分享源 1.15
getScreenShareSource 获取屏幕分享源 1.15
getCurrentCamerId 获取当前使用的摄像头ID 1.16.2
setCurrentCameraById 通过设备ID选择摄像头 1.16.2
setExternalVideoSource 启用外部视频输入源 1.16.2
pushExternalVideoFrame 输入外部视频 1.16.2
registerVideoSampleObserver 订阅视频数据输出 1.16.2
unRegisterVideoSampleObserver 取消订阅视频数据输出 1.16.2
stopRecord 停止录制 1.17
startRecord 开始录制 1.17
setBeatutyEffect 设置基础美颜 1.17.9

音频相关接口

API 描述 以上版本支持
setAudioOnlyMode 设置为纯音频模式还是音视频模式 1.1
isAudioOnly 查询当前是否为纯音频模式 1.1
muteLocalMic 设置是否停止发布本地音频 1.1
muteRemoteAudioPlaying 设置是否停止播放远端音频流 1.1
getAudioCaptures 获取系统中的录音设备列表 1.1
getCurrentAudioCapture 获取当前使用的音频采集设备名称 1.1
setCurrentAudioCapture 选择音频采集设备 1.1
getAudioRenderers 获取系统中的扬声器列表 1.1
getCurrentAudioRenderer 获取当前使用的音频播放设备 1.1
setCurrentAudioRenderer 选择音频播放设备 1.1
startAudioCapture 开启音频采集 1.11
stopAudioCapture 关闭音频采集 1.11
startAudioPlayer 开启音频播放设备 1.11
stopAudioPlayer 关闭音频播放 1.11
muteAllRemoteAudioPlaying 停止远端的所有音频流的播放 1.16.2
getCurrentAudioCaptureId 获取使用的录音设备ID 1.16.2
setCurrentAudioCaptureById 通过设备ID选择录音设备 1.16.2
getCurrentAudioRendererId 获取当前使用的扬声器ID 1.16.2
setCurrentAudioRendererById 通过设备ID选择扬声器 1.16.2
setRecordingVolume 设置录音音量 1.16.2
setPlayoutVolume 设置播放音量 1.16.2
setSubscribeAudioNumChannel 设置输出音频声道数 1.16.2
setSubscribeAudioSampleRate 设置输出音频采样率 1.16.2
setExternalAudioSource 设置是否将外部音频数据作为推流的输入源 1.16.2
pushExternalAudioFrameRawData 输入音频数据 1.16.2
setMixedWithMic 设置外部音频输入是否与麦克风采集音频混合 1.16.2
setExternalAudioPublishVolume 设置外部音频输入音量 1.16.2
getExternalAudioPublishVolume 获取外部音频输入音量 1.17
setExteranlAudioRender 设置是否启用外部输入音频播放 1.16.2
pushExternalAudioRenderRawData 输入音频播放数据 1.16.2
setExternalAudioRenderVolume 设置外部音频播放音量 1.16.2
getExternalAudioRenderVolume 获取音频播放音量 1.16.2
setAudioEffectReverbMode 设置混响音效模式 1.17
setAudioEffectReverbParamType 设置混响音效类型 1.17
setVolumeCallbackIntervalMs 设置音量回调频率和平滑系数 1.17.9

预览接口

API 描述 以上版本支持
startPreview 开始本地预览 1.1
stopPreview 停止本地预览 1.1

远端用户查询接口

API 描述 以上版本支持
getOnlineRemoteUsers 获取远端在线用户列表 1.1
getUserInfo 查询远端用户信息 1.1
isUserOnline 查询用户是否在线 1.1
getMediaInfoWithKeys 获取媒体流信息 1.9

其他接口

API 描述 以上版本支持
setLogLevel 设置日志级别 1.1
getSdkVersion 获取SDK版本号 1.1
setClientRole 设置用户角色 1.16
startLastmileDetect 开始网络质量探测 1.16.2
stopLastmileDetect 停止网络质量探测 1.16.2
postFeedback SDK问题反馈 1.17.12
sendMediaExtensionMsg 发送媒体扩展信息 1.17.1
getClientRole 获取用户角色 1.17.19
startIntelligentDenoise 开启智能降噪 1.17.19
stopIntelligentDenoise 关闭智能降噪 1.17.19

接口详情

  • setH5CompatibleMode:设置是否兼容H5,当前版本不支持在创建AliRtcEngine实例之后更改H5兼容模式,必须在创建实例之前就调用此方法,默认不兼容H5。

    static void setH5CompatibleMode(bool comp)         
    参数 类型 描述
    comp bool true表示兼容H5,false表示不兼容H5。
  • getH5CompatibleMode:检查当前是否兼容H5。返回true表示兼容H5,false表示不兼容H5。

    static bool getH5CompatibleMode()               
  • sharedInstance:创建AliRTCEngine实例(同一时间只会存在一个实例)。

    static AliRtcEngine* sharedInstance(AliRtcEventListener* listener, const AliRtc::String &extras)         
    参数 类型 描述
    listener AliRtcEventListener* AliRtcEngine回调的监听器。
    extras const AliRtc::String & SDK初始化配置,目前请使用空字符串。
  • destroy:销毁SDK,在所有操作结束之后调用。

    static AliRtcEngine::destroy();
  • uploadLog:上传日志。

    static void uploadLog();
  • setLogDirPath:设置SDK日志文件保存路径,返回0为成功,非0为失败。

    说明 如需调用此接口,请在调用所有SDK接口前进行设置,避免日志出现丢失,同时App必须保证指定的目录已存在且可写入,默认路径%appdata%目录下。
    static int setLogDirPath(const AliRtc::String &logDirPath)
    参数 类型 描述
    logDirPath const AliRtc::String & 日志文件保存绝对路径。
  • setAutoPublishSubscribe:设置是否自动发布,是否自动订阅。默认自动发布和订阅,必须在加入频道之前设置。

    int setAutoPublishSubscribe(bool autoPub, bool autoSub)
    参数 类型 描述
    autoPub bool true表示自动发布,false表示手动发布。
    autoSub bool true表示自动订阅,false表示手动订阅。
  • joinChannel:加入频道。

    加入频道成功后,如果中途需要加入其他频道,必须先调用leaveChannel离开当前频道,如果加入频道失败,需要重试时,无需先调用leaveChannel。

    void joinChannel(const AliRtcAuthInfo& authInfo, const AliRtc::String& userName, void(*)(void* opaquePtr, int errCode) onResult, void* opaquePtr)                  
    参数 类型 描述
    authInfo const AliRtcAuthInfo& 鉴权信息。
    userName const AliRtc::String& 用户的显示名称(不是用户ID)。
    onResult void()(void opaquePtr, int errCode) 当加入频道执行结束后回调。
    opaquePtr void* App提供的UserData,在调用onResult时传回App。
    说明 该接口是异步接口,是否成功加入频道,通过onResult判断,lambda表达式转换成onResult。
    void (*foo)(void*, int);
    foo = [](void* opaquePtr, int errCode) {
    ClassA *pThis = (ClassA *)opaquePtr;
    if(errCode != 0) {
    pThis->OutputError("Failed to exeucte joinChannel.");
    }
    };
    mpEngine->joinChannel(/*authInfo*/, /*userName*/, foo, /*opaquePtr*/)
  • leaveChannel:离开频道。

    1.15及以上版本:销毁引擎只能通过destroy方法。

    1.15以下版本:离开频道时,AliRtcEngine实例会被销毁,如需继续加入频道等操作,需要重新调用getInstance初始化AliRtcEngine实例。

    void leaveChannel()
    说明 如果当前不在频道内,调用leaveChannel不会对实例产生任何影响,但会产生消息,通知频道内其他用户。
  • isInCall:检查当前是否在频道中,返回true表示在频道中,false表示不在频道中。

    bool isInCall()                
  • setChannelProfile:设置频道模式,返回0表示成功,其他表示失败。

    说明 只可以在加入频道之前调用,会议中不可以重新设置,离开频道后您可以重新设置。
    int setChannelProfile(const AliRtcChannelProfile channelProfile)
    参数 类型 描述
    channelProfile AliRtcChannelProfile 频道类型。默认为AliRtcCommunication。
  • isAutoPublish:查询当前是否为自动发布模式,返回true为自动发布,false为手动发布。

    bool isAutoPublish()                
  • configLocalCameraPublish:设置是否允许发布相机流。默认为允许发布相机流,手动发布时,需要调用publish才能生效。

    void configLocalCameraPublish(bool enable)               
    参数 类型 描述
    enable bool true为允许发布相机流,false表示不允许。默认为true。
  • isLocalCameraPublishEnabled:查询当前是否允许发布相机流,返回true为允许,false为不允许。

    public abstract boolean isLocalCameraPublishEnabled()                   
  • configLocalScreenPublish:设置是否允许发布屏幕流。默认为不允许发布屏幕流,手动发布时,需要调用publish才能生效。

    void configLocalScreenPublish(bool enable)                
    参数 类型 描述
    enable bool true表示允许发布屏幕流,false表示不允许。默认为true。
  • isLocalScreenPublishEnabled:查询当前是否允许发布屏幕流,返回true为允许,false为不允许。

    bool isLocalScreenPublishEnabled()                
  • configLocalAudioPublish:设置是否允许发布音频流。默认为允许发布音频流,手动发布时,需要调用publish才能生效。

    void configLocalAudioPublish(bool enable)        
    参数 类型 描述
    enable bool true表示允许发布音频流,false表示不允许。默认为true。
  • isLocalAudioPublishEnabled:查询当前是否允许发布音频流,返回true为允许,false为不允许。

    bool isLocalAudioPublishEnabled()               
  • configLocalSimulcast:设置是否允许发布次要视频流。默认为允许发布次要视频流,手动发布时,需要调用publish才能生效。

    int AliRtcEngine::configLocalSimulcast(bool enabled, AliRtcVideoTrack track)     
    参数 类型 描述
    enable bool true表示允许发布次要流,false表示不允许。
    track AliRtcVideoTrack 流类型,当前只支持AliVideoTrackCamera(相机流)。
  • isLocalSimulcastEnabled:查询当前是否允许发布次要视频流,返回true为允许,false为不允许。

    bool isLocalSimulcastEnabled()               
  • publish:手动发布视频和音频流。

    • 调用publish的实际表现需要结合configLocalCameraPublish、configLocalScreenPublish、configLocalAudioPublish、configLocalSimulcast等接口才能确定。
    • 根据您的具体业务需求配置上述4个接口的参数,以发布相应的视频和音频流。
    • 发布和停止发布都是调用publish。
    • 如需停止发布,则需要上述4个配置接口的参数都置为false,再调用publish。
    • 需要在加入频道成功之后调用该接口。
    void publish(void(*)(void* opaquePtr, int errCode) onResult, void* opaquePtr)             
    参数 类型 描述
    onResult void()(void opaquePtr, int errCode) 当调用publish执行结束后回调。
    opaquePtr void* App提供的UserData,在调用onResult时传回App。
    说明 该接口是异步接口,通过onResult判断调用结果,lambda表达式转换成onResult。
    void (*foo)(void *, int);
    foo = [](void*opaquePtr,  int errCode) {
    ClassA *pThis = (ClassA *)opaquePtr;
    pThis->OutputError("publish result: %d", errCode);
    };
    publish(foo, /*UserData*/);
  • isAutoSubscribe:查询当前是否为自动订阅模式,返回true为自动订阅,false为手动订阅。

    bool isAutoSubscribe()                
  • configRemoteCameraTrack:设置是否订阅远端相机流。默认为订阅大流。当对流进行操作时(如手动订阅,关闭订阅),必须调用subscribe才能生效。

    void configRemoteCameraTrack(const AliRtc::String& uid, bool preferMaster, bool enable)               
    参数 类型 描述
    uid String 用户ID。
    preferMaster bool true为订阅大流,false为订阅次小流。
    enable bool true为订阅远端相机流,false为停止订阅远端相机流。
  • configRemoteScreenTrack:设置是否订阅远端屏幕流。默认为不订阅远端屏幕流。当对流进行操作时(如手动订阅,关闭订阅),必须调用subscribe才能生效。

    void configRemoteScreenTrack(const AliRtc::String& uid, bool enable)
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
    enable bool true为订阅远端屏幕流,false为停止订阅远端屏幕流。
  • configRemoteAudio:设置是否订阅远端音频流。默认订阅远端音频流。当对流进行操作时(如手动订阅,关闭订阅),必须调用subscribe才能生效。

    void configRemoteAudio(const AliRtc::String& uid, bool enable)
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
    enable bool true为订阅远端音频流,false为停止订阅远端音频流。
  • subscribe:手动订阅视频和音频流。返回为0时描述接口执行正常,但是否订阅成功还得看回调结果;返回为非0时,描述接口执行异常中断,订阅失败。

    • 调用subscribe的实际表现需要结合configRemoteCameraTrack、configRemoteScreenTrack、configRemoteAudio等接口才能确定。
    • 根据您的具体业务需求配置上述3个接口的参数,以订阅相应的视频流和音频流。
    • 订阅和停止订阅都是调用subscribe。
    • 如果需停止订阅,则需要上述3个配置接口的参数都置为false,然后调用subscribe。
    void subscribe(const AliRtc::String& uid, void(*)(void* opaquePtr, const AliRtc::String& uid, AliRtcVideoTrack vt, AliRtcAudioTrack at) onResult, void * opaquePtr)                
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
    onResult void()(void opaquePtr, const AliRtc::String& uid, AliRtcVideoTrack vt, AliRtcAudioTrack at) 当调用subscribe执行结束后回调。
    opaquePtr void * App提供的UserData,在调用onResult时传回App。
    说明 该接口是异步接口,通过onResult判断结果,lambda表达式转换成onResult。
    void (foo)(void*, const AliRtc::String&, AliRtcAudioTrack, AliRtcVideoTrack);
    foo = [](void *opaquePtr,const AliRtc::String &uid, AliRtcAudioTrack publishedAudioTrack,AliRtcVideoTrack publishedVideoTrack)
    {
    ClassA *pThis = (ClassA*)opaquePtr;
    OutputError("subscribe result: user: %s,audio: %d, video: %d", uid.asCString(),publishedAudioTrack,publishedVideoTrack);
    };
    publish(foo, this);
  • subscribeAudioData:订阅音频数据,订阅音频数据输出前,需先通过setSubscribeAudioNumChannel与setSubscribeAudioSampleRate设置输出音频数据参数。

    virtual void subscribeAudioData(AliRtcAudioSource audioSource)
    参数 类型 描述
    audioSource AliRtcAudioSource 音频数据源。
  • unsubscribeAudioData:取消订阅音频数据。

    virtual void subscribeAudioData(AliRtcAudioSource audioSource)
    参数 类型 描述
    audioSource AliRtcAudioSource 音频数据源。
  • setVideoProfile:设置视频流的参数。可以在加入频道之前或者之后设置。

    void setVideoProfile(AliRtcVideoProfile profile, AliRtcVideoTrack track)                 
    参数 类型 描述
    profile AliRtcVideoProfile 视频流参数。
    track AliRtcVideoTrack 需要设置的视频流类型。
  • setLocalViewConfig:为本地预览设置渲染窗口以及绘制参数。

    • 支持加入频道之前和之后切换窗口。如果canvas中的hWnd为NULL,则停止渲染。
    • 如果在播放过程中需要重新设置渲染方式,请保持canvas中其他成员变量不变,仅修改renderMode。
    • canvas中渲染方式默认为AliRtcRenderModeFill。
    int setLocalViewConfig(const AliVideoCanvas& canvas, AliRtcVideoTrack track)                  
    参数 类型 描述
    canvas const AliVideoCanvas& 渲染参数,包含渲染窗口以及渲染方式。
    track AliRtcVideoTrack 视频Track的类型,预览只允许AliVideoTrackCamera(摄像头流)。
  • muteLocalCamera:设置是否停止发布本地视频流,不改变当前视频流的采集状态。

    int muteLocalCamera(bool mute, AliRtcVideoTrack track)              
    参数 类型 描述
    mute bool true表示停止发布视频流,false表示恢复发布。
    track AliRtcVideoTrack 需要改变发布状态的视频Track类型。
  • setRemoteViewConfig:为远端的视频设置渲染窗口以及绘制参数。

    • 支持加入频道之前和之后切换窗口。如果canvas为NULL或者其成员渲染视图为NULL,则停止渲染相应的流。
    • 如果在播放过程中需要重新设置渲染方式,请保持canvas中其他成员变量不变,仅修改renderMode。
    • canvas中渲染方式默认为AliRtcRenderModeAuto。
    • 建议在订阅结果回调之后调用。
    public abstract int setRemoteViewConfig(AliVideoCanvas canvas, String uid, AliRtcVideoTrack track) int setRemoteViewConfig(AliVideoCanvas* canvas, const AliRtc::String& uid, AliRtcVideoTrack track)                   
    参数 类型 描述
    canvas AliVideoCanvas 渲染参数,包含渲染窗口以及渲染方式。
    uid const AliRtc::String& 用户ID。
    track AliRtcVideoTrack 需要设置的视频Track类型。
  • getCameraList:获取摄像头列表。

    void getCameraList(AliRtc::StringArray& array)                 
    参数 类型 描述
    array AliRtc::StringArray& 摄像头列表。
  • getCurrentCamera:获取当前使用的摄像头名称。

    AliRtc::String getCurrentCamera()                 
  • setCurrentCamera:选择摄像头。必须先调用getCameraList接口获取设备列表后再调用此接口设置。

    void setCurrentCamera(const AliRtc::String& camera)                    
    参数 类型 描述
    camera const AliRtc::String& 摄像头名称。
  • isCameraOn:检查摄像头是否打开。返回true表示摄像头已打开,false表示摄像头未打开。

    bool isCameraOn()                  
  • getScreenShareSourceInfo:获取屏幕分享源信息,返回0为成功,返回其他表示失败。

    int getScreenShareSourceInfo(AliRtcScreenShareType source_type, AliRtcScreenSourceList &source_list)
    参数 类型 描述
    source_type AliRtcScreenShareType 桌面分享类型。
    source_list AliRtcScreenSourceList 屏幕分享数据源信息。
  • getCurrentCamerId:获取当前使用的摄像头ID。

    virtual AliRtc::String getCurrentCamerId()
  • setCurrentCameraById:通过设备ID选择摄像头。

    virtual void setCurrentCameraById(const AliRtc::String &cameraId)
    参数 类型 描述
    cameraId const AliRtc::String & 摄像头ID。
  • setExternalVideoSource :启用外部视频输入源。启用后调用pushExternalVideoFrame接口输入视频数据。

    virtual int setExternalVideoSource(bool enable, bool useTexture, AliRtcVideoSource sourceType)
    参数 类型 描述
    enable bool true表示开启,false表示关闭。
    useTexture bool true表示使用texture模式,false表示不使用。
    type AliRtcVideoSource 流类型。
  • pushExternalVideoFrame:输入外部视频。

    virtual int pushExternalVideoFrame(AliRtcVideoDataSample *frame, AliRtcVideoSource sourceType)
    参数 类型 描述
    frame AliRtcVideoDataSample * 帧数据。
    type AliRtcVideoSource 流类型。
  • registerVideoSampleObserver:订阅视频数据输出,输出数据将通过onCaptureVideoSample及onRemoteVideoSample回调返回。

    virtual void registerVideoSampleObserver()
  • unRegisterVideoSampleObserver:取消订阅视频数据输出。

    virtual void unRegisterVideoSampleObserver()
  • startRecord:开始录制,返回0表示操作成功,非0表示操作失败。

    virtual bool startRecord(AliRtcRecordType recordType, AliRtcRecordFormat recordFormat, const AliRtc::String& filePath, AliRtcRecordAudioConfig& audioConfig, AliRtcRecordVideoConfig& videoConfig, bool isFragment) = 0;
    参数 类型 说明
    recordType AliRtcRecordType 录制类型。
    recordFormat AliRtcRecordFormat 录制格式。
    filePath const AliRtc::String& 文件路径。
    audioConfig AliRtcRecordAudioConfig& 录制音频设置。
    videoConfig AliRtcRecordVideoConfig& 录制视频设置。
    isFragment bool 是否支持mp4内部分段,只在录制mp4时有效。
  • setBeatutyEffect: 设置是否启用基础美颜,目前只支持美白和磨皮。返回0表示操作成功,非0表示操作失败。

    virtual int setBeatutyEffect(bool enable, AliRtcBeautyConfig config) = 0;
    参数 类型 描述
    enable bool true:开启,false:关闭,默认为关闭。
    config AliRtcBeautyConfig 基础美颜参数。
  • stopRecord: 停止录制。

    virtual void stopRecord() = 0;                   
  • getDesktopResolution:获取屏幕分享桌面分辨率,返回0为成功,返回其他表示失败。

    int getDesktopResolution(const AliRtc::String& source_id, const AliRtc::String& source_title, int& width, int& height)
    参数 类型 描述
    source_id AliRtc::String 屏幕分享数据源ID。
    source_title AliRtc::String 屏幕分享数据源名称。
    width int 屏幕分辨率宽。
    height int 屏幕分辨率高。
  • setScreenShareSource:设置屏幕分享源,返回0为成功,返回其他表示失败。

    int setScreenShareSource(const AliRtcScreenSource& source)
    参数 类型 描述
    source AliRtcScreenSource 屏幕分享源信息。
  • getScreenShareSource:获取屏幕分享源,返回当前设置的屏幕分享源。

    AliRtcScreenSource getScreenShareSource()
  • setAudioOnlyMode:设置为纯音频模式还是音视频模式,返回0代表设置成功,其他代表设置失败。

    说明 默认为音视频模式(非纯音频),必须在加入频道之前设置。
    int setAudioOnlyMode(bool audioOnly)              
    参数 类型 描述
    audioOnly bool true表示只有音频发布和订阅,false表示音视频都支持。
  • isAudioOnly:查询当前是否为纯音频模式,返回true为纯音频,false为音视频。

    bool isAudioOnly()
  • muteLocalMic:设置是否停止发布本地音频。返回0表示设置成功,-1表示设置失败。

    说明 该接口不改变当前音频的采集状态。
    int muteLocalMic(bool mute)                   
    参数 类型 描述
    mute bool true表示停止发布本地音频,false表示恢复发布。
  • muteRemoteAudioPlaying:设置是否停止播放远端音频流,返回0表示设置成功,-1表示设置失败。

    int muteRemoteAudioPlaying(const AliRtc::String& uid, bool mute)                 
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
    mute bool true表示停止播放,false表示恢复播放。
  • getAudioCaptures:获取系统中的录音设备列表。

    void getAudioCaptures(AliRtc::StringArray& array)
    参数 类型 描述
    array AliRtc::StringArray& 音频采集设备列表。
  • getCurrentAudioCapture:获取当前使用的音频采集设备名称。

    AliRtc::String getCurrentAudioCapture()
  • setCurrentAudioCapture:选择音频采集设备。必须先调用getAudioCaptures接口获取设备列表后再调用此接口设置。

    void setCurrentAudioCapture(const AliRtc::String& capture)
    参数 类型 描述
    capture String 音频采集设备名称。
  • getAudioRenderers:获取系统中的扬声器列表。

    void getAudioRenderers(AliRtc::StringArray& array)
    参数 类型 描述
    array AliRtc::StringArray& 音频播放设备列表。
  • getCurrentAudioRenderer:获取当前使用的音频播放设备。

    AliRtc::String getCurrentAudioRenderer()
  • setCurrentAudioRenderer:选择音频播放设备。必须先调用getAudioRenderers接口获取设备列表后再调用此接口设置。

    void setCurrentAudioRenderer(const AliRtc::String &renderer)
    参数 类型 描述
    renderer String 音频播放设备名称。
  • startAudioCapture:开启音频采集。您可以控制提前打开音频采集,如果不设置,SDK会在开始推流的时候打开音频采集。

    void startAudioCapture() = 0;
  • stopAudioCapture:关闭音频采集。您可以控制关闭音频采集。

    void stopAudioCapture();
  • startAudioPlayer:开启音频播放设备。您可以控制提前打开音频播放,如果不设置,SDK会在订阅成功的时候打开音频播放。

     void startAudioPlayer();
  • stopAudioPlayer:关闭音频播放。您可以控制关闭音频播放。

    void stopAudioPlayer();
    说明 该接口在入会前调用。
  • muteAllRemoteAudioPlaying:停止远端的所有音频流的播放,订阅和解码不受影响。支持加入频道之前和之后设置。

    virtual int muteAllRemoteAudioPlaying(bool mute)
    参数 类型 描述
    mute bool true表示停止音频流播放,false表示不停止。
  • getCurrentAudioCaptureId:获取使用的录音设备ID。

    virtual AliRtc::String getCurrentAudioCaptureId()
  • setCurrentAudioCaptureById:通过设备ID选择录音设备。

    virtual void setCurrentAudioCaptureById(const AliRtc::String &captureId)
    参数 类型 描述
    captureId const AliRtc::String & 录音设备ID,从getAudioCaptures接口获取。
  • getCurrentAudioRendererId :获取当前使用的扬声器ID。

    virtual AliRtc::String getCurrentAudioRendererId()
  • setCurrentAudioRendererById:通过设备ID选择扬声器。

    virtual void setCurrentAudioRendererById(const AliRtc::String &rendererId)
    参数 类型 描述
    rendererId const AliRtc::String & 扬声器ID,从getAudioRenderers接口获取。
  • setRecordingVolume:设置录音音量,返回0表示成功,其他表示失败。

    virtual int setRecordingVolume(int volume)
    参数 类型 描述
    volume int 音量。取值:0~400。
    • 0:静音。
    • >100:放大音量。
    • <100:减小音量。
    注意 录音音量调节:当对端用户物理按键调大最大,且依然觉得播放声音小时可以调用该接口,推荐值100-200,超过200会有影响音质的风险。
  • setPlayoutVolume:设置播放音量,返回0表示成功,其他表示失败。

    virtual int setPlayoutVolume(int volume)
    参数 类型 描述
    volume int 音量。取值:0~400。
    • 0:静音。
    • >100:放大音量。
    • <100:减小音量。
    注意 播放音量调节当本地物理按键调大最大,且依然觉得播放声音小时可以调用该接口,推荐值100-200,超过200会有影响音质的风险。
  • setSubscribeAudioNumChannel:设置输出音频声道数,默认单声道。

    virtual void setSubscribeAudioNumChannel(AliRtcAudioNumChannelType audioNumChannel)
    参数 类型 描述
    audioNumChannel AliRtcAudioNumChannelType 音频声道类型。
  • setSubscribeAudioSampleRate:设置输出音频采样率,默认44.1k。

    virtual void setSubscribeAudioSampleRate(AliRtcAudioSampleRate audioSampleRate)
    参数 类型 描述
    audioSampleRate AliRtcAudioSampleRate 音频采样率。
  • setExternalAudioSource:设置是否将外部音频数据作为推流的输入源,返回>=0表示成功,<0表示失败。

    virtual int setExternalAudioSource(bool enable, unsigned int sampleRate, unsigned int channelsPerFrame)
    参数 类型 描述
    enable bool 是否启用外部音频输入源。取值:true|false。
    sampleRate unsigned int 采样率。
    channelsPerFrame unsigned int 声道数。取值:>=1。
  • pushExternalAudioFrameRawData :输入音频数据,返回>=0表示成功,<0表示失败,返回值为ERR_AUDIO_BUFFER_FULL时,需要在间隔投递数据时间长度后再次重试投递。

    virtual int pushExternalAudioFrameRawData(const void* audioSamples, unsigned int sampleLength, long long timestamp)
    参数 类型 描述
    audioSamples const void* 音频数据。
    sampleLength unsigned int 音频数据长度。
    timestamp long long 时间戳。
  • setMixedWithMic:设置外部音频输入是否与麦克风采集音频混合。

    virtual int setMixedWithMic(bool mixed)
    参数 类型 描述
    mixed bool true表示混音,false表示完全替换麦克风采集数据。
  • setExternalAudioPublishVolume:设置外部音频输入音量。

    说明 1.17及以上版本setExternalAudioVolume接口名变更为setExternalAudioPublishVolume。
    virtual int setExternalAudioPublishVolume(int volume)
    参数 类型 描述
    volume int 音量。取值:0~100。
  • getExternalAudioPublishVolume:获取外部音频输入音量。

    说明 1.17及以上版本方法名getExternalAudioVolume改为getExternalAudioPublishVolume。
    virtual int getExternalAudioPublishVolume()
  • setExteranlAudioRender :设置是否启用外部输入音频播放,返回>=0表示成功,<0表示失败。

    virtual int setExteranlAudioRender(bool enable, unsigned int sampleRate, unsigned int channelsPerFrame)
    参数 类型 描述
    enable bool true表示开启,false表示关闭。
    sampleRate unsigned int 采样率。
    channelsPerFrame unsigned int 采样率。
  • pushExternalAudioRenderRawData:输入音频播放数据,返回>=0表示成功,<0表示失败。

    virtual int pushExternalAudioRenderRawData(const void* audioSamples, unsigned int sampleLength, 
    unsigned int sampleRate, unsigned int channelsPerFrame, long long timestamp)
    参数 类型 描述
    audioSamples const void* 音频数据。
    sampleLength unsigned int 音频数据长度。
    sampleRate unsigned int 音频采样率。
    channelsPerFrame unsigned int 音频声道数。
    timestamp long long 时间戳。
  • setExternalAudioRenderVolume:设置外部音频播放音量。

    virtual int setExternalAudioRenderVolume(int volume)
    参数 类型 描述
    volume int 音量。取值:0~100。
  • getExternalAudioRenderVolume :获取音频播放音量。

    virtual int getExternalAudioRenderVolume()
  • setAudioEffectReverbMode: 设置混响音效模式。成功返回0,失败返回错误码。

    virtual int setAudioEffectReverbMode(const AliRtcAudioEffectReverbMode mode) = 0;
    参数 类型 说明
    mode const AliRtcAudioEffectReverbMode 对应混响音效类型。
  • setAudioEffectReverbParamType:设置混响音效类型。成功返回0,失败返回错误码。

    virtual int setAudioEffectReverbParamType(const AliRtcAudioEffectReverbParamType type, float value) = 0;
    参数 类型 说明
    type const AliRtcAudioEffectReverbParamType 对应混响音效类型。
    value float 对应混响音效类型值。
  • setVolumeCallbackIntervalMs:设置音量回调频率和平滑系数。返回0表示成功,-1表示interval设置小于10,-2表示平滑系数超出范围。

    virtual int setVolumeCallbackIntervalMs(int interval, int smooth, int reportVad) = 0;
    参数 类型 说明
    interval int 时间间隔。单位毫秒,最小值不得小于10ms。
    smooth int 平滑系数。数值越大平滑程度越高,反之越低,实时性越好。建议您设置3,范围为0~9。
    reportVad int 本地语音检测开关。取值:
    • 1:开启,通过onAudioVolumeCallback接口回调。
    • 0:关闭。
  • startPreview:开始本地预览(在主线程调用),开始预览之前需要设置setLocalViewConfig。

    int startPreview()              
    说明 您可以在加入频道之前开始本地预览。
  • stopPreview:停止本地预览。

    int stopPreview()                  
  • getOnlineRemoteUsers:获取远端在线用户列表。

    void getOnlineRemoteUsers(AliRtc::StringArray& array)
    参数 类型 描述
    array AliRtc::StringArray& 用户列表(用户ID列表)。
  • getUserInfo:查询远端用户信息。返回0表示成功获取,其他表示失败。

    int getUserInfo(const AliRtc::String& uid, AliRtc::Dictionary& dict)
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
    dict AliRtc::Dictionary& 用于存放用户数据。

    dict当中key值包括:userID、isOnline、sessionID、callID、displayName、hasAudio,hasCameraMaster、hasCameraSlave、hasScreenSharing、requestAudio,requestCameraMaster、requestCameraSlave、requestScreenSharing、preferCameraMaster subScribedAudio、subScribedCameraMaster,subScribedCamearSlave、subScribedScreenSharing、hasCameraView、hasScreenView、muteAudioPlaying。

  • isUserOnline:查询用户是否在线。返回true表示在线,false表示不在线。

    bool isUserOnline(const AliRtc::String& uid)
    参数 类型 描述
    uid const AliRtc::String& 用户ID。
  • getMediaInfoWithKeys:获取媒体流信息。返回key-value格式的json字符串。

    AliRtc::String getMediaInfoWithKeys(const AliRtc::String& call_id, AliRtcVideoTrack track,const AliRtc::String key_list[],int length) = 0;
    参数 类型 描述
    call_id AliRtc::String 需要查询的用户ID。
    track AliRtcVideoTrack 需要查询的媒体流类型。
    length int 数组长度。
    key_list AliRtc::String 查询key值数组。
  • createMediaDeviceTestInterface:创建音视频设备测试实例。

    AliMediaDeviceTestInterface * createMediaDeviceTestInterface(AliMediaDeviceTestEventListener * pMediaDeviceEventListener)
    参数 类型 描述
    pMediaDeviceEventListener AliMediaDeviceTestEventListener * 音频设备测试事件监听器。
  • setLogLevel:设置日志级别。

    void setLogLevel(AliRtcLogLevel logLevel)        
    参数 类型 描述
    logLevel AliRtcLogLevel 日志级别。
  • getSdkVersion:获取SDK版本号。

    static const char* getSdkVersion()                 
  • setClientRole:设置用户角色。返回0为成功,否则返回错误码。

    int setClientRole(const AliRtcClientRole clientRole) = 0;
    参数 类型 描述
    clientRole AliRtcClientRole 用户角色。默认为AliRtcClientRoleLive。
  • startLastmileDetect:开始网络质量探测。返回0表示成功,非0表示失败。

    说明 您需要在加入频道之前调用,并且入会后会自动停止,探测结果在onLastmileDetectResultWithQuality回调。
    virtual int startLastmileDetect()
  • stopLastmileDetect:停止网络质量探测。

    virtual int stopLastmileDetect()
  • postFeedback: SDK问题反馈。

        virtual void postFeedback(const AliRtc::String& uid, const AliRtc::String& channelId,
          const AliRtc::String& description, AliRtcFeedbackType type, long long timeStamp) = 0;
    参数 类型 说明
    uid AliRtc::String 问题用户User ID(允许为空)。
    channelId AliRtc::String 问题频道ID(允许为空)。
    description AliRtc::String 问题描述(支持中英文,必填,最大支持)。
    type AliRtcFeedbackType 问题类型(参考AliRtcFeedbackType说明)。
    timeStamp long long 问题发生时间戳(Unix时间戳,提供问题发生大致时间,可以为0)。
  • sendMediaExtensionMsg:发送媒体扩展信息。
    • 0:发送成功。
    • -1:当前未在推流状态,不能发送自定义消息。
    • -2:参数设置错误,自定义消息长度超过8Byte,或者repeatCount<=0。
    • -3:发送过于频繁,建议降低发送频率。
    说明 使用音视频数据通道,将自定义消息发送给房间内其他用户,需要满足两个前提:
    • 己方正常入会,并且在推流中。
    • 房间内的其他用户需要订阅己方音视频流,发送成功之后可在onMediaExtensionMsgReceived回调中接收结果。
    virtual int sendMediaExtensionMsg(unsigned char *message, int size, int repeatCount) = 0;
    参数 类型 描述
    message unsigned char * 自定义消息数据。
    size int 自定义消息数据长度,目前长度限制为8Byte。
    repeatCount int 消息发送次数。
  • getClientRole:获取用户角色。
     virtual AliRtcClientRole getClientRole() = 0;
  • startIntelligentDenoise:开启智能降噪,此接口可以通话过程中控制打开智能降噪功能。
    virtual void startIntelligentDenoise() = 0;
  • stopIntelligentDenoise:关闭智能降噪,此接口可以通话过程中控制关闭智能降噪功能。
     virtual void stopIntelligentDenoise() = 0;