DingRtcEngine接口

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

接口说明

目录

基础接口

API

描述

支持的最低版本

create

获取DingRtcEngine实例。

3.0

destroy

销毁DingRtcEngine实例。

3.0

setRtcEngineEventListener

设置Engine回调。

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

描述

支持的最低版本

setRemoteVideoStreamType

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

3.0

setRemoteDefaultVideoStreamType

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

3.0

subscribeAllRemoteAudioStreams

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

3.0

subscribeAllRemoteVideoStreams

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

3.0

subscribeRemoteVideoStream

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

3.0

视频相关接口

API

描述

支持的最低版本

setCameraCapturerConfiguration

采集偏好设置。

3.0

createRenderSurfaceView

创建视频显示的SurfaceView。

3.0

createRenderTextureView

创建视频显示的TextureView。

3.0

setLocalViewConfig

设置本地预览显示视图。

3.0

enableLocalVideo

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

3.0

muteLocalCamera

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

3.0

snapshotVideo

视频截图功能。

3.0

setVideoEncoderConfiguration

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

3.0

setScreenShareEncoderConfiguration

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

3.0

setRemoteViewConfig

设置远端视频显示视图。

3.0

updateViewConfig

更新本地或远端视图属性。

3.0

switchCamera

切换前后摄像头。

3.0

setCameraZoom

设置摄像头缩放。

3.0

setCameraFlash

设置摄像头闪光灯开关。

3.0

isCameraFocusPointSupported

摄像头是否支持手动聚焦。

3.0

setCameraFocusPoint

设置摄像头手动聚焦点。

3.0

setCameraExposurePoint

设置摄像头曝光点。

3.0

共享视频相关接口

API

描述

支持的最低版本

isScreenSharePublished

查询是否设置推送屏幕分享。

3.0

startScreenShare

启动屏幕分享。

3.0

startScreenShare

启动屏幕分享。

3.0

stopScreenShare

停止屏幕共享。

3.0

音频相关接口

API

描述

支持的最低版本

muteLocalMic

停止/恢复本地音频数据发送。

3.0

enableSpeakerphone

设置音频输出为听筒还是扬声器。

3.0

isSpeakerphoneEnabled

获取当前音频输出为听筒还是扬声器。

3.0

getAudioDevices

获取当前所有的音频设备。

3.3

setAudioRouteType

设置音频路由设备。

3.3

setAudioProfile

设置音频profile。

3.0

enableAudioVolumeIndication

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

3.0

enableAudioFrameObserver

订阅音频数据。

3.0

enableAudioFrameObserver

订阅音频数据。

3.3.0

joinGroup

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

3.4

leaveGroup

离开音频分组。

3.4

dismissGroup

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

3.4

mixAudioToGroup

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

3.4

getCurrentSubscribedAudio

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

3.4

媒体引擎相关接口

API

描述

支持的最低版本

registerAudioFrameObserver

注册音频数据输出。

3.0

enableAudioFrameObserver

设置音频回调参数。

3.0

startRecordingDeviceTest

开始音频设备录音测试。

3.0

stopRecordingDeviceTest

停止音频设备录音测试。

3.0

startPlayoutDeviceTest

开始音频设备播放测试。

3.0

stopPlayoutDeviceTest

停止音频设备播放测试。

3.0

setPlayoutVolume

设置音频播放音量,音量范围[0,100]。

3.1

getPlayoutVolume

获取音频播放音量。

3.1

setRecordingVolume

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

3.5

getRecordingVolume

获取音频采集音量。

3.5

setParameters

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

3.4.2

registerVideoSampleObserver

注册视频数据输出对象

3.0

unRegisterVideoSampleObserver

取消视频数据输出对象。

3.0

enableVideoSampleObserver

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

3.1

setExternalVideoSource

启用外部视频输入源。

3.0

pushExternalVideoFrame

输入视频数据。

3.0

setExternalAudioSource

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

3.0

pushExternalAudioFrame

输入外部音频数据推流到远端。

3.0

setExternalAudioRender

设置是否启用外部音频渲染源

3.0

pushExternalAudioRenderFrame

输入外部音频数据渲染到本地。

3.0

enableCustomAudioCapture

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

3.1

sendCustomAudioCaptureFrame

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

3.1

enableCustomAudioRender

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

3.1

getCustomAudioRenderFrame

获取可播放的音频数据。

3.1

enableBeautyFace

开启或关闭美颜功能,并设置美颜效果参数。

3.1

getCurrentConnectionStatus

获取当前网络链接状态。

3.1

setVideoEnhance

设置视频暗光增强功能。

3.4

setVideoDenoise

设置视频去噪场景功能。

3.4

setAudioDenoise

设置音频降噪功能。

3.4

getAudioMixingManager

获取伴奏混音管理类。

3.4

sendMediaExtensionMsg

发送媒体扩展信息。

3.4

预览相关接口

API

描述

支持的最低版本

startPreview

开启本地视频预览。

3.0

stopPreview

关闭本地视频预览。

3.0

远端用户查询接口

API

描述

支持的最低版本

getOnlineRemoteUsers

获取远端在线用户列表。

3.0

getUserInfo

查询远端用户状态。

3.0

isUserOnline

查询用户是否在线。

3.0

其他接口

API

描述

支持的最低版本

setLogLevel

设置日志等级。

3.0

setLogDirPath

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

3.0

getSDKVersion

查询SDK当前版本号。

3.0

getErrorDescription

根据错误码,获取错误码描述。

3.0

接口详情

  • create: 获取DingRtcEngine实例。

     public static create (Context context, String extras)

    该方法为同步调用,提供一个SDK对象实例。

    参数说明

    参数

    类型

    描述

    context

    Context

    Android上下文。

    extras

    String

    用于接收来自客户灰度下发的参数,通过JSON配置SDK的特别功能,可以是空字符串。详情请参见官网

    重要

    调用destroy 方法进行资源释放。

  • destroy: 销毁DingRtcEngine实例。

     public void destroy ()

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

    重要

    该方法为同步调用, 需要等待内部资源释放之后才能执行其他方法, 为避免主线程阻塞,建议开发者放在子线程调用该方法,但需要注意的是如需在销毁后再次创建 DingRtcEngine 实例,请开发者务必保证 destroy 方法执行结束后再创建实例。

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

  • setRtcEngineEventListener: 设置Engine回调。

     public void setRtcEngineEventListener (DingRtcEngineEventListener listener)

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

    参数说明

    参数

    类型

    描述

    listener

    DingRtcEngineEventListener

    用于接收来自engine的消息。

    重要

    所有的回调方法都是SDK内部的线程,不可以做UI操作,有UI相关操作需要抛主线程操作。

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

  • joinChannel: 加入频道。

     public int joinChannel (DingRtcAuthInfo authInfo, String userName)

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

    参数说明

    参数

    类型

    描述

    authInfo

    DingRtcAuthInfo

    认证信息,从AppServer获取。

    userName

    String

    任意用于显示的用户名称,不是UserID。

    返回说明

    0:成功;<0:失败。

    重要

    异步接口。是否成功入会,通过 onJoinChannelResult 判断。

    正常情况一个Appid对应一个App,只有同一个AppId的应用可进行互相童话,不同AppId和channelID不同都不能互通。

    当入会成功后,会触发远端用户收到 onRemoteUserOnLineNotify 回调。

    如果已在会中想重新入会,需要先调用 leaveChannel 离会,且确保 onLeaveChannelResult 回调收到后,再次调用进行入会。

    用户加入频道后,默认订阅频道内所有其他用户的音视频流,默认推送音视频流到远端,因此将会产生计费,如果想要取消默认订阅可以joinChannel 前调用 subscribeAllRemoteAudioStreamssubscribeAllRemoteVideoStreams

  • leaveChannel: 离开频道。

     public int leaveChannel ()

    返回说明

    • 0:成功;
    • <0:失败。
    重要

    失败原因错误码见回调函数:onLeaveChannelResult

    如果调用了 leaveChannel 后立刻调用 destroy 方法,SDK将会无法触发 onLeaveChannelResult

  • isInCall: 获取当前是否在频道中。

     public boolean isInCall ()

    返回说明

    • true:当前已经加入了频道;
    • false:当前不在频道中。
    重要

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

  • publishLocalVideoStream: 是否推送本地视频流。

     public int publishLocalVideoStream (boolean enabled)

    参数说明

    参数

    类型

    描述

    enabled

    boolean

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

    true:开启视频流推送。

    false:关闭视频流推送。

    返回说明

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

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

  • publishLocalAudioStream: 是否推送音频流。

     public int publishLocalAudioStream (boolean enabled)

    参数说明

    参数

    类型

    描述

    enabled

    boolean

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

    true:开启音频流推送。

    false:关闭音频流推送。

    返回说明

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

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

  • isLocalVideoStreamPublished: 查询是否设置推送视频流。

     public boolean isLocalVideoStreamPublished ()

    返回说明

    • true: 已设置推送;
    • false:未设置推送。
    重要

    SDK默认设置推送视频流,如果需要取消推送视频流,可以通过publishLocalVideoStream方法设置为不推送。

  • isLocalAudioStreamPublished: 查询是否设置推送音频流。

     public boolean isLocalAudioStreamPublished ()

    返回说明

    • true: 已设置推送;
    • false:未设置推送。
    重要

    SDK默认设置推送音频流,如果需要取消推送音频流,可以通过publishLocalAudioStream方法设置为不推送。

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

     public int setRemoteVideoStreamType (String uid, DingRtcVideoStreamType streamType)

    参数说明

    参数

    类型

    描述

    uid

    String

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

    streamType

    DingRtcVideoStreamType

    视频流的分辨率规格,详见DingRtcVideoStreamType

    返回说明

    • 0:成功;
    • 非0:失败。
  • setRemoteDefaultVideoStreamType: 设置默认订阅的视频流分辨率规格;如果不设置,则默认订阅最大的分辨率规格。

     public int setRemoteDefaultVideoStreamType (DingRtcVideoStreamType streamType)

    参数说明

    参数

    类型

    描述

    streamType

    DingRtcVideoStreamType

    视频流的分辨率规格,详见DingRtcVideoStreamType

    返回说明

    • 0:成功;
    • 非0:失败。
  • subscribeAllRemoteAudioStreams: 停止/恢复订阅所有远端音频流,包含后入会成员的订阅。

     public int subscribeAllRemoteAudioStreams (boolean sub)

    参数说明

    参数

    类型

    描述

    sub

    boolean

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

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

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

    入会前入会后均可以调用。

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

     public int subscribeAllRemoteVideoStreams (boolean sub)

    参数说明

    参数

    类型

    描述

    sub

    boolean

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

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

    返回说明

    • 0:成功;
    • 入会前入会后均可以调用;
    • 如果设置了 subscribeAllRemoteVideoStreams(false),会取消订阅已订阅的远端视频流,同时后面再入会的人不会进行自动订阅;但是依然可以通过 com 来主动订阅某个人的远端视频流;
  • subscribeRemoteVideoStream: 停止/恢复订阅远端用户的视频流。

     public int subscribeRemoteVideoStream (String uid, DingRtcVideoTrack track, boolean sub)

    参数说明

    参数

    类型

    描述

    uid

    String

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

    track

    DingRtcVideoTrack

    视频流类型。

    sub

    boolean

    true:接收指定用户的视频流。

    false:停止接收指定用户的视频流。

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

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

  • setCameraCapturerConfiguration: 采集偏好设置。

     public int setCameraCapturerConfiguration (DingEngineCameraCapturerConfiguration cameraCapturerConfiguration)

    参数说明

    参数

    类型

    描述

    cameraCapturerConfiguration

    DingEngineCameraCapturerConfiguration

    偏好设置

    返回说明

    • 0:成功;
    • 非0:表示失败。
    重要

    必须在打开摄像头之前设置,如startPreview之前设置。

  • createRenderSurfaceView: 创建视频显示的SurfaceView。

     public  createRenderSurfaceView (Context context)

    显示视频视图必须调用该方法,而不是直接调用SurfaceView。如果需要创建TextureView,则调用createRenderTextureView。 将返回值赋值view,调用setLocalViewConfig设置本地预览显示视图或者调用setRemoteViewConfig。 设置远程预览显示视图。

    参数说明

    参数

    类型

    描述

    context

    Context

    活动上下文。

    返回说明

    SurfaceView类型的实例。

    重要

    请在主线程调用该方法。

  • createRenderTextureView: 创建视频显示的TextureView。

     public  createRenderTextureView (Context context)

    显示视频视图必须调用该方法,而不是直接调用TextureView。如果需要创建SurfaceView,则调用createRenderSurfaceView。 将返回值赋值view,调用setLocalViewConfig设置本地预览显示视图或者调用setRemoteViewConfig 设置远程预览显示视图。

    参数说明

    参数

    类型

    描述

    context

    Context

    活动上下文。

    返回说明

    TextureView类型的实例。

    重要

    请在主线程调用该方法。

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

     public int setLocalViewConfig (DingRtcVideoCanvas viewConfig, DingRtcVideoTrack track)

    参数说明

    参数

    类型

    描述

    viewConfig

    DingRtcVideoCanvas

    本地视频显示属性。

    track

    DingRtcVideoTrack

    只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。

    返回说明

    • 0:成功;
    • < 0:失败。
    重要

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

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

     public int enableLocalVideo (boolean enabled)

    参数说明

    参数

    类型

    描述

    enabled

    boolean

    true:启用本地视频采集。

    false:禁用本地视频采集。

    返回说明

    • 0:成功;
    • < 0:失败。
    重要

    默认为开启状态。

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

     public int muteLocalCamera (boolean mute, DingRtcVideoTrack track)

    参数说明

    参数

    类型

    描述

    mute

    boolean

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

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

    track

    DingRtcVideoTrack

    只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

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

  • snapshotVideo: 视频截图功能。

     public int snapshotVideo (String uid, DingRtcVideoTrack track, String path)

    参数说明

    参数

    类型

    描述

    uid

    String

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

    track

    DingRtcVideoTrack

    视频流类型,只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。

    path

    String

    截图保存路径。

    返回说明

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

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

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

     public void setVideoEncoderConfiguration (DingRtcVideoEncoderConfiguration config)

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

    参数说明

    参数

    类型

    描述

    config

    DingRtcVideoEncoderConfiguration

    预定义的编码属性。

    重要

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

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

     public void setScreenShareEncoderConfiguration (DingRtcScreenShareEncoderConfiguration config)

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

    参数说明

    参数

    类型

    描述

    config

    DingRtcScreenShareEncoderConfiguration

    预定义的屏幕共享编码属性。

    重要

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

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

     public int setRemoteViewConfig (DingRtcVideoCanvas canvas, String uid, DingRtcVideoTrack track)

    参数说明

    参数

    类型

    描述

    canvas

    DingRtcVideoCanvas

    视频显示属性。

    uid

    String

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

    track

    DingRtcVideoTrack

    只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。

    返回说明

    • 0:成功;
    • < 0:失败。
    重要

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

  • updateViewConfig: 更新本地或远端视图属性。

     public int updateViewConfig (DingRtcVideoCanvas canvas, String uid, DingRtcVideoTrack track)

    参数说明

    参数

    类型

    描述

    canvas

    DingRtcVideoCanvas

    视频显示属性。

    uid

    String

    用户ID,从Appserver分配的唯一标示符。本地用户设置为""。

    track

    DingRtcVideoTrack

    只支持DingRtcVideoTrackCamera和DingRtcVideoTrackScreen。

    返回说明

    • 0:成功;
    • < 0:失败。
    重要

    支持joinChannel之前和之后设置。设置view为需要更新的view, 目前支持更新mirrorMode, renderMode, rotationMode

  • switchCamera: 切换前后摄像头。

     public int switchCamera ()

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

    只有iOS和android提供这个接口。

  • setCameraZoom: 设置摄像头缩放。

     public int setCameraZoom (float zoom)

    参数说明

    参数

    类型

    描述

    zoom

    float

    缩放级别,范围从1到camera支持的最大zoom值。

    返回说明

    • 0:成功;
    • 非0:失败。
  • setCameraFlash: 设置摄像头闪光灯开关。

     public int setCameraFlash (boolean flash)

    参数说明

    参数

    类型

    描述

    flash

    boolean

    是否打开闪光灯。

    返回说明

    • 0:成功;
    • 非0:失败。
  • isCameraFocusPointSupported: 摄像头是否支持手动聚焦。

     public boolean isCameraFocusPointSupported ()

    返回说明

    • YES:支持;
    • NO:不支持。
  • setCameraFocusPoint: 设置摄像头手动聚焦点。

     public int setCameraFocusPoint (float x, float y)

    参数说明

    参数

    类型

    描述

    point

    聚焦点坐标,(相对坐标,取值范围0~1)。

    返回说明

    • 0:成功;
    • 非0:失败。
  • setCameraExposurePoint: 设置摄像头曝光点。

     public int setCameraExposurePoint (float x, float y)

    参数说明

    参数

    类型

    描述

    point

    曝光点,(相对坐标,取值范围0~1)。

    返回说明

    • 0:成功;
    • 非0:失败。
  • isScreenSharePublished: 查询是否设置推送屏幕分享。

     public boolean isScreenSharePublished ()

    返回说明

    • true: 已设置推送;
    • false:未设置推送。
    重要

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

  • startScreenShare: 启动屏幕分享。

     public int startScreenShare ()

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

    此接口即将废弃,建议使用新接口 startScreenShare(Intent, DingRtcScreenShareMode)。

  • startScreenShare: 启动屏幕分享。

     public int startScreenShare (Intent intent, DingRtcScreenShareMode screenShareMode)

    参数说明

    参数

    类型

    描述

    intent

    Intent

    外部创建启动屏幕分享的Activity,外部未创建则传null,建议传null。

    screenShareMode

    DingRtcScreenShareMode

    屏幕共享模式,只共享音频/视频/音视频。

    返回说明

    • 0:成功;
    • 非0:失败。
  • stopScreenShare: 停止屏幕共享。

     public int stopScreenShare ()

    返回说明

    • 0:成功;
    • 非0:失败。
  • muteLocalMic: 停止/恢复本地音频数据发送。

     public int muteLocalMic (boolean mute, DingRtcMuteLocalAudioMode mode)

    参数说明

    参数

    类型

    描述

    mute

    boolean

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

    false:表示取消静音。

    mode

    DingRtcMuteLocalAudioMode

    静音模式,静音模式分三种,详见DingRtcMuteLocalAudioMode,默认模式为静音本地麦克风采集音频和所有外部输入音频。

    返回说明

    • 0:成功;
    • 非0:失败。
    重要

    静音是指音频流发送静音帧, 采集和编码模块仍然在工作。

  • enableSpeakerphone: 设置音频输出为听筒还是扬声器。

     public int enableSpeakerphone (boolean enable)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    true:扬声器模式(默认扬声器)。

    false:听筒模式。

    返回说明

    • 0:成功;
    • <0:失败。
    重要

    DingRtcAudioScenario 为 DingRtcSceneMediaMode 或者 {DingRtcAudioScenario::DingRtcSceneMusicMode} 时只支持扬声器播放。

  • isSpeakerphoneEnabled: 获取当前音频输出为听筒还是扬声器。

     public boolean isSpeakerphoneEnabled ()

    返回说明

    • true: 扬声器模式;
    • false:听筒模式。
  • getAudioDevices: 获取当前所有的音频设备。

     public  getAudioDevices ()

    返回说明

    音频设备信息

  • setAudioRouteType: 设置音频路由设备。

     public boolean setAudioRouteType (DingRtcAudioRouteType route)

    返回说明

    • true: 设置成功
    • false: 设置失败
    重要

    此接口不能和 enableSpeakerphone混合使用,否则会有冲突,建议使用setAudioRouteType接口, 当前支持的音频路由类型可以通过getAudioDevices接口获取,音频路由改变后,会收到onAudioRouteChanged回调

  • setAudioProfile: 设置音频profile。

     public int setAudioProfile (DingRtcAudioProfile profile, DingRtcAudioScenario scenario)

    参数说明

    参数

    类型

    描述

    profile

    DingRtcAudioProfile

    音频采集/编码模式参数。

    scenario

    DingRtcAudioScenario

    音频场景模式参数。

    返回说明

    • 0:成功;
    • 其他:失败。
    重要

    只支持joinChannel前设置有效。

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

     public int enableAudioVolumeIndication (int interval, int smooth, int reportVad)

    参数说明

    参数

    类型

    描述

    interval

    int

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

    smooth

    int

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

    reportVad

    int

    说话人检测开关

    1:开启。

    0:关闭。

    返回说明

    • 0:成功;
    • <0:失败。
    重要

    设置之后,音频音量和说话人uid会分别通过onAudioVolumeonActiveSpeaker回调。

  • enableAudioFrameObserver: 订阅音频数据。

     public int enableAudioFrameObserver (boolean enable, int position)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否允许数据回调。

    position

    int

    音频裸数据源类型,详见DintRtcAudioObservePosition。

    返回说明

    0:success。

  • enableAudioFrameObserver: 订阅音频数据。

     public int enableAudioFrameObserver (boolean enable, int position, DingRtcAudioFrameObserverConfig config)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否允许数据回调。

    position

    int

    音频裸数据源类型,详见DintRtcAudioObservePosition。

    config

    DingRtcAudioFrameObserverConfig

    音频裸数据源配置项,详见DingRtcAudioFrameObserverConfig

    返回说明

    0:success。

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

     public int joinGroup (String groupId, String usrData)

    参数说明

    参数

    类型

    描述

    groupId

    String

    指定加入的音频分组。不可以是大厅HALL_ID,也不可以为空。

    usrData

    String

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

    返回说明

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

    重要

    usrData暂时未支持。

  • leaveGroup: 离开音频分组。

     public int leaveGroup (String groupId)

    参数说明

    参数

    类型

    描述

    groupId

    String

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

    返回说明

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

    重要

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

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

     public int dismissGroup (String groupId)

    参数说明

    参数

    类型

    描述

    groupId

    String

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

    返回说明

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

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

     public int mixAudioToGroup (boolean mix, String groupId)

    参数说明

    参数

    类型

    描述

    mix

    boolean

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

    groupId

    String

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

    返回说明

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

    重要

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

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

     public String getCurrentSubscribedAudio ()

    返回说明

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

  • registerAudioFrameObserver: 注册音频数据输出。

     public void registerAudioFrameObserver (DingRtcAudioFrameObserver observer)

    参数说明

    参数

    类型

    描述

    observer

    DingRtcAudioFrameObserver

    音频数据回调接收对象。

    重要

    需要调用enableAudioFrameObserver开启具体DingRtcAudioSource的回调。

  • enableAudioFrameObserver: 设置音频回调参数。

     public int enableAudioFrameObserver (boolean enable, DingRtcAudioSource audioSource)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否允许数据回调。

    audioSource

    DingRtcAudioSource

    回调数据源类型。

    返回说明

    0:success; -others:fail。

  • startRecordingDeviceTest: 开始音频设备录音测试。

     public int startRecordingDeviceTest ()
  • stopRecordingDeviceTest: 停止音频设备录音测试。

     public int stopRecordingDeviceTest ()
  • startPlayoutDeviceTest: 开始音频设备播放测试。

     public int startPlayoutDeviceTest (String wavPath)

    参数说明

    参数

    类型

    描述

    wavPath

    String

    wav文件路径。

  • stopPlayoutDeviceTest: 停止音频设备播放测试。

     public int stopPlayoutDeviceTest ()
  • setPlayoutVolume: 设置音频播放音量,音量范围[0,100]。

     public int setPlayoutVolume (int volume)

    参数说明

    参数

    类型

    描述

    volume

    int

    音量值。

    返回说明

    • 0:成功;
    • 非0:失败。
  • getPlayoutVolume: 获取音频播放音量。

     public int getPlayoutVolume ()

    返回说明

    音量。

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

     public int setRecordingVolume (int volume)

    参数说明

    参数

    类型

    描述

    volume

    int

    音量值。

    返回说明

    • 0:成功;
    • 非0:失败。
  • getRecordingVolume: 获取音频采集音量。

     public int getRecordingVolume ()

    返回说明

    音量。

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

     public int setParameters (String params)

    参数说明

    参数

    类型

    描述

    params

    String

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

    返回说明

    • 0:成功;
    • 其他:失败。
  • registerVideoSampleObserver: 注册视频数据输出对象

     public void registerVideoSampleObserver (DingRtcVideoObserver observer)

    参数说明

    参数

    类型

    描述

    observer

    DingRtcVideoObserver

    视频数据输出对象。

  • unRegisterVideoSampleObserver: 取消视频数据输出对象。

     public void unRegisterVideoSampleObserver ()
  • enableVideoSampleObserver: 设置视频帧数据观察开关。

     public int enableVideoSampleObserver (boolean enable, int position)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否允许数据回调。

    position

    int

    视频数据类型,详见DingRtcVideoObservePosition

    返回说明

    0:success; -others:fail。

  • setExternalVideoSource: 启用外部视频输入源。

     public int setExternalVideoSource (boolean enable, boolean useTexture, DingRtcVideoTrack streamType, DingRtcRenderMode renderMode)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    true:开启。

    false:关闭。

    useTexture

    boolean

    是否输入纹理数据。

    true:纹理数据。

    false:非纹理数据。

    streamType

    DingRtcVideoTrack

    流类型

    DingRtcVideoTrackCamera外部输入视频数据走相机流通道,如果当前相机采集打开中,调用该接口设置enable为true,sdk会替换掉相机采集。

    DingRtcVideoTrackScreen外部输入视频数据走屏幕流通道,如果当前屏幕共享采集打开中,调用该接口设置enable为true,sdk会替换掉屏幕共享采集。

    renderMode

    DingRtcRenderMode

    处理模式,外部输入视频源宽高比和推流profile不一致时,会按照对应的rendermode做对应处理。

    DingRtcRenderModeAuto自动(默认)如果外部输入的视频宽高比和推流设置的宽高比不一致时,维持外部输入的视频宽高比,等比例缩放宽高到推流设置的宽高范围内,注意此模式下为了保证原始视频的比例和内容完整性,会导致实际推流的分辨率和设置的不一致。

    DingRtcRenderModeStretch拉伸平铺,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频拉伸到推流设置的比例,画面会变形。

    DingRtcRenderModeFill填充黑边,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频上下或者左右填充黑边。

    DingRtcRenderModeCrop裁剪,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频宽或者高进行裁剪,画面内容会丢失。

    返回说明

    • 0:成功;
    • 非0:失败。
  • pushExternalVideoFrame: 输入视频数据。

     public int pushExternalVideoFrame (DingRtcRawDataFrame rawDataFrame, DingRtcVideoTrack streamType)

    参数说明

    参数

    类型

    描述

    rawDataFrame

    DingRtcRawDataFrame

    帧数据,详见DingRtcRawDataFrame

    streamType

    DingRtcVideoTrack

    DingRtcVideoTrackCamera外部输入视频数据走相机流通道。

    DingRtcVideoTrackScreen外部输入视频数据走屏幕流通道。

    返回说明

    • 0:成功
    • 非0:失败
  • setExternalAudioSource: 设置是否启用外部音频输入源。

     public int setExternalAudioSource (boolean enable, int sampleRate, int channels)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    true开启。

    false关闭。

    sampleRate

    int

    采样率16k48k...

    channels

    int

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

    返回说明

    • >=0:成功;
    • <0:失败。
  • pushExternalAudioFrame: 输入外部音频数据推流到远端。

     public int pushExternalAudioFrame (DingRtcAudioFrame frame)

    参数说明

    参数

    类型

    描述

    frame

    DingRtcAudioFrame

    帧数据,详见DingRtcAudioFrame

    返回说明

    • <0:表示失败;
    • 0:表示成功。
    • 返回值为com时,需要在间隔投递数据时间长度后再次重试投递。
    重要

    为了保证语音连续性,sdk内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回ERR_SDK_AUDIO_INPUT_BUFFER_FULL时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧。

  • setExternalAudioRender: 设置是否启用外部音频渲染源

     public int setExternalAudioRender (boolean enable, int sampleRate, int channels)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    true开启,false关闭

    sampleRate

    int

    采样率16k48k...

    channels

    int

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

    返回说明

    • >=0: 成功
    • <0: 失败
  • pushExternalAudioRenderFrame: 输入外部音频数据渲染到本地。

     public int pushExternalAudioRenderFrame (DingRtcAudioFrame frame)

    参数说明

    参数

    类型

    描述

    frame

    DingRtcAudioFrame

    帧数据,详见DingRtcAudioFrame

    返回说明

    • <0: 表示失败;
    • 0: 表示成功。
    • 返回值为com时,需要在间隔投递数据时间长度后再次重试投递
    重要

    为了保证语音连续性,sdk内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回ERR_SDK_AUDIO_INPUT_BUFFER_FULL时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧。

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

     public int enableCustomAudioCapture (boolean enable)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否开启。

    返回说明

    • 0: 成功。
    • <0: 失败。
    重要

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

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

     public int sendCustomAudioCaptureFrame (DingRtcAudioFrame frame)

    参数说明

    参数

    类型

    描述

    frame

    DingRtcAudioFrame

    音频帧,详见DingRtcAudioFrame

    返回说明

    • 0: 成功。
    • <0: 失败。
    重要

    音频帧数据只支持16位PCM格式, 10ms帧长, 采样率支持48000/44100/32000/16000, 声道数支持单声道/双声道。

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

     public int enableCustomAudioRender (boolean enable)

    参数说明

    参数

    类型

    描述

    enable

    boolean

    是否开启。

    返回说明

    • 0: 成功。
    • <0: 失败。
    重要

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

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

     public int getCustomAudioRenderFrame (DingRtcAudioFrame frame)

    参数说明

    参数

    类型

    描述

    frame

    DingRtcAudioFrame

    音频帧,详见DingRtcAudioFrame

    返回说明

    • 0: 成功。
    • <0: 失败。
    重要

    音频帧buffer需要使用者申请释放,音频帧数据只支持16位PCM格式,10ms帧长,采样率支持48000/44100/32000/16000,声道数支持单声道/双声道。

  • enableBeautyFace: 开启或关闭美颜功能,并设置美颜效果参数。

     public int enableBeautyFace (boolean enable, DingRtcBeautyFaceOptions options)

    开启或关闭美颜功能,并设置美颜效果参数。

    参数说明

    参数

    类型

    描述

    enable

    boolean

    true:开启美颜功能。

    false:关闭美颜功能。

    options

    DingRtcBeautyFaceOptions

    美颜效果参数,详细定义见DingRtcBeautyFaceOptions

    返回说明

    • 0:成功;
    • < 0:失败。
  • getCurrentConnectionStatus: 获取当前网络链接状态。

     public  getCurrentConnectionStatus ()

    返回说明

    当前链接状态,参考com。

    重要

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

    入会前调用此接口,均返回状态 DingRtcConnectionStatusDisconnected。

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

     public int setVideoEnhance (DingRtcEngineVideoEnhanceOptions options)

    参数说明

    参数

    类型

    描述

    options

    DingRtcEngineVideoEnhanceOptions

    视频暗光增强参数。

    返回说明

    • 0:成功;
    • 非0:失败。
  • setVideoDenoise: 设置视频去噪场景功能。

     public int setVideoDenoise (DingRtcEngineVideoDenoiseOptions options)

    参数说明

    参数

    类型

    描述

    options

    DingRtcEngineVideoDenoiseOptions

    视频去噪参数。

    返回说明

    • 0:成功;
    • 非0:失败。
  • setAudioDenoise: 设置音频降噪功能。

     public int setAudioDenoise (DingRtcEngineAudioDenoiseOptions options)

    参数说明

    参数

    类型

    描述

    options

    DingRtcEngineAudioDenoiseOptions

    音频降噪参数。

    返回说明

    • 0:成功;
    • 非0:失败。
  • getAudioMixingManager: 获取伴奏混音管理类。

     public  getAudioMixingManager ()

    返回说明

    • null:失败;
    • 非null:成功。
  • sendMediaExtensionMsg: 发送媒体扩展信息。

     public int sendMediaExtensionMsg (byte[] message, int repeatCount)
    • SDK提供了发送和接收媒体扩展信息的功能,接收端参考 onMediaExtensionMsgReceived,使用场景:
    • 使用媒体扩展信息传递时间戳,计算端到端的网络延迟,或者跟自身其他业务做数据同步;
    • 使用媒体扩展信息传递位控制信息。目前可以传递8 Byte数据,即64位,每一位或几位可以表示控制信息,用于自身业务上的指令传输。

    参数说明

    参数

    类型

    描述

    message

    byte[]

    媒体扩展信息,长度限制为最大8字节。

    repeatCount

    int

    重复次数,代表消息冗余度,用于防止网络丢包导致的消息丢失。

    返回说明

    • 0: 成功
    • <0: 失败。 ERR_INNER(-1): SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用。
    重要

    使用媒体扩展信息时需要复用音视频数据通道,因此必须控制自定义消息的发送频率和消息数据长度,使用限制如下:每秒最多发送30条消息。为了不影响媒体数据的传输质量,自定义消息体长度限制为8 Byte,可以用来传输时间戳,位控制信息等,sendMediaExtensionMsg函数中repeatCount参数为自定义消息冗余度,若大于1,则会发送多次,防止网络丢包导致的消息丢失,此时房间里的其他人也会收到多次相同的消息,需要去重新发送的自定义消息,在旁路直播时,房间里的订阅者也一样会收。到目前H5端不支持发送和接收媒体扩展信息。

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

     public int startPreview ()

    返回说明

    0:成功;< 0:失败。

    重要

    如果没有调用setLocalViewConfig设置显示的view,则无法预览,但不影响推流。

    可以在joinChannel之前就开启预览会自动打开摄像头。

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

     public int stopPreview ()

    返回说明

    0:成功; < 0:失败。

    重要

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

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

     public  getOnlineRemoteUsers ()

    返回说明

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

    重要

    若当前频道ChannelProfile设置为 DingRtcSdkInteractiveLive 模式,只有设置角色为 DingRtcSdkInteractive 的用户为在线用户,本方法不返回角色为 DingRtcSdkLive 的用户。

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

     public  getUserInfo (String uid)

    通过 uid 查询指定远端用户的状态信息。

    参数说明

    参数

    类型

    描述

    uid

    String

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

    返回说明

    返回一个远端用户对象。详见com

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

     public boolean isUserOnline (String uid)

    参数说明

    参数

    类型

    描述

    uid

    String

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

    返回说明

    • true:用户在线;
    • false:用户不在线。
    重要

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

  • setLogLevel: 设置日志等级。

     public void setLogLevel (DingRtcLogLevel logLevel)

    参数说明

    参数

    类型

    描述

    logLevel

    DingRtcLogLevel

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

    重要

    设置 SDK 的输出日志等级。默认值为 DingRtcLogLevelInfo。

    调用此接口,请在仅次于 SetLogDirPath 接口调用之后再调用本接口,避免因日志等级切换造成的打印丢失。

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

     public int setLogDirPath (String logDirPath)

    参数说明

    参数

    类型

    描述

    logDirPath

    String

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

    返回说明

    • 0,成功;
    • 非0,失败。其中有两种错误码,释义如下:
    • ERR_LOG_ROOT_PATH_ERROR:路径已存在或因权限问题不可访问。
    • ERR_LOG_ALREADY_INIT:log对象已经初始化过。
    重要

    调用此接口,请在调用其他所有SDK接口前调用本接口,避免日志出现丢失。同时,App必须保证指定的目录已存在并且可以写入。

    如果,目标路径不可写入或创建日志文件失败,则会使用默认日志路径。本次设置将无效。

  • getSDKVersion: 查询SDK当前版本号。

     public String getSDKVersion ()

    返回说明

    当前的SDK版本号,格式为字符串,例:"2.5.0.x"。

    重要

    在任何时刻都可以调用。

  • getErrorDescription: 根据错误码,获取错误码描述。

     public String getErrorDescription (int errorCode)

    参数说明

    参数

    类型

    描述

    errorCode

    int

    错误码,详见DingRtcErrorCode。

    返回说明

    错误码描述字符串。

    重要

    在任何时刻都可以调用。