AliRTCSdk v2.5
阿里云实时音视频 SDK,覆盖在全球范围内的实时音视频开发平台,为您提供高可用、高品质、超低延时的音视频通信服务。
AliRtcEngine

class  com.alivc.rtc.AliRtcEngine
 

详细描述


类说明

◆ com::alivc::rtc::AliRtcEngine

class com::alivc::rtc::AliRtcEngine

核心引擎接口

Public 成员函数

abstract void setUsbDeviceEvent (AliRtcUsbDeviceEvent usbDeviceEvent)
 
abstract AliRtcUsbDeviceEvent getUsbDeviceEvent ()
 
abstract boolean isUsbDeviceDetected ()
 
abstract void destroy ()
 
abstract int setAudioOnlyMode (boolean audioOnly)
 
abstract boolean isAudioOnly ()
 
abstract int joinChannel (AliRtcAuthInfo authInfo, String userName)
 
abstract int setParameter (String param)
 
abstract int switchChannel (AliRtcAuthInfo authInfo)
 
abstract int leaveChannel ()
 
abstract boolean isInCall ()
 
abstract int setCameraCapturerConfiguration (AliEngineCameraCapturerConfiguration cameraCapturerConfiguration)
 
abstract SurfaceView createRenderSurfaceView (Context context)
 
abstract TextureView createRenderTextureView (Context context)
 
abstract int setLocalViewConfig (AliRtcVideoCanvas viewConfig, AliRtcVideoTrack track)
 
abstract int startPreview ()
 
abstract int stopPreview ()
 
abstract int enableLocalVideo (boolean enabled)
 
abstract int muteLocalCamera (boolean mute, AliRtcVideoTrack track)
 
abstract int publishLocalVideoStream (boolean enabled)
 
abstract boolean isCameraOn ()
 
abstract int publishLocalAudioStream (boolean enabled)
 
abstract int muteLocalMic (boolean mute, AliRtcMuteLocalAudioMode mode)
 
abstract void setVideoEncoderConfiguration (AliRtcVideoEncoderConfiguration config)
 
abstract void setScreenShareEncoderConfiguration (AliRtcScreenShareEncoderConfiguration config)
 
abstract int setRemoteViewConfig (AliRtcVideoCanvas canvas, String uid, AliRtcVideoTrack track)
 
abstract int setRemoteAudioVolume (String uid, int volume)
 
abstract int muteRemoteAudioPlaying (String uid, boolean mute)
 
abstract boolean isLocalVideoStreamPublished ()
 
abstract boolean isScreenSharePublished ()
 
abstract boolean isLocalAudioStreamPublished ()
 
abstract int publishLocalDualStream (boolean enable)
 
abstract boolean isDualStreamPublished ()
 
abstract int setRemoteVideoStreamType (String uid, AliRtcVideoStreamType streamType)
 
abstract int setRemoteDefaultVideoStreamType (AliRtcVideoStreamType streamType)
 
abstract int subscribeAllRemoteAudioStreams (boolean sub)
 
abstract int subscribeAllRemoteVideoStreams (boolean sub)
 
abstract int subscribeRemoteAudioStream (String uid, boolean sub)
 
abstract int subscribeRemoteVideoStream (String uid, AliRtcVideoTrack track, boolean sub)
 
abstract int setDefaultSubscribeAllRemoteAudioStreams (boolean sub)
 
abstract int setDefaultSubscribeAllRemoteVideoStreams (boolean sub)
 
abstract String[] getOnlineRemoteUsers ()
 
abstract AliRtcRemoteUserInfo getUserInfo (String uid)
 
abstract boolean isUserOnline (String uid)
 
abstract int enableSpeakerphone (boolean enable)
 
abstract boolean isSpeakerOn ()
 
abstract int switchCamera ()
 
abstract AliRtcCameraDirection getCurrentCameraDirection ()
 
abstract int setCameraZoom (float zoom)
 
abstract int setCameraFlash (boolean flash)
 
abstract boolean isCameraFocusPointSupported ()
 
abstract boolean isCameraExposurePointSupported ()
 
abstract int setCameraFocusPoint (float x, float y)
 
abstract int setCameraExposurePoint (float x, float y)
 
abstract boolean isCameraAutoFocusFaceModeSupported ()
 
abstract boolean setCameraAutoFocusFaceModeEnabled (boolean enable)
 
abstract int setRecordingVolume (int volume)
 
abstract int setPlayoutVolume (int volume)
 
abstract int setAudioProfile (AliRtcAudioProfile profile, AliRtcAudioScenario scenario)
 
abstract Set< AliRtcAudioRouteTypegetAudioRouteDevices ()
 
abstract AliRtcAudioRouteType getCurrentAudioRouteDevice ()
 
abstract int setAudioRouteDevice (AliRtcAudioRouteType audioRouteType)
 
abstract int enableAudioVolumeIndication (int interval, int smooth, int reportVad)
 
abstract int setAudioEffectVoiceChangerMode (AliRtcAudioEffectVoiceChangerMode mode)
 
abstract int setAudioEffectPitchValue (double value)
 
abstract int setAudioEffectReverbMode (AliRtcAudioEffectReverbMode mode)
 
abstract int setAudioEffectReverbParamType (AliRtcAudioEffectReverbParamType type, float value)
 
abstract void setRtcEngineEventListener (AliRtcEngineEventListener listener)
 
abstract void setRtcEngineNotify (AliRtcEngineNotify engineNotify)
 
abstract void setSubscribeAudioNumChannel (AliRtcAudioNumChannel numChannel)
 
abstract void setSubscribeAudioSampleRate (AliRtcAudioSampleRate sampleRate)
 
abstract void registerAudioObserver (AliRtcAudioType type, AliRtcAudioObserver observer)
 
abstract void registerAudioVolumeObserver (AliRtcAudioVolumeObserver observer)
 
abstract void unRegisterAudioVolumeObserver ()
 
abstract void unRegisterAudioObserver (AliRtcAudioType type)
 
abstract void registerVideoSampleObserver (AliRtcVideoObserver observer)
 
abstract void unRegisterVideoSampleObserver ()
 
abstract boolean getVideoCaptureData (AliRtcVideoTrack track, AliRtcVideoSample videoSample)
 
abstract boolean getVideoPreEncoderData (AliRtcVideoTrack track, AliRtcVideoSample videoSample)
 
abstract boolean getVideoRenderData (String uid, AliRtcVideoTrack track, AliRtcVideoSample videoSample)
 
abstract void registerLocalVideoTextureObserver (AliRtcTextureObserver observer)
 
abstract void unRegisterLocalVideoTextureObserver ()
 
abstract void setExternalVideoSource (boolean enable, boolean useTexture, AliRtcVideoTrack streamType, AliRtcRenderMode renderMode)
 
abstract int pushExternalVideoFrame (AliRtcRawDataFrame aliRawDataFrame, AliRtcVideoTrack streameType)
 
abstract int startAudioCapture ()
 
abstract int startAudioCapture (boolean keepAlive)
 
abstract int stopAudioCapture ()
 
abstract int startAudioPlayer ()
 
abstract int stopAudioPlayer ()
 
abstract int startAudioAccompany (String fileName, boolean onlyLocalPlay, boolean replaceMic, int loopCycles)
 
abstract int stopAudioAccompany ()
 
abstract int setAudioAccompanyVolume (int volume)
 
abstract int setAudioAccompanyPublishVolume (int volume)
 
abstract int getAudioAccompanyPublishVolume ()
 
abstract int setAudioAccompanyPlayoutVolume (int volume)
 
abstract int getAudioAccompanyPlayoutVolume ()
 
abstract int pauseAudioAccompany ()
 
abstract int resumeAudioAccompany ()
 
abstract int getAudioAccompanyDuration ()
 
abstract int getAudioAccompanyCurrentPosition ()
 
abstract int setAudioAccompanyPosition (int posMs)
 
abstract int preloadAudioEffect (int soundId, String filePath)
 
abstract int unloadAudioEffect (int soundId)
 
abstract int playAudioEffect (int soundId, String filePath, int cycles, boolean publish)
 
abstract int stopAudioEffect (int soundId)
 
abstract int stopAllAudioEffects ()
 
abstract int setAudioEffectPublishVolume (int soundId, int volume)
 
abstract int getAudioEffectPublishVolume (int soundId)
 
abstract int setAudioEffectPlayoutVolume (int soundId, int volume)
 
abstract int getAudioEffectPlayoutVolume (int soundId)
 
abstract int setAllAudioEffectsPublishVolume (int volume)
 
abstract int setAllAudioEffectsPlayoutVolume (int volume)
 
abstract int pauseAudioEffect (int soundId)
 
abstract int pauseAllAudioEffects ()
 
abstract int resumeAudioEffect (int soundId)
 
abstract int resumeAllAudioEffects ()
 
abstract int enableAudioDTX (boolean enable)
 
abstract int enableAudioAMD (boolean enable)
 
abstract int enableEarBack (boolean enable)
 
abstract int setEarBackVolume (int volume)
 
abstract int startIntelligentDenoise ()
 
abstract void stopIntelligentDenoise ()
 
abstract int enableMusicMode (boolean enable)
 
abstract int setChannelProfile (AliRTCSdkChannelProfile channelProfile)
 
abstract int setClientRole (AliRTCSdkClientRole clientRole)
 
abstract int refreshAuthInfo (AliRtcAuthInfo authInfo)
 
abstract AliRTCSdkClientRole getCurrentClientRole ()
 
abstract int muteAllRemoteAudioPlaying (boolean mute)
 
abstract int muteAllRemoteVideoRendering (boolean mute)
 
abstract int startNetworkQualityProbeTest ()
 
abstract int stopNetworkQualityProbeTest ()
 
abstract boolean startRecord (AliRtcRecordType recordType, AliRtcRecordFormat recordFormat, String filePath, AliRtcRecordAudioConfig audioConfig, AliRtcRecordVideoConfig videoConfig)
 
abstract void stopRecord ()
 
abstract int setPublishVideoStreamAttribute (AliRtcVideoTrack video_track, byte[] attr)
 
abstract void startLiveStreaming (AliRtcAuthInfo aliRtcAuthInfo)
 
abstract int stopLiveStreaming ()
 
abstract int setLiveStreamingViewConfig (AliRtcVideoCanvas aliVideoCanvas, String uid)
 
abstract int startPublishLiveStream (String streamUrl, AliRtcLiveTranscodingParam transcoding)
 
abstract int updatePublishLiveStream (String streamUrl, AliRtcLiveTranscodingParam transcoding)
 
abstract int stopPublishLiveStream (String streamUrl)
 
abstract AliRtcLiveTranscodingState getPublishLiveStreamState (String streamUrl)
 
abstract int setExternalAudioSource (boolean enable, int sampleRate, int channels)
 
abstract int pushExternalAudioFrameRawData (byte[] samples, int samplesLength, long timestamp)
 
abstract int setExternalAudioVolume (int vol)
 
abstract int getExternalAudioVolume ()
 
abstract int setMixedWithMic (boolean mixed)
 
abstract int setExteranlAudioRender (boolean enable, int sampleRate, int channelsPerFrame)
 
abstract int pushExternalAudioRenderRawData (byte[]audioSamples, int sampleLength, int sampleRate, int channelsPerFrame, long timestamp)
 
abstract boolean isBeautifierAvailable ()
 
abstract boolean isBeautifierEnabled ()
 
abstract int setBeautyEffect (boolean enable, AliRtcBeautyConfig config)
 
abstract int snapshotVideo (String userId, AliRtcVideoTrack trackType)
 
abstract int sendMediaExtensionMsg (byte[]message, int repeatCount)
 
abstract int addVideoWatermark (AliRtcVideoTrack track, String imageUrl, AliRtcWatermarkConfig config)
 
abstract int clearVideoWatermark (AliRtcVideoTrack track)
 
abstract int setPublishImage (String imageUrl)
 
abstract int respondMessageNotification (String tid, String contentType, String content)
 
abstract int uplinkChannelMessage (String contentType, String content)
 
abstract void postFeedback (String uid, String channelId, String description, AliRtcFeedbackType type, long timeStamp)
 
abstract AliRtcEngine createChannel (String extras)
 
abstract void destroyChannel ()
 
abstract AliRtcConnectionStatus getCurrentConnectionStatus ()
 
abstract int requestAudioFocus ()
 
abstract int abandonAudioFocus ()
 
abstract int startScreenShare ()
 
abstract int startScreenShare (Intent intent)
 
abstract int startScreenShare (Intent intent, AliRtcScreenShareMode screenShareMode)
 
abstract int stopScreenShare ()
 
abstract int setAudioShareVolume (int volume)
 
abstract int startChannelRelay (AliRtcChannelRelayConfiguration configuration)
 
abstract int updateChannelRelay (AliRtcChannelRelayConfiguration configuration)
 
abstract int stopChannelRelay ()
 
abstract int enablePlugin (String module_name, String plugin_name, int plugin_type, int op_type, byte[] option)
 
abstract int removePlugin (int plugin_id)
 
abstract int setPluginOption (int plugin_id, int op_type, byte[] option)
 
abstract int getPluginOption (int plugin_id, int op_type, byte[] option)
 
abstract void showDebugView (ViewGroup view, int showType, String userId)
 
abstract int enableEncryption (boolean enable)
 
abstract int enableBackgroundExchange (boolean enable, String path, AliRtcBokehScaleModel model)
 
abstract int enableBackgroundBlur (boolean enable, int blurDegree)
 

静态 Public 成员函数

static int setH5CompatibleMode (int enable)
 
static int getH5CompatibleMode ()
 
static void setLogLevel (AliRtcLogLevel logLevel)
 
static int setLogDirPath (String logDirPath)
 
static void uploadLog ()
 
static String getSdkVersion ()
 
static String getErrorDescription (int errorCode)
 

静态 Public 属性

static final String ENGINE_LOW_QUALITY_MODE
 
static final String ENGINE_BASIC_QUALITY_MODE
 
static final String ENGINE_STANDARD_QUALITY_MODE
 
static final String ENGINE_HIGH_QUALITY_MODE
 
static final String ENGINE_STEREO_HIGH_QUALITY_MODE
 
static final String SCENE_DEFAULT_MODE
 
static final String SCENE_EDUCATION_MODE
 
static final String SCENE_MEDIA_MODE
 
static final String SCENE_MUSIC_MODE
 

Engine的生命周期

static AliRtcEngineImpl getInstance (Context context, String extras)
 
static AliRtcEngineImpl getInstance (Context context)
 

成员函数说明

◆ getInstance() [1/2]

static AliRtcEngineImpl com.alivc.rtc.AliRtcEngine.getInstance ( Context  context,
String  extras 
)
static

获取AliRtcEngine实例

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

该方法为同步调用,以单例的形式提供对象创建。

注解
同一时间只会存在一个主实例。
创建子实例,请参考使用createChannel

◆ getInstance() [2/2]

static AliRtcEngineImpl com.alivc.rtc.AliRtcEngine.getInstance ( Context  context)
static

获取AliRtcEngine实例

参数
contextAndroid 上下文

该方法为同步调用,以单例的形式提供对象创建。

注解
同一时间只会存在一个主实例。
创建子实例,请参考使用createChannel

◆ setH5CompatibleMode()

static int com.alivc.rtc.AliRtcEngine.setH5CompatibleMode ( int  enable)
static

设置H5兼容模式

互动模式下,是否需要与Web SDK互通。如果使用Native SDK用户加入频道,需要与通过Web SDK加入频道的用户进行互通,则必须使用H5兼容模式,否则,Web用户查看Native用户将是黑屏。

参数
enable
  • true: 兼容H5。
  • false: 传统模式,不兼容H5。
注解
不支持在创建AliEngine实例之后更改H5兼容模式,必须在创建实例之前就调用此方法。

◆ getH5CompatibleMode()

static int com.alivc.rtc.AliRtcEngine.getH5CompatibleMode ( )
static

检查当前是否兼容H5、与Web SDK互通

返回
  • true: 兼容H5。
  • false: 不兼容H5。

◆ setLogLevel()

static void com.alivc.rtc.AliRtcEngine.setLogLevel ( AliRtcLogLevel  logLevel)
static

设置日志等级

参数
logLevelLog级别,详见com::alivc::rtc::AliRtcEngine::AliRtcLogLevel枚举类型
注解
设置 SDK 的输出日志等级。默认值为 AliRtcLogLevel::AliRtcLogLevelInfo
调用此接口,请在仅次于 SetLogDirPath 接口调用之后再调用本接口,避免因日志等级切换造成的打印丢失。

◆ setLogDirPath()

static int com.alivc.rtc.AliRtcEngine.setLogDirPath ( String  logDirPath)
static

设置SDK日志文件保存路径

参数
logDirPath日志文件保存目录的绝对路径,该参数是一个目录路径,而不是文件的路径。
返回
  • 0,成功
  • 非0,失败。其中有两种错误码,释义如下:
    • ERR_LOG_ROOT_PATH_ERROR: 路径已存在或因权限问题不可访问。
    • ERR_LOG_ALREADY_INIT: log对象已经初始化过。
注解
调用此接口,请在调用其他所有SDK接口前调用本接口,避免日志出现丢失。同时,App必须保证指定的目录已存在并且可以写入。
如果,目标路径不可写入或创建日志文件失败,则会使用默认日志路径。本次设置将无效。

◆ uploadLog()

static void com.alivc.rtc.AliRtcEngine.uploadLog ( )
static

上传日志文件

用户主动调用此接口,将当前日志目录下的所有未上传的日志文件进行压缩、打包、上传。

注解
上传过程中,如果有进入频道等操作,会自动停止上传行为,避免影响入会体验。

◆ setUsbDeviceEvent()

abstract void com.alivc.rtc.AliRtcEngine.setUsbDeviceEvent ( AliRtcUsbDeviceEvent  usbDeviceEvent)
abstract

设置USB设备事件监听

参数
usbDeviceEvent事件监听实例

◆ getUsbDeviceEvent()

abstract AliRtcUsbDeviceEvent com.alivc.rtc.AliRtcEngine.getUsbDeviceEvent ( )
abstract

获取USB设备事件监听实例

返回
事件监听实例,如果未设置返回null

◆ isUsbDeviceDetected()

abstract boolean com.alivc.rtc.AliRtcEngine.isUsbDeviceDetected ( )
abstract

判断当前是否检测到USB设备

返回
  • >0: 检测到存在USB设置
  • <=0: 未检测到USB设备

◆ destroy()

abstract void com.alivc.rtc.AliRtcEngine.destroy ( )
abstract

销毁 AliRtcEngine实例

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

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

◆ getSdkVersion()

static String com.alivc.rtc.AliRtcEngine.getSdkVersion ( )
static

查询sdk当前版本号

返回
当前的SDK版本号,格式为字符串,例:"2.5.0.x"
注解
在任何时刻都可以调用

◆ getErrorDescription()

static String com.alivc.rtc.AliRtcEngine.getErrorDescription ( int  errorCode)
static

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

参数
errorCode错误码,详见org::webrtc::alirtcInterface::ErrorCodeEnum
返回
错误码描述字符串
注解
在任何时刻都可以调用

◆ setAudioOnlyMode()

abstract int com.alivc.rtc.AliRtcEngine.setAudioOnlyMode ( boolean  audioOnly)
abstract

设置音频模式还是音视频模式

参数
audioOnly
  • true: 只有音频推流和拉流(纯音频)
  • false: 音视频都支持
返回
  • 0: 成功
  • 非0: 失败
注解
只可以在 joinChannel 之前设置

◆ isAudioOnly()

abstract boolean com.alivc.rtc.AliRtcEngine.isAudioOnly ( )
abstract

查询是否纯音频模式

返回
  • true: 纯音频模式
  • false: 音视频模式

◆ joinChannel()

abstract int com.alivc.rtc.AliRtcEngine.joinChannel ( AliRtcAuthInfo  authInfo,
String  userName 
)
abstract

加入频道

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

一般在调用该方法前会根据场景先选择频道模式,通过调用 setChannelProfile 实现,默认频道模式为通信模式 com::alivc::rtc::AliRtcEngine::AliRTCSdkChannelProfile::AliRTCSdkCommunication

// 设置频道为互动模式
engine.setChannelProfile(AliRTCSdkChannelProfile.AliRtcInteractivelive);
// 设置角色为主播角色
engine.setClientRole(AliRTCSdkClientRole.AliRTCSdkInteractive);
// 加入频道onJoinChannelResult会回调
engine.joinChannel(authInfo,userName);
参数
authInfo认证信息,从App Server获取。
userName任意用于显示的用户名称。不是User ID
返回
  • 0: 成功
  • <0: 失败
注解

◆ setParameter()

abstract int com.alivc.rtc.AliRtcEngine.setParameter ( String  param)
abstract

设置自定义参数

参数
param自定义参数
注解
同步接口。
返回 ERR_INVALID_ARGUMENTS 请确认鉴权信息是否合法,或者是否加入相同频道
返回 ERR_INNER为SDK 内部状态错误

◆ switchChannel()

abstract int com.alivc.rtc.AliRtcEngine.switchChannel ( AliRtcAuthInfo  authInfo)
abstract

快速切换频道

当我们已经在一个频道中想要加入另外一个频道时,通常我们需要离会之后在收到离会回调之后再加入到另外一个频道中,调用方法可以实现快速切换频道。

成功调用该方切换频道后,本地会先收到离开原频道的回调 AliRtcEngineEventListener#onLeaveChannelResult ,再收到成功加入新频道的回调 AliRtcEngineEventListener#onJoinChannelResult

参数
authInfo认证信息,从App Server获取。
返回
  • 0: 成功
  • <0: 失败
注解
异步接口。是否成功入会,通过 AliRtcEngineEventListener#onJoinChannelResult 判断
返回 ERR_SDK_INVALID_STATE 请确认是否频道模式/角色不匹配,或当前未加入任何频道中
返回 ERR_INVALID_ARGUMENTS 请确认鉴权信息是否合法,或者是否加入相同频道
返回 ERR_INNER为SDK 内部状态错误

◆ leaveChannel()

abstract int com.alivc.rtc.AliRtcEngine.leaveChannel ( )
abstract

离开频道

调用该方法代表离开频道,即挂断或者停止通话。

异步方法,成功调用后需要收到 AliRtcEngineEventListener#onLeaveChannelResult 才会真正退出频道,离开频道成功远端用户会触发会收到 AliRtcEngineNotify#onRemoteUserOnLineNotify 回调。

如果未加入频道入会,leaveChannel 不会有任何影响。加入频道后,必须要调用该方法离开频道,否则无法加入其他频道。

返回
  • 0: 成功
  • <0: 失败
注解

◆ isInCall()

abstract boolean com.alivc.rtc.AliRtcEngine.isInCall ( )
abstract

获取当前是否在频道中

返回
  • true: 当前已经加入了频道
  • false: 当前不在频道中
注解
该方法可在加入频道前或加入频道后调用。

◆ setCameraCapturerConfiguration()

abstract int com.alivc.rtc.AliRtcEngine.setCameraCapturerConfiguration ( AliEngineCameraCapturerConfiguration  cameraCapturerConfiguration)
abstract

采集偏好设置

参数
cameraCapturerConfiguration偏好设置
返回
  • 0: 成功
  • 非0: 表示失败
注解
必须在打开摄像头之前设置,如startPreviewjoinChannel之前设置

◆ createRenderSurfaceView()

abstract SurfaceView com.alivc.rtc.AliRtcEngine.createRenderSurfaceView ( Context  context)
abstract

创建视频显示的SurfaceView

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

参数
context活动上下文
返回
SurfaceView类型的实例
注解
请在主线程调用该方法。

◆ createRenderTextureView()

abstract TextureView com.alivc.rtc.AliRtcEngine.createRenderTextureView ( Context  context)
abstract

创建视频显示的TextureView

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

参数
context活动上下文
返回
TextureView类型的实例
注解
请在主线程调用该方法。

◆ setLocalViewConfig()

abstract int com.alivc.rtc.AliRtcEngine.setLocalViewConfig ( AliRtcVideoCanvas  viewConfig,
AliRtcVideoTrack  track 
)
abstract

设置本地预览显示视图

参数
viewConfig本地视频显示属性, 详细见com::alivc::rtc::AliRtcEngine::AliRtcVideoCanvas
track只支持 AliRtcVideoTrack#AliRtcVideoTrackCameraAliRtcVideoTrack#AliRtcVideoTrackScreen
返回
  • 0 : 成功
  • < 0 : 失败
注解
支持joinChannel之前和之后切换窗口。如果canvas或者AliRtcVideoCanvas#view为null,则停止显示。 如果需要重新设置AliRtcVideoCanvas#renderMode,请保持canvas中其他属性不变,仅修改 AliRtcVideoCanvas#renderMode。 如果需要重新设置AliRtcVideoCanvas#mirrorMode,请保持canvas中其他属性不变,仅修改 AliRtcVideoCanvas#mirrorMode

◆ startPreview()

abstract int com.alivc.rtc.AliRtcEngine.startPreview ( )
abstract

开启本地视频预览

开启本地视频预览并自动打开摄像头

返回
  • 0 : 成功
  • < 0 : 失败
注解
如果没有调用setLocalViewConfig设置显示的view,则无法预览,但不影响推流。 可以在joinChannel之前就开启预览会自动打开摄像头。

◆ stopPreview()

abstract int com.alivc.rtc.AliRtcEngine.stopPreview ( )
abstract

关闭本地视频预览

关闭本地视频预览并关闭摄像头

返回
  • 0 : 成功
  • < 0 : 失败
注解
leaveChannel会自动停止本地预览;如果没有在推相机流,则会自动关闭摄像头。

◆ enableLocalVideo()

abstract int com.alivc.rtc.AliRtcEngine.enableLocalVideo ( boolean  enabled)
abstract

禁用或启用本地视频采集

参数
enabled
  • true : 启用本地视频采集
  • false : 禁用本地视频采集
返回
  • 0 : 成功
  • < 0 : 失败
注解
默认为开启状态, 通过监听 AliRtcEngineNotify#onUserVideoEnabled 获取用户是否禁用或启用本地视频采集状态。

◆ muteLocalCamera()

abstract int com.alivc.rtc.AliRtcEngine.muteLocalCamera ( boolean  mute,
AliRtcVideoTrack  track 
)
abstract

是否将停止本地视频数据发送

参数
mutetrue表示视频数据发送黑帧;false表示恢复正常
track只支持AliRtcVideoTrack#AliRtcVideoTrackCamera
返回
  • 0: 成功
  • 非0: 失败
注解
发送黑色的视频帧。本地预览也呈现黑色。采集,编码,发送模块仍然工作,只是视频内容是黑色帧

◆ publishLocalVideoStream()

abstract int com.alivc.rtc.AliRtcEngine.publishLocalVideoStream ( boolean  enabled)
abstract

是否推送本地视频流

参数
enabled是否开启/关闭本地视频流推送
  • true: 开启视频流推送
  • false: 关闭视频流推送
返回
  • 0: 设置成功
  • <0: 设置失败,返回错误码
注解
SDK默认设置推送视频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效

◆ isCameraOn()

abstract boolean com.alivc.rtc.AliRtcEngine.isCameraOn ( )
abstract

检查camera是否打开

返回
  • true: 摄像头已打开
  • false: 摄像头没有打开
注解
该接口用于检查当前camera的状态

◆ publishLocalAudioStream()

abstract int com.alivc.rtc.AliRtcEngine.publishLocalAudioStream ( boolean  enabled)
abstract

是否推送音频流

参数
enabled是否开启/关闭本地音频流推送
  • true: 开启音频流推送
  • false: 关闭音频流推送
返回
  • 0: 设置成功
  • <0: 设置失败,返回错误码
注解
SDK默认设置推送音频流,在加入频道前也可以调用此接口修改默认值,并在加入频道成功时生效

◆ muteLocalMic()

abstract int com.alivc.rtc.AliRtcEngine.muteLocalMic ( boolean  mute,
AliRtcMuteLocalAudioMode  mode 
)
abstract

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

参数
mutetrue表示静音本地音频,发送静音帧; false表示取消静音;
mode静音模式,静音模式分三种,详见com::alivc::rtc::AliRtcEngine::AliRtcMuteLocalAudioMode, 默认模式为静音本地麦克风采集音频和所有外部输入音频;
返回
  • 0: 成功
  • 非0: 失败
注解
静音是指音频流发送静音帧,采集和编码模块仍然在工作

◆ setVideoEncoderConfiguration()

abstract void com.alivc.rtc.AliRtcEngine.setVideoEncoderConfiguration ( AliRtcVideoEncoderConfiguration  config)
abstract

设置相机流视频编码属性

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

参数
config预定义的编码属性,详见com::alivc::rtc::AliRtcEngine::AliRtcVideoEncoderConfiguration
注解
  • 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次相机流视频编码属性,建议在入会前调用

◆ setScreenShareEncoderConfiguration()

abstract void com.alivc.rtc.AliRtcEngine.setScreenShareEncoderConfiguration ( AliRtcScreenShareEncoderConfiguration  config)
abstract

设置屏幕流视频编码属性

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

参数
config预定义的屏幕共享编码属性,详见com::alivc::rtc::AliRtcEngine::AliRtcScreenShareEncoderConfiguration
注解
  • 该方法在入会前和入会后都可以调用,如果每次入会只需要设置一次屏幕流视频编码属性,建议在入会前调用

◆ setRemoteViewConfig()

abstract int com.alivc.rtc.AliRtcEngine.setRemoteViewConfig ( AliRtcVideoCanvas  canvas,
String  uid,
AliRtcVideoTrack  track 
)
abstract

设置远端视频显示视图

参数
canvas本地视频显示属性, 详细见 com::alivc::rtc::AliRtcEngine::AliRtcVideoCanvas
uid用户ID, 从App server分配的唯一标示符
track只支持AliRtcVideoTrack#AliRtcVideoTrackCameraAliRtcVideoTrack#AliRtcVideoTrackScreen
返回
  • 0 : 成功
  • < 0 : 失败
注解
支持joinChannel之前和之后切换窗口。如果canvas或者AliRtcVideoCanvas#view为null,则停止显示 如果需要重新设置AliRtcVideoCanvas#renderMode,请保持canvas中其他属性不变,仅修改 AliRtcVideoCanvas#renderMode 如果需要重新设置AliRtcVideoCanvas#mirrorMode,请保持canvas中其他属性不变,仅修改 AliRtcVideoCanvas#mirrorMode

◆ setRemoteAudioVolume()

abstract int com.alivc.rtc.AliRtcEngine.setRemoteAudioVolume ( String  uid,
int  volume 
)
abstract

调节本地播放的指定远端用户音量

参数
uid用户ID,从App server分配的唯一标示符
volume播放音量,取值范围[0,100] 0:静音;100:原始音量
返回
  • 0: 成功
  • 非0: 失败

◆ muteRemoteAudioPlaying()

abstract int com.alivc.rtc.AliRtcEngine.muteRemoteAudioPlaying ( String  uid,
boolean  mute 
)
abstract

停止/恢复远端指定用户的音频流的播放

参数
uid用户ID, 从App server分配的唯一标示符
mute
  • true: 停止播放
  • false: 恢复播放
返回
  • 0: 成功
  • 非0: 失败
注解
拉流和解码不受影响, 支持joinChannel之前和之后设置

◆ isLocalVideoStreamPublished()

abstract boolean com.alivc.rtc.AliRtcEngine.isLocalVideoStreamPublished ( )
abstract

查询是否设置推送视频流

返回
  • true: 已设置推送
  • false: 未设置推送
注解
SDK默认设置推送视频流,如果需要取消推送视频流,可以通过publishLocalVideoStream方法设置为不推送

◆ isScreenSharePublished()

abstract boolean com.alivc.rtc.AliRtcEngine.isScreenSharePublished ( )
abstract

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

返回
  • true: 已设置推送
  • false: 未设置推送
注解
SDK默认设置不推送屏幕分享,如果需要推送屏幕共享,可以通过startScreenShare方法开启屏幕共享推送

◆ isLocalAudioStreamPublished()

abstract boolean com.alivc.rtc.AliRtcEngine.isLocalAudioStreamPublished ( )
abstract

查询是否设置推送音频流

返回
  • true: 已设置推送
  • false: 未设置推送
注解
SDK默认设置推送音频流,如果需要取消推送音频流,可以通过publishLocalAudioStream方法设置为不推送

◆ publishLocalDualStream()

abstract int com.alivc.rtc.AliRtcEngine.publishLocalDualStream ( boolean  enable)
abstract

是否推送次要视频流

参数
enable是否开启/关闭次要视频流推送
  • true: 开启次要视频流推送
  • false: 关闭次要视频流推送
返回
  • 0: 设置成功
  • <0: 设置失败,返回错误码
注解
次要视频流只在推送视频流的前提下才会推送,设置推送次要视频流时,请确认已通过publishLocalVideoStream方法开启视频流推送
SDK默认设置不推送次要视频流,在加入频道前也可以调用此接口修改默认值,并在推送视频流时生效

◆ isDualStreamPublished()

abstract boolean com.alivc.rtc.AliRtcEngine.isDualStreamPublished ( )
abstract

查询是否设置推送次要视频流

返回
  • true: 已设置推送
  • false: 未设置推送
注解
SDK默认设置不推送次要视频流,如果需要推送次要视频流,可以通过接口publishLocalDualStream方法设置为推送

◆ setRemoteVideoStreamType()

abstract int com.alivc.rtc.AliRtcEngine.setRemoteVideoStreamType ( String  uid,
AliRtcVideoStreamType  streamType 
)
abstract

设置订阅的相机流格式,大流或小流

参数
uid用户ID,从App server分配的唯一标示符
streamType流类型
返回
  • 0: 成功
  • 非0: 失败
注解
如果发送端没有调用 publishLocalDualStream(false) 关闭双流模式,接收端可以选择订阅大流还是小流

◆ setRemoteDefaultVideoStreamType()

abstract int com.alivc.rtc.AliRtcEngine.setRemoteDefaultVideoStreamType ( AliRtcVideoStreamType  streamType)
abstract

设置默认订阅的相机流格式,大流或小流

参数
streamType流类型
返回
  • 0: 成功
  • 非0: 失败

◆ subscribeAllRemoteAudioStreams()

abstract int com.alivc.rtc.AliRtcEngine.subscribeAllRemoteAudioStreams ( boolean  sub)
abstract

停止/恢复接收所有远端音频流

参数
sub
  • true: 接收所有用户的音频流
  • false: 停止接收所有用户的音频流
返回
  • 0: 成功
  • 非0: 失败
注解
该接口作为订阅远端音频流的总开关,如果设置为false,则不仅当前会议中所有远端音频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了setDefaultSubscribeAllRemoteAudioStreams(true))

◆ subscribeAllRemoteVideoStreams()

abstract int com.alivc.rtc.AliRtcEngine.subscribeAllRemoteVideoStreams ( boolean  sub)
abstract

停止/恢复接收所有远端视频流

参数
sub
  • true: 接收所有用户的视频流
  • false: 停止允许接收所有用户的视频流
返回
  • 0: 成功
  • 非0: 失败
注解
该接口作为订阅远端视频流的总开关,如果设置为false,则不仅当前会议中所有远端视频流都会停止订阅,后续入会的新用户也将不再订阅(即使设置了setDefaultSubscribeAllRemoteVideoStreams(true))

◆ subscribeRemoteAudioStream()

abstract int com.alivc.rtc.AliRtcEngine.subscribeRemoteAudioStream ( String  uid,
boolean  sub 
)
abstract

手动拉音频流

参数
uiduid
sub
  • true: 接收指定用户的音频流
  • false: 停止接收指定用户的音频流
返回
  • 0: 成功
  • 非0: 失败
注解
如果之前有调用过 subscribeAllRemoteAudioStreams(false) 对所有远端音频进行静音,在调用本 API 之前请确保你已调用 subscribeAllRemoteAudioStreams(true)。
subscribeAllRemoteAudioStreams 是全局控制,subscribeRemoteAudioStream 是精细控制。

◆ subscribeRemoteVideoStream()

abstract int com.alivc.rtc.AliRtcEngine.subscribeRemoteVideoStream ( String  uid,
AliRtcVideoTrack  track,
boolean  sub 
)
abstract

手动拉视频流

参数
uiduid
track视频流类型
sub
  • true: 接收指定用户的视频流
  • false: 停止接收指定用户的视频流
返回
  • 0: 成功
  • 非0: 失败
注解
如果之前有调用过 subscribeAllRemoteVideoStreams(false) 暂停接收所有远端视频,在调用本 API 之前请确保你已调用 subscribeAllRemoteVideoStreams(true)。
subscribeAllRemoteVideoStreams 是全局控制,subscribeRemoteVideoStream 是精细控制。

◆ setDefaultSubscribeAllRemoteAudioStreams()

abstract int com.alivc.rtc.AliRtcEngine.setDefaultSubscribeAllRemoteAudioStreams ( boolean  sub)
abstract

设置是否默认接收音频流

参数
sub
  • true: 接收用户的音频流
  • false: 停止接收用户的音频流
返回
  • 0: 成功
  • 非0: 失败
注解
入会前入会后均可调用。如果在加入频道后调用 setDefaultSubscribeAllRemoteAudioStreams(false),会接收不到设置后加入频道的用户的音频流。
停止接收音频流后,如果想要恢复接收,请调用 subscribeRemoteAudioStream,并指定你想要接收的远端用户ID;
如果想恢复接收多个用户的音频流,则需要多次调用 subscribeRemoteAudioStream。setDefaultSubscribeAllRemoteAudioStreams(true) 只能恢复接收后面加入频道的用户的音频流。

◆ setDefaultSubscribeAllRemoteVideoStreams()

abstract int com.alivc.rtc.AliRtcEngine.setDefaultSubscribeAllRemoteVideoStreams ( boolean  sub)
abstract

设置是否默认接收视频流

参数
sub
  • true: 接收用户的视频流
  • false: 不接收用户的视频流
返回
  • 0: 成功
  • 非0: 失败
注解
入会前入会后均可调用。如果在加入频道后调用 setDefaultSubscribeAllRemoteVideoStreams(false),会接收不到设置后加入频道的用户的视频流。
停止接收视频流后,如果想要恢复接收,请调用 subscribeRemoteVideoStream,并指定你想要接收的远端用户ID;
如果想恢复接收多个用户的视频流,则需要多次调用 subscribeRemoteVideoStream;setDefaultSubscribeAllRemoteVideoStreams(true) 只能恢复接收后面加入频道的用户的视频流。

◆ getOnlineRemoteUsers()

abstract String[] com.alivc.rtc.AliRtcEngine.getOnlineRemoteUsers ( )
abstract

获取远端在线用户列表

返回
当前频道内所有在线用户userid列表
注解
若当前频道ChannelProfile设置为 AliRTCSdkChannelProfile#AliRTCSdkInteractiveLive 模式,只有设置角色为 AliRTCSdkClientRole#AliRTCSdkInteractive 的用户为在线用户,本方法不返回角色为 AliRTCSdkClientRole#AliRTCSdkLive 的用户

◆ getUserInfo()

abstract AliRtcRemoteUserInfo com.alivc.rtc.AliRtcEngine.getUserInfo ( String  uid)
abstract

查询远端用户状态

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

参数
uid用户ID。从App server分配的唯一标示符
返回
返回一个远端用户对象。详见com::alivc::rtc::AliRtcRemoteUserInfo

◆ isUserOnline()

abstract boolean com.alivc.rtc.AliRtcEngine.isUserOnline ( String  uid)
abstract

查询用户是否在线

参数
uid用户ID,从App server分配的唯一标示符。不可为NULL
返回
  • true: 用户在线
  • false: 用户不在线
注解
根据特定的UserID,查询该用户是否在线。

◆ enableSpeakerphone()

abstract int com.alivc.rtc.AliRtcEngine.enableSpeakerphone ( boolean  enable)
abstract

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

参数
enabletrue:扬声器模式(默认扬声器);false:听筒模式
返回
  • 0: 成功
  • <0: 失败
注解
com::alivc::rtc::AliRtcEngine::AliRtcAudioScenarioAliRtcAudioScenario#AliRtcSceneMediaMode 或者 {AliRtcAudioScenario::AliRtcSceneMusicMode} 时只支持扬声器播放

◆ isSpeakerOn()

abstract boolean com.alivc.rtc.AliRtcEngine.isSpeakerOn ( )
abstract

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

返回
  • true: 扬声器模式;
  • false: 听筒模式

◆ switchCamera()

abstract int com.alivc.rtc.AliRtcEngine.switchCamera ( )
abstract

切换前后摄像头

返回
  • 0: 成功
  • 非0: 失败
注解
只有iOS和android提供这个接口

◆ getCurrentCameraDirection()

abstract AliRtcCameraDirection com.alivc.rtc.AliRtcEngine.getCurrentCameraDirection ( )
abstract

获取摄像头方向

返回
摄像头方向
  • CAMERA_REAR(0) : 后置
  • CAMERA_FRONT(1) : 前置
  • CAMERA_INVALID(-1) : 无效
注解
只有iOS和android提供这个接口,在Camera已经open之后调用,否则会返回 AliRtcCameraDirection#CAMERA_INVALID

◆ setCameraZoom()

abstract int com.alivc.rtc.AliRtcEngine.setCameraZoom ( float  zoom)
abstract

设置摄像头zoom

参数
zoom缩放级别,范围从 1 到 camera支持的最大 zoom值
返回
  • 0: 成功
  • 非0: 失败
注解
只有iOS和android提供这个接口

◆ setCameraFlash()

abstract int com.alivc.rtc.AliRtcEngine.setCameraFlash ( boolean  flash)
abstract

设置摄像头闪光灯开关

参数
flash是否打开闪光灯
返回
  • 0: 设置成功
  • 非0: 设置失败
注解
只有iOS和android提供这个接口,一般后置摄像头有闪光灯功能

◆ isCameraFocusPointSupported()

abstract boolean com.alivc.rtc.AliRtcEngine.isCameraFocusPointSupported ( )
abstract

是否支持摄像头手动聚焦

返回
  • true: 支持
  • false: 不支持
注解
只有iOS和android提供这个接口,用来检查当前camera是否可以设置聚焦点

◆ isCameraExposurePointSupported()

abstract boolean com.alivc.rtc.AliRtcEngine.isCameraExposurePointSupported ( )
abstract

是否支持设置摄像头曝光点

返回
  • true: 支持
  • false: 不支持
注解
只有iOS和android提供这个接口,用来检查当前camera是否可以设置曝光点

◆ setCameraFocusPoint()

abstract int com.alivc.rtc.AliRtcEngine.setCameraFocusPoint ( float  x,
float  y 
)
abstract

设置摄像头手动聚焦点

参数
xx轴坐标值
yy轴坐标值
返回
  • 0: 成功
  • 非0: 失败
注解
只有iOS和android提供这个接口,调用后camera对所设点做一次曝光调整,后面一直保持这个对焦值

◆ setCameraExposurePoint()

abstract int com.alivc.rtc.AliRtcEngine.setCameraExposurePoint ( float  x,
float  y 
)
abstract

设置摄像头曝光点

参数
xx轴坐标值
yy轴坐标值
返回
  • 0: 成功
  • 非0: 失败
注解
只有iOS和android提供这个接口,调用后camera对所设点做一次曝光调整,后面一直保持这个曝光值

◆ isCameraAutoFocusFaceModeSupported()

abstract boolean com.alivc.rtc.AliRtcEngine.isCameraAutoFocusFaceModeSupported ( )
abstract

是否支持摄像头自动人脸聚焦

返回
  • true: 支持
  • false: 不支持
注解
只有iOS和android提供这个接口,在camera没有打开的情况下返回false, 在camera打开的情况下,如果当前camera同时支持人脸识别和对焦功能则返回true

◆ setCameraAutoFocusFaceModeEnabled()

abstract boolean com.alivc.rtc.AliRtcEngine.setCameraAutoFocusFaceModeEnabled ( boolean  enable)
abstract

设置摄像头人脸聚焦

参数
enable
  • true: 开启
  • false: 关闭
返回
  • true: 成功
  • false: 失败
注解
只有iOS和android提供这个接口,如果AliRtcEngine#isCameraAutoFocusFaceModeSupported返回true 且此调用enable为true的情况下,实时对焦到采集到数据的人脸上

◆ setRecordingVolume()

abstract int com.alivc.rtc.AliRtcEngine.setRecordingVolume ( int  volume)
abstract

设置录音音量

参数
volume录音音量,取值范围[0,400]
  • 0:静音
  • <100:减小音量
  • >100:放大音量
返回
  • 0: 成功
  • 非0: 失败

◆ setPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.setPlayoutVolume ( int  volume)
abstract

设置播放音量

参数
volume播放音量,取值范围[0,400]
  • 0:静音
  • <100:减小音量
  • >100:放大音量
返回
  • 0: 成功
  • 非0: 失败

◆ setAudioProfile()

abstract int com.alivc.rtc.AliRtcEngine.setAudioProfile ( AliRtcAudioProfile  profile,
AliRtcAudioScenario  scenario 
)
abstract

设置音频profile

参数
profile音频采集/编码模式参数, 详见com::alivc::rtc::AliRtcEngine::AliRtcAudioProfile;
scenario音频场景模式参数,详见com::alivc::rtc::AliRtcEngine::AliRtcAudioScenario;
返回
  • 0: 成功
  • 其他: 失败
注解
只支持joinChannel前设置有效;

◆ getAudioRouteDevices()

abstract Set< AliRtcAudioRouteType > com.alivc.rtc.AliRtcEngine.getAudioRouteDevices ( )
abstract

获取音频路由设备列表

返回
音频路由设备列表

◆ getCurrentAudioRouteDevice()

abstract AliRtcAudioRouteType com.alivc.rtc.AliRtcEngine.getCurrentAudioRouteDevice ( )
abstract

获取当前使用的音频路由设备

返回
当前使用的音频路由设备

◆ setAudioRouteDevice()

abstract int com.alivc.rtc.AliRtcEngine.setAudioRouteDevice ( AliRtcAudioRouteType  audioRouteType)
abstract

设置指定的音频路由设备

参数
audioRouteType指定使用的音频路由类型
返回
  • 0: 成功
  • 非0: 失败

◆ enableAudioVolumeIndication()

abstract int com.alivc.rtc.AliRtcEngine.enableAudioVolumeIndication ( int  interval,
int  smooth,
int  reportVad 
)
abstract

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

参数
interval时间间隔,单位毫秒,最小值不得小于10ms, 建议设置300-500ms, <= 0表示不启用音量提示和说话人提示功能
smooth平滑系数,数值越大平滑程度越高,反之越低,实时性越好,建议设置3,范围[0, 9];
reportVad说话人检测开关
  • 1: 开启
  • 0: 关闭
返回
  • 0: 成功
  • <0: 失败
注解
设置之后,音频音量和说话人uid会分别通过AliRtcAudioVolumeObserver#onAudioVolumeAliRtcAudioVolumeObserver#onActiveSpeaker回调

◆ setAudioEffectVoiceChangerMode()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectVoiceChangerMode ( AliRtcAudioEffectVoiceChangerMode  mode)
abstract

设置变声音效模式

参数
mode参考 com::alivc::rtc::AliRtcEngine::AliRtcAudioEffectVoiceChangerMode 对应的变声音效模式值
返回
  • 0:成功
  • 非0:失败
注解
加入频道前和频道过程中调用都生效

◆ setAudioEffectPitchValue()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectPitchValue ( double  value)
abstract

设置变调参数

参数
value变调参数,范围:[0.5, 2.0],1.0表示音调不变,小于1.0表示音调降低,大于1.0表示音调升高,默认1.0
返回
  • 0:成功
  • 非0:失败
注解
加入频道前和频道过程中调用都生效

◆ setAudioEffectReverbMode()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectReverbMode ( AliRtcAudioEffectReverbMode  mode)
abstract

设置混响音效模式

参数
mode参考 com::alivc::rtc::AliRtcEngine::AliRtcAudioEffectReverbMode 对应的混响模式
返回
  • 0:成功
  • 非0:失败
注解
加入频道前和频道过程中调用都生效

◆ setAudioEffectReverbParamType()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectReverbParamType ( AliRtcAudioEffectReverbParamType  type,
float  value 
)
abstract

设置混响音效类型

参数
type参考 com::alivc::rtc::AliRtcEngine::AliRtcAudioEffectReverbParamType 对应的混响类型
value混响参数值,不同混响类型的取值范围参考 com::alivc::rtc::AliRtcEngine::AliRtcAudioEffectReverbParamType 中取值说明
返回
  • 0:成功
  • 非0:失败
注解
需要在setAudioEffectReverbMode之后调用

◆ setRtcEngineEventListener()

abstract void com.alivc.rtc.AliRtcEngine.setRtcEngineEventListener ( AliRtcEngineEventListener  listener)
abstract

设置自身相关监听事件回调

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

参数
listener用于接收来自engine的消息
注解
所有的回调方法都是SDK内部的线程,不可以做UI操作,有UI相关操作需要抛主线程操作
不建议在回调方法中做耗时操作,如调用engine本身的destroy方法,这将有可能引起不必要的阻塞从而影响SDK的运行

◆ setRtcEngineNotify()

abstract void com.alivc.rtc.AliRtcEngine.setRtcEngineNotify ( AliRtcEngineNotify  engineNotify)
abstract

设置远端相关通知事件回调

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

参数
engineNotify用于接收来自engine的消息
注解
所有的回调方法都是SDK内部的线程,不可以做UI操作,有UI相关操作需要抛主线程操作
不建议在回调方法中做耗时操作,如调用engine本身的destroy方法,这将有可能引起不必要的阻塞从而影响SDK的运行

◆ setSubscribeAudioNumChannel()

abstract void com.alivc.rtc.AliRtcEngine.setSubscribeAudioNumChannel ( AliRtcAudioNumChannel  numChannel)
abstract

设置回调音频声道数,配合registerAudioObserver使用默认单声道(混音前数据不支持该参数设置)

参数
numChannel声道数,必须是com::alivc::rtc::AliRtcEngine::AliRtcAudioNumChannel

◆ setSubscribeAudioSampleRate()

abstract void com.alivc.rtc.AliRtcEngine.setSubscribeAudioSampleRate ( AliRtcAudioSampleRate  sampleRate)
abstract

设置回调音频采样率,配合registerAudioObserver使用(混音前数据不支持该参数设置)

参数
sampleRate采样率,必须是com::alivc::rtc::AliRtcEngine::AliRtcAudioSampleRate

◆ registerAudioObserver()

abstract void com.alivc.rtc.AliRtcEngine.registerAudioObserver ( AliRtcAudioType  type,
AliRtcAudioObserver  observer 
)
abstract

注册音频数据输出

参数
type音频数据类型,详见com::alivc::rtc::AliRtcEngine::AliRtcAudioType
observer音频数据回调接收对象,详见com::alivc::rtc::AliRtcEngine::AliRtcAudioObserver

◆ registerAudioVolumeObserver()

abstract void com.alivc.rtc.AliRtcEngine.registerAudioVolumeObserver ( AliRtcAudioVolumeObserver  observer)
abstract

注册音量数据输出对象

参数
observer音量数据接收对象,详见com::alivc::rtc::AliRtcEngine::AliRtcAudioVolumeObserver

◆ unRegisterAudioObserver()

abstract void com.alivc.rtc.AliRtcEngine.unRegisterAudioObserver ( AliRtcAudioType  type)
abstract

取消注册音频数据输出对象

参数
type音频数据类型,详见com::alivc::rtc::AliRtcEngine::AliRtcAudioType

◆ registerVideoSampleObserver()

abstract void com.alivc.rtc.AliRtcEngine.registerVideoSampleObserver ( AliRtcVideoObserver  observer)
abstract

注册视频数据输出对象

参数
observer视频数据输出对象

◆ getVideoCaptureData()

abstract boolean com.alivc.rtc.AliRtcEngine.getVideoCaptureData ( AliRtcVideoTrack  track,
AliRtcVideoSample  videoSample 
)
abstract

主动获取采集数据,onGetIfUserFetchObserverData 返回true时有效

参数
track需要设置的track
返回
  • null: 没有数据
  • 非null: 获取成功

◆ getVideoPreEncoderData()

abstract boolean com.alivc.rtc.AliRtcEngine.getVideoPreEncoderData ( AliRtcVideoTrack  track,
AliRtcVideoSample  videoSample 
)
abstract

主动获取编码前数据,onGetIfUserFetchObserverData 返回true时有效

参数
track需要设置的track
返回
  • null: 没有数据
  • 非null: 获取成功

◆ getVideoRenderData()

abstract boolean com.alivc.rtc.AliRtcEngine.getVideoRenderData ( String  uid,
AliRtcVideoTrack  track,
AliRtcVideoSample  videoSample 
)
abstract

主动获取拉流数据,onGetIfUserFetchObserverData 返回true时有效

参数
uid用户ID。从App server分配的唯一标示符
track需要设置的track
返回
  • null: 没有数据
  • 非null: 获取成功

◆ registerLocalVideoTextureObserver()

abstract void com.alivc.rtc.AliRtcEngine.registerLocalVideoTextureObserver ( AliRtcTextureObserver  observer)
abstract

注册本地相机流视频OpenGL纹理数据观测器

参数
observerOpenGL纹理数据观测器。非空值,传空调用失败。详见 com::alivc::rtc::AliRtcEngine::AliRtcTextureObserver
注解
  • 成功注册本地相机流视频OpenGL纹理数据观测器后,SDK 会在捕捉到每个视频帧时,触发你在 AliRtcTextureObserver 接口中实现的回调
  • 该接口只能对本地相机流视频有效

◆ setExternalVideoSource()

abstract void com.alivc.rtc.AliRtcEngine.setExternalVideoSource ( boolean  enable,
boolean  useTexture,
AliRtcVideoTrack  streamType,
AliRtcRenderMode  renderMode 
)
abstract

启用外部视频输入源

参数
enable
  • true 开启
  • false 关闭
useTexture是否输入纹理数据
  • true 纹理数据
  • false 非纹理数据
streamType流类型,详见 com::alivc::rtc::AliRtcEngine::AliRtcVideoTrack
  • AliRtcVideoTrackCamera 外部输入视频数据走相机流通道,如果当前相机采集打开中,调用该接口设置enable为true,sdk会替换掉相机采集
  • AliRtcVideoTrackScreen 外部输入视频数据走屏幕流通道,如果当前屏幕共享采集打开中,调用该接口设置enable为true,sdk会替换掉屏幕共享采集
renderMode处理模式,外部输入视频源宽高比和推流profile不一致时,会按照对应的rendermode做对应处理,详见 com::alivc::rtc::AliRtcEngine::AliRtcRenderMode
  • AliRtcRenderModeAuto 自动(默认) 如果外部输入的视频宽高比和推流设置的宽高比不一致时,维持外部输入的视频宽高比,等比例缩放宽高到推流设置的宽高范围内,注意此模式下为了保证原始视频的比例和内容完整性,会导致实际推流的分辨率和设置的不一致
  • AliRtcRenderModeStretch 拉伸平铺,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频拉伸到推流设置的比例,画面会变形
  • AliRtcRenderModeFill 填充黑边,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频上下或者左右填充黑边
  • AliRtcRenderModeCrop 裁剪,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频宽或者高进行裁剪,画面内容会丢失
返回
  • 0: 成功
  • 非0: 失败

◆ pushExternalVideoFrame()

abstract int com.alivc.rtc.AliRtcEngine.pushExternalVideoFrame ( AliRtcRawDataFrame  aliRawDataFrame,
AliRtcVideoTrack  streameType 
)
abstract

输入视频数据

参数
aliRawDataFrame帧数据,详见 com::alivc::rtc::AliRtcEngine::AliRtcRawDataFrame
streameType流类型,详见 com::alivc::rtc::AliRtcEngine::AliRtcVideoTrack
  • AliRtcVideoTrackCamera 外部输入视频数据走相机流通道
  • AliRtcVideoTrackScreen 外部输入视频数据走屏幕流通道
返回
  • 0: 成功
  • 非0: 失败

◆ startAudioCapture() [1/2]

abstract int com.alivc.rtc.AliRtcEngine.startAudioCapture ( )
abstract

开启音频采集

此接口可以控制提前打开音频采集,如果不设置,则SDK会自动控制音频采集设备:

返回
  • 0: 成功
  • 非0: 返回错误码
注解
  • 调用此接口后,离会后采集设备保持开启状态

◆ startAudioCapture() [2/2]

abstract int com.alivc.rtc.AliRtcEngine.startAudioCapture ( boolean  keepAlive)
abstract

开启音频采集

此接口可以控制提前打开音频采集,如果不设置,则SDK会自动控制音频采集设备:

参数
keepAlivetrue: 离会后采集设备保持开启状态;false: 离会后采集设备关闭
返回
  • 0: 成功
  • 非0: 返回错误码

◆ stopAudioCapture()

abstract int com.alivc.rtc.AliRtcEngine.stopAudioCapture ( )
abstract

关闭音频采集

返回
  • 0: 成功
  • 非0: 返回错误码
注解
调用此接口后,入会后、离会再入会,采集设备保持关闭状态

◆ startAudioPlayer()

abstract int com.alivc.rtc.AliRtcEngine.startAudioPlayer ( )
abstract

打开音频播放设备

返回
  • 0: 成功
  • 非0: 返回错误码
注解
此接口可以控制提前打开音频播放,如果不设置,则SDK会在订阅到音频流后自动打开音频播放

◆ stopAudioPlayer()

abstract int com.alivc.rtc.AliRtcEngine.stopAudioPlayer ( )
abstract

关闭音频播放设备

返回
  • 0: 成功
  • 非0: 返回错误码
注解
此接口可以控制关闭音频播放,与startAudioPlayer对应

◆ startAudioAccompany()

abstract int com.alivc.rtc.AliRtcEngine.startAudioAccompany ( String  fileName,
boolean  onlyLocalPlay,
boolean  replaceMic,
int  loopCycles 
)
abstract

开始伴奏混音

参数
fileName伴奏文件路径
onlyLocalPlay是否只本地播放
replaceMic是否替换掉MIC
loopCycles循环次数,可以设置-1(无限循环)或者>0的正整数次,其他值无效
返回
  • 0: 成功
  • 非0: 返回错误码
注解
异步接口,可通过AliRtcEngineNotify#onAudioPlayingStateChanged监听播放器状态

◆ stopAudioAccompany()

abstract int com.alivc.rtc.AliRtcEngine.stopAudioAccompany ( )
abstract

停止伴奏混音

返回
  • 0: 成功
  • 非0: 返回错误码

◆ setAudioAccompanyVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioAccompanyVolume ( int  volume)
abstract

设置伴奏音量

参数
volume伴奏音量,取值范围[0, 100]
返回
  • 0: 成功
  • 非0: 返回错误码
注解
同时设置伴奏本地播放音量与伴奏推流音量

◆ setAudioAccompanyPublishVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioAccompanyPublishVolume ( int  volume)
abstract

设置伴奏推流音量

参数
volume伴奏推流音量,取值范围[0,100]
返回
  • 0: 成功
  • 非0: 返回错误码

◆ getAudioAccompanyPublishVolume()

abstract int com.alivc.rtc.AliRtcEngine.getAudioAccompanyPublishVolume ( )
abstract

获取伴奏推流音量

返回
  • [0, 100]: 成功
  • 其他值: 返回错误码

◆ setAudioAccompanyPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioAccompanyPlayoutVolume ( int  volume)
abstract

设置伴奏本地播放音量

参数
volume伴奏本地播放音量,取值范围[0,100]
返回
  • 0: 成功
  • 非0: 返回错误码

◆ getAudioAccompanyPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.getAudioAccompanyPlayoutVolume ( )
abstract

获取伴奏本地播放音量

返回
  • [0, 100]: 成功
  • 其他值: 返回错误码

◆ pauseAudioAccompany()

abstract int com.alivc.rtc.AliRtcEngine.pauseAudioAccompany ( )
abstract

暂停伴奏混音

返回
  • 0: 成功
  • 非0: 返回错误码

◆ resumeAudioAccompany()

abstract int com.alivc.rtc.AliRtcEngine.resumeAudioAccompany ( )
abstract

重新开始伴奏混音

返回
  • 0: 成功
  • 非0: 返回错误码

◆ getAudioAccompanyDuration()

abstract int com.alivc.rtc.AliRtcEngine.getAudioAccompanyDuration ( )
abstract

获取伴奏文件时长, 单位为毫秒

返回
  • >=0: 伴奏文件时长
  • <0: 返回错误码

◆ getAudioAccompanyCurrentPosition()

abstract int com.alivc.rtc.AliRtcEngine.getAudioAccompanyCurrentPosition ( )
abstract

获取伴奏文件播放进度,单位为毫秒

返回
  • >=0: 伴奏文件播放进度
  • <0: 返回错误码

◆ setAudioAccompanyPosition()

abstract int com.alivc.rtc.AliRtcEngine.setAudioAccompanyPosition ( int  posMs)
abstract

设置伴奏文件的播放位置

参数
posMs进度条位置,单位为毫秒
返回
  • 0: 成功
  • 非0: 返回错误码

◆ preloadAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.preloadAudioEffect ( int  soundId,
String  filePath 
)
abstract

预加载音效文件

参数
soundId用户给该音效文件分配的ID
filePath音效文件路径,支持本地文件和网络url
返回
  • 0:成功
  • 非0:失败
注解
音效相关接口为同步接口, 建议使用本地文件

◆ unloadAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.unloadAudioEffect ( int  soundId)
abstract

删除预加载的音效文件

参数
soundId用户给该音效文件分配的ID
返回
  • 0:成功
  • 非0:失败
注解
音效soundId应与预加载preloadAudioEffect时传入的ID相同

◆ playAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.playAudioEffect ( int  soundId,
String  filePath,
int  cycles,
boolean  publish 
)
abstract

开始播放音效

开始播放音效接口,可以多次调用该方法传入不同的soundId和filePath,同时播放多个音效文件,音效文件播放结束后,SDK 会触发AliRtcEngineNotify#onAudioEffectFinished回调

参数
soundId用户给该音效文件分配的ID,每个音效均有唯一的ID,如果你已通过 preloadAudioEffect将音效加载至内存,确保这里的soundId与preloadAudioEffect设置的soundId相同
filePath文件路径,支持本地文件和网络url
cycles音效循环播放次数
  • ≥0:循环播放次数,例如,设置3表示总共播放3次
  • -1:无限循环播放
publish是否将音效传到远端
  • true:发布,本地用户和远端用户都能听到音效
  • false:不发布,只有本地用户能听到音效
返回
  • 0:成功
  • 非0:失败

◆ stopAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.stopAudioEffect ( int  soundId)
abstract

停止播放音效

参数
soundId用户给该音效文件分配的ID,每个音效均有唯一的ID,如果你已通过 preloadAudioEffect将音效加载至内存,确保这里的soundId与preloadAudioEffect设置的soundId相同
返回
  • 0:成功
  • 非0:失败

◆ stopAllAudioEffects()

abstract int com.alivc.rtc.AliRtcEngine.stopAllAudioEffects ( )
abstract

停止播放所有音效

返回
  • 0:成功
  • 非0:失败

◆ setAudioEffectPublishVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectPublishVolume ( int  soundId,
int  volume 
)
abstract

设置音效推流混音音量

参数
soundId用户给该音效文件分配的ID
volume推流混音音量,范围是:[0, 100],默认值:50
返回
  • 0:成功
  • 非0:失败
注解
该方法需要在playAudioEffect后调用

◆ getAudioEffectPublishVolume()

abstract int com.alivc.rtc.AliRtcEngine.getAudioEffectPublishVolume ( int  soundId)
abstract

获取音效推流混音音量

参数
soundId用户给该音效文件分配的ID
返回
  • [0, 100]:音效推流混音音量
  • 其他:错误值
注解
音效推流混音音量有效范围为:[0, 100],该方法需要在playAudioEffect后调用

◆ setAudioEffectPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioEffectPlayoutVolume ( int  soundId,
int  volume 
)
abstract

设置音效本地播放音量

参数
soundId用户给该音效文件分配的ID
volume音效本地播放音量,范围:[0, 100],默认值:50
返回
  • 0:成功
  • 非0:失败
注解
该方法需要在playAudioEffect后调用

◆ getAudioEffectPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.getAudioEffectPlayoutVolume ( int  soundId)
abstract

获取音效本地播放音量

参数
soundId用户给该音效文件分配的ID
返回
  • [0, 100]:音效本地播放音量
  • 其他:错误值
注解
音效本地播放音量有效范围为:[0, 100],该方法需要在playAudioEffect后调用

◆ setAllAudioEffectsPublishVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAllAudioEffectsPublishVolume ( int  volume)
abstract

设置所有音效推流混音音量

参数
volume推流混音音量,范围是:[0, 100],默认值:50
返回
  • 0:成功
  • 非0:失败

◆ setAllAudioEffectsPlayoutVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAllAudioEffectsPlayoutVolume ( int  volume)
abstract

设置所有音效本地播音量

参数
volume音效本地播放音量,范围:[0, 100],默认值:50
返回
  • 0:成功
  • 非0:失败

◆ pauseAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.pauseAudioEffect ( int  soundId)
abstract

暂停音效

参数
soundId用户给该音效文件分配的ID
返回
  • 0:成功
  • 非0:失败

◆ pauseAllAudioEffects()

abstract int com.alivc.rtc.AliRtcEngine.pauseAllAudioEffects ( )
abstract

暂停所有音效

返回
  • 0:成功
  • 非0:失败

◆ resumeAudioEffect()

abstract int com.alivc.rtc.AliRtcEngine.resumeAudioEffect ( int  soundId)
abstract

恢复指定音效文件

参数
soundId用户给该音效文件分配的ID
返回
  • 0:成功
  • 非0:失败

◆ resumeAllAudioEffects()

abstract int com.alivc.rtc.AliRtcEngine.resumeAllAudioEffects ( )
abstract

恢复所有音效文件

返回
  • 0:成功
  • 非0:失败

◆ enableAudioDTX()

abstract int com.alivc.rtc.AliRtcEngine.enableAudioDTX ( boolean  enable)
abstract

是否开启语音活动检测

参数
enabletrue表示开启, false表示关闭, 默认false
返回
  • 0: 成功
  • <0: 失败
注解
  • 入会前调用或入会后推音频流之前调用有效。
  • 开启语音活动检测可以在检测到没有语音的情况下,每隔400ms编码发送静音包,节省用户流量。

◆ enableAudioAMD()

abstract int com.alivc.rtc.AliRtcEngine.enableAudioAMD ( boolean  enable)
abstract

开启音频静音检测(Audio Mute Detection, 静音不发送音频包)

参数
enabletrue表示开启,false表示关闭,默认false;
返回
  • 0: 成功
  • <0: 失败
注解

◆ enableEarBack()

abstract int com.alivc.rtc.AliRtcEngine.enableEarBack ( boolean  enable)
abstract

启用耳返

参数
enable是否启用耳返 true:开启; false:关闭 默认: 关闭
返回
  • 0:成功
  • 非0:失败
注解
所有设备都支持耳返,建议戴耳机的情况下开启耳返,效果更好

◆ setEarBackVolume()

abstract int com.alivc.rtc.AliRtcEngine.setEarBackVolume ( int  volume)
abstract

设置耳返音量

参数
volume音量大小,范围是:[0 ~ 100],默认值为100
返回
  • 0:成功
  • 非0:失败

◆ startIntelligentDenoise()

abstract int com.alivc.rtc.AliRtcEngine.startIntelligentDenoise ( )
abstract

开启智能降噪

返回
  • 0: 成功
  • 非0: 返回错误码
注解
  • 智能降噪以插件形式提供,调用该接口前,请确保已集成了AliRTC提供的libPluginMindRTC.so
  • 此接口可以通话过程中控制打开智能降噪功能,通话过程中可以支持开启和关闭智能降噪
  • 默认关闭,开启后可能导致功耗增加,智能降噪适合于会议,教育等语音通讯为主的场景,不适合有背景音乐的场景

◆ stopIntelligentDenoise()

abstract void com.alivc.rtc.AliRtcEngine.stopIntelligentDenoise ( )
abstract

关闭智能降噪

注解
此接口可以通话过程中控制关闭智能降噪功能

◆ enableMusicMode()

abstract int com.alivc.rtc.AliRtcEngine.enableMusicMode ( boolean  enable)
abstract

启用音乐模式

参数
enable是否启用音乐模式, true表示开启, false表示关闭, 默认关闭
返回
  • 0: 成功
  • <0: 失败
注解
此接口支持会议中过程中动态开启关闭,对有音乐的场景有一定程度的音质提升,最佳的音乐场景体检建议通过接口setAudioProfile中设置场景为AliRtcAudioScenario::AliRtcSceneMusicMode来实现;

◆ setChannelProfile()

abstract int com.alivc.rtc.AliRtcEngine.setChannelProfile ( AliRTCSdkChannelProfile  channelProfile)
abstract

设置频道模式

根据业务需求可以配置不同的频道模式,AliRTC会根据不用的频道模式模式采用不用的策略,目前主要提供通信模式(默认)、互动模式、低延迟互动直播模式

【通信模式 AliRTCSdkCommunication】

  • 该适用于音视频通话场景,所有加入频道的人都可以推/拉音视频流
  • 该模式典型的应用场景:1v1语音聊天、1v1视频聊天、远程问诊、远程面试等

【互动模式 AliRTCSdkInteractiveLive】

  • 该模式适用于互动场景,在该模式下有主播和观众两种角色,主播、观众角色可以进行切换,可以通过 setClientRole 进行设置。
    • 主播角色:可以推流、拉流
    • 观众角色:只可以拉流
  • 该模式典型的应用场景:语聊房、在线教育大班课等

【低延迟互动直播模式 AliRTCSdkInteractiveWithLowLatencyLive】

  • 该模式适用于大型直播场景,与互动模式的差别是观众端使用 startLiveStreaming 进行拉流
  • 该模式典型应用场景:千人大方会、在线直播培训等
参数
channelProfile频道模式类型,详细请参考 com::alivc::rtc::AliRtcEngine::AliRTCSdkChannelProfile
返回
  • 0: 成功
  • <0: 失败
    • -1: SDK未初始化或已销毁
注解
  • 相同频道内的用户必须使用同一种频道场景
  • 该方法只在入会之前调用有效,会议中不可以重新设置,leaveChannel 后可以重新设置

◆ setClientRole()

abstract int com.alivc.rtc.AliRtcEngine.setClientRole ( AliRTCSdkClientRole  clientRole)
abstract

设置互动模式下的用户角色

该方法在 AliRTCSdkChannelProfile 设置为 AliRTCSdkChannelProfile#AliRTCSdkInteractiveLive 时有效

该方法为异步方法,可以在入会前调用,也可以在入会后调用进行用户角色切换,默认角色为:观众角色

参数
clientRole用户角色类型 com::alivc::rtc::AliRtcEngine::AliRTCSdkClientRole
返回
  • 0: 成功
  • <0: 失败

◆ refreshAuthInfo()

abstract int com.alivc.rtc.AliRtcEngine.refreshAuthInfo ( AliRtcAuthInfo  authInfo)
abstract

刷新鉴权信息

该方法用于更新鉴权信息 com::alivc::rtc::AliRtcAuthInfo ,主要为了防止鉴权过期,导致推流失败,当我们收到 AliRtcEngineNotify#onAuthInfoWillExpire回调时,应用应当更新鉴权信息

参数
authInfo鉴权信息
返回
  • 0: 成功
  • <0: 失败

◆ getCurrentClientRole()

abstract AliRTCSdkClientRole com.alivc.rtc.AliRtcEngine.getCurrentClientRole ( )
abstract

获取当前用户角色

返回
AliRTCSdkClientRole 当前用户角色类型

◆ muteAllRemoteAudioPlaying()

abstract int com.alivc.rtc.AliRtcEngine.muteAllRemoteAudioPlaying ( boolean  mute)
abstract

停止/恢复远端的所有音频流的播放

参数
mute
  • true: 停止播放
  • false: 恢复播放
返回
  • 0: 成功
  • 非0: 失败
注解
拉流和解码不受影响, 支持joinChannel之前和之后设置

◆ muteAllRemoteVideoRendering()

abstract int com.alivc.rtc.AliRtcEngine.muteAllRemoteVideoRendering ( boolean  mute)
abstract

停止/恢复远端的所有视频流的渲染

参数
mute
  • true: 停止渲染
  • false: 恢复渲染
返回
  • 0: 成功
  • 非0: 失败
注解
拉流和解码不受影响。支持joinChannel之前和之后设置

◆ startNetworkQualityProbeTest()

abstract int com.alivc.rtc.AliRtcEngine.startNetworkQualityProbeTest ( )
abstract

开启网络质量探测

网络质量探测需要在未入会 joinChannel 情况下调用,探测结果在 AliRtcEngineEventListener#onNetworkQualityProbeTest 中回调

返回
  • 0: 成功
  • <0: 失败

◆ stopNetworkQualityProbeTest()

abstract int com.alivc.rtc.AliRtcEngine.stopNetworkQualityProbeTest ( )
abstract

停止网络质量探测

返回
  • 0: 成功
  • <0: 失败

◆ startRecord()

abstract boolean com.alivc.rtc.AliRtcEngine.startRecord ( AliRtcRecordType  recordType,
AliRtcRecordFormat  recordFormat,
String  filePath,
AliRtcRecordAudioConfig  audioConfig,
AliRtcRecordVideoConfig  videoConfig 
)
abstract

开始录制

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

参数
recordType录制类型, 详细定义见com::alivc::rtc::AliRtcEngine::AliRtcRecordType
recordFormat录制文件格式, 详细定义见com::alivc::rtc::AliRtcEngine::AliRtcRecordFormat
filePath文件路径
audioConfig音频设置, 详细定义见com::alivc::rtc::AliRtcEngine::AliRtcRecordAudioConfig
videoConfig视频设置, 详细定义见com::alivc::rtc::AliRtcEngine::AliRtcRecordVideoConfig
返回
  • true : 成功
  • false : 失败

◆ stopRecord()

abstract void com.alivc.rtc.AliRtcEngine.stopRecord ( )
abstract

停止录制

SDK提供了停止录制的功能

◆ setPublishVideoStreamAttribute()

abstract int com.alivc.rtc.AliRtcEngine.setPublishVideoStreamAttribute ( AliRtcVideoTrack  video_track,
byte[]  attr 
)
abstract

设置视频流属性

参数
video_track视频流类型,详细见com::alivc::rtc::AliRtcEngine::AliRtcVideoTrack
attr视频流属性
返回
  • 0 : 成功
  • <0 : 失败
注解
已废弃使用。

◆ startLiveStreaming()

abstract void com.alivc.rtc.AliRtcEngine.startLiveStreaming ( AliRtcAuthInfo  aliRtcAuthInfo)
abstract

开始低延迟互动直播拉流

该方法仅在低延迟互动模式 AliRTCSdkChannelProfile::AliRTCSdkInteractiveWithLowLatencyLive 下,角色为观众 AliRTCSdkClientRole::AliRTCSdkLive 时调用有意义

参数
aliRtcAuthInfo入会鉴权信息
注解
该方法调用后会触发 AliRtcEngineEventListener#onLiveStreamingSignalingResult 回调
该接口已废弃

◆ stopLiveStreaming()

abstract int com.alivc.rtc.AliRtcEngine.stopLiveStreaming ( )
abstract

停止直播拉流

返回
  • 0: 成功
  • <0: 失败
注解
该方法仅在低延迟互动模式下,角色为观众时调用有意义
该接口已废弃

◆ setLiveStreamingViewConfig()

abstract int com.alivc.rtc.AliRtcEngine.setLiveStreamingViewConfig ( AliRtcVideoCanvas  aliVideoCanvas,
String  uid 
)
abstract

设置低延迟互动直播拉流渲染窗口

参数
aliVideoCanvas渲染参数,包含了窗口以及渲染方式
uid用户id,该参数即将废弃,可以传空字符串
返回
  • 0: 成功
  • <0: 失败
注解
该接口已废弃

◆ startPublishLiveStream()

abstract int com.alivc.rtc.AliRtcEngine.startPublishLiveStream ( String  streamUrl,
AliRtcLiveTranscodingParam  transcoding 
)
abstract

开启旁路直播

SDK提供了开启旁路直播的功能,可以把实时音视频流经过混流、混音处理转为标准直播流并推送至指定CDN供应商

参数
streamUrl推流地址
transcoding推流所需参数, 详细定义见com::alivc::rtc::AliRtcLiveTranscodingParam
返回
  • 0 : 成功
  • 非0 : 失败
    • ERR_INNER(-1) : SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用
    • 其他 : 返回值参考官网错误码

◆ updatePublishLiveStream()

abstract int com.alivc.rtc.AliRtcEngine.updatePublishLiveStream ( String  streamUrl,
AliRtcLiveTranscodingParam  transcoding 
)
abstract

更新旁路直播相关参数

SDK提供了更新旁路直播的功能,用于实时更新旁路直播参数

参数
streamUrl推流地址
transcoding推流所需参数, 详细定义见com::alivc::rtc::AliRtcLiveTranscodingParam
返回
  • 0 : 成功
  • 非0 : 失败
    • ERR_INNER(-1) : SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用
    • 其他 : 返回值参考官网错误码

◆ stopPublishLiveStream()

abstract int com.alivc.rtc.AliRtcEngine.stopPublishLiveStream ( String  streamUrl)
abstract

停止旁路直播

SDK提供了停止旁路直播的功能

参数
streamUrl推流地址
返回
  • 0 : 成功
  • 非0 : 失败
    • ERR_INNER(-1) : SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用
    • 其他 : 返回值参考官网错误码

◆ getPublishLiveStreamState()

abstract AliRtcLiveTranscodingState com.alivc.rtc.AliRtcEngine.getPublishLiveStreamState ( String  streamUrl)
abstract

获取旁路直播状态

参数
streamUrl推流地址
返回
路直播状态

◆ setExternalAudioSource()

abstract int com.alivc.rtc.AliRtcEngine.setExternalAudioSource ( boolean  enable,
int  sampleRate,
int  channels 
)
abstract

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

参数
enabletrue 开启,false 关闭
sampleRate采样率 16k 48k...
channels声道数 1:单声道; 2:双声道
返回
  • >=0: 成功
  • <0: 失败

◆ pushExternalAudioFrameRawData()

abstract int com.alivc.rtc.AliRtcEngine.pushExternalAudioFrameRawData ( byte[]  samples,
int  samplesLength,
long  timestamp 
)
abstract

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

参数
samples音频数据buffer
samplesLength音频数据buffer长度
timestamp时间戳
返回
  • <0: 表示失败;
  • 0: 表示成功;
  • 返回值为0x01070101时,需要在间隔投递数据时间长度后再次重试投递
注解
为了保证语音连续性,sdk内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回0x01070101时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧;

◆ setExternalAudioVolume()

abstract int com.alivc.rtc.AliRtcEngine.setExternalAudioVolume ( int  vol)
abstract

设置外部音频音量

参数
vol音量,取值范围[0,100]
返回
  • >=0: 成功
  • <0: 失败
注解
同时设置外部音频输入音量与外部音频播放音量

◆ getExternalAudioVolume()

abstract int com.alivc.rtc.AliRtcEngine.getExternalAudioVolume ( )
abstract

获取混音音量

返回
  • >=0: 正常混音音量,范围[0-100]
  • <0: 失败

◆ setMixedWithMic()

abstract int com.alivc.rtc.AliRtcEngine.setMixedWithMic ( boolean  mixed)
abstract

设置是否与麦克风采集音频混合

参数
mixed
  • true: 混音
  • false: 完全替换麦克风采集数据
返回
  • 0: 成功
  • 非0: 失败

◆ setExteranlAudioRender()

abstract int com.alivc.rtc.AliRtcEngine.setExteranlAudioRender ( boolean  enable,
int  sampleRate,
int  channelsPerFrame 
)
abstract

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

参数
enable
  • true: 开启
  • false: 关闭
sampleRate采样率 16000 48000...
channelsPerFrame声道数 1:单声道; 2:双声道
返回
  • >=0: 成功
  • <0: 失败

◆ pushExternalAudioRenderRawData()

abstract int com.alivc.rtc.AliRtcEngine.pushExternalAudioRenderRawData ( byte[]  audioSamples,
int  sampleLength,
int  sampleRate,
int  channelsPerFrame,
long  timestamp 
)
abstract

输入外部音频数据本地播放

参数
audioSamples音频数据buffer
sampleLength音频数据buffer长度
sampleRate输入音频数据的采样率
channelsPerFrame输入音频数据的声道数
timestamp时间戳
返回
  • <0: 表示失败;
  • 0: 表示成功;
  • 返回值为0x01070101时,需要在间隔投递数据时间长度后再次重试投递
注解
为了保证语音连续性,sdk内部会有buffer缓存送进来的音频数据,以每次送10ms数据为例,如果返回0x01070101时,说明内部缓冲区已满,建议等待20ms后再重新送当前数据帧;

◆ isBeautifierAvailable()

abstract boolean com.alivc.rtc.AliRtcEngine.isBeautifierAvailable ( )
abstract

美颜功能是否有效

返回
  • true: 美颜功能有效
  • false: 无效

◆ isBeautifierEnabled()

abstract boolean com.alivc.rtc.AliRtcEngine.isBeautifierEnabled ( )
abstract

美颜功能是否开启

返回
  • true: 美颜功能已开启
  • false: 已关闭

◆ setBeautyEffect()

abstract int com.alivc.rtc.AliRtcEngine.setBeautyEffect ( boolean  enable,
AliRtcBeautyConfig  config 
)
abstract

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

参数
enable
  • true: 开启美颜功能
  • false: 关闭美颜功能
config美颜效果参数, 详细定义见com::alivc::rtc::AliRtcEngine::AliRtcBeautyConfig
返回
  • 0 :成功
  • < 0 :失败

◆ snapshotVideo()

abstract int com.alivc.rtc.AliRtcEngine.snapshotVideo ( String  userId,
AliRtcVideoTrack  trackType 
)
abstract

视频截图功能

参数
userId用户ID, userId 为null或者为""代表本地用户
trackType视频流类型,只支持AliRtcVideoTrack#AliRtcVideoTrackCameraAliRtcVideoTrack#AliRtcVideoTrackScreen
返回
注解
视频截图功能为异步接口, 通过监听AliRtcEngineEventListener#onSnapshotComplete回调获取当前截图画面。

◆ sendMediaExtensionMsg()

abstract int com.alivc.rtc.AliRtcEngine.sendMediaExtensionMsg ( byte[]  message,
int  repeatCount 
)
abstract

发送媒体扩展信息

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

  • 使用媒体扩展信息传递时间戳,计算端到端的网络延迟,或者跟自身其他业务做数据同步
  • 使用媒体扩展信息传递位控制信息。目前可以传递8 Byte数据,即64位,每一位或几位可以表示控制信息,用于自身业务上的指令传输
参数
message媒体扩展信息,长度限制为最大8字节
repeatCount重复次数,代表消息冗余度,用于防止网络丢包导致的消息丢失
返回
  • 0: 成功
  • <0: 失败
    • ERR_INNER(-1): SDK内部错误,可能的情况为SDK未初始化或者SDK销毁后调用
注解
使用媒体扩展信息时需要复用音视频数据通道,因此必须控制自定义消息的发送频率和消息数据长度,使用限制如下:
  • 每秒最多发送30条消息
  • 为了不影响媒体数据的传输质量,自定义消息体长度限制为8 Byte,可以用来传输时间戳,位控制信息等
  • sendMediaExtensionMsg函数中repeatCount参数为自定义消息冗余度,若大于1,则会发送多次,防止网络丢包导致的消息丢失,此时房间里的其他人也会收到多次相同的消息,需要去重
  • 发送的自定义消息,在旁路直播时,房间里的订阅者也一样会收到
  • 目前H5端不支持发送和接收媒体扩展信息

◆ addVideoWatermark()

abstract int com.alivc.rtc.AliRtcEngine.addVideoWatermark ( AliRtcVideoTrack  track,
String  imageUrl,
AliRtcWatermarkConfig  config 
)
abstract

添加水印

SDK提供了添加水印的功能,适用于推送屏幕流或者相机流场景

参数
track视频流类型,只支持AliRtcVideoTrack#AliRtcVideoTrackCameraAliRtcVideoTrack#AliRtcVideoTrackScreen
imageUrl水印图片路径
config水印配置,详细见com::alivc::rtc::AliRtcEngine::AliRtcWatermarkConfig
返回
  • 0 : 成功
  • -1 : 失败
注解
目前水印图片仅仅支持png格式

◆ clearVideoWatermark()

abstract int com.alivc.rtc.AliRtcEngine.clearVideoWatermark ( AliRtcVideoTrack  track)
abstract

清理水印

SDK提供了清理水印的功能,适用于推送屏幕流或者相机流场景

参数
track视频流类型,只支持AliRtcVideoTrack#AliRtcVideoTrackCameraAliRtcVideoTrack#AliRtcVideoTrackScreen
返回
  • 0 : 成功
  • -1 : 失败

◆ setPublishImage()

abstract int com.alivc.rtc.AliRtcEngine.setPublishImage ( String  imageUrl)
abstract

设置上行弱网时的替代图片

参数
imageUrl静态png图片路径
返回
  • 0: 成功
  • 其他: 失败

◆ respondMessageNotification()

abstract int com.alivc.rtc.AliRtcEngine.respondMessageNotification ( String  tid,
String  contentType,
String  content 
)
abstract

发送下行通道消息(反馈消息处理结果)

参数
tid信息id(自定义id)
contentType信息类型(自定义类型)
content信息内容
返回
  • 0: 成功
  • <0: 失败
注解
接收到下行通道消息 AliRtcEngineNotify#onMessage 后,使用该接口发送下行接收反馈消息
已废弃使用

◆ uplinkChannelMessage()

abstract int com.alivc.rtc.AliRtcEngine.uplinkChannelMessage ( String  contentType,
String  content 
)
abstract

发送上行通道消息(saas客户端发送信令消息到saas服务端)

参数
contentType信息类型(自定义类型)
content信息内容
返回
  • 0: 成功
  • <0: 失败
注解
使用该接口发送上行通道消息成功后,接收反馈消息见 AliRtcEngineNotify#onUplinkChannelMessage
已废弃使用

◆ postFeedback()

abstract void com.alivc.rtc.AliRtcEngine.postFeedback ( String  uid,
String  channelId,
String  description,
AliRtcFeedbackType  type,
long  timeStamp 
)
abstract

SDK问题反馈

参数
uid问题用户id (允许为null)
channelId问题频道id (允许为null)
description问题描述(支持中英文, 必填)
type问题类型,参考com::alivc::rtc::AliRtcEngine::AliRtcFeedbackType
timeStamp问题发生的时间戳 (Unix时间戳,大致时间,无需特别精确,可以为0)
注解
该接口在入会前、会中、离会后均可以调用,推荐会中或者离会前调用,尽可能带上所有参数信息

◆ createChannel()

abstract AliRtcEngine com.alivc.rtc.AliRtcEngine.createChannel ( String  extras)
abstract

获取AliRtcEngine子频道实例

参数
extrasextras,参考文档:extras参数配置说明
注解
创建的子频道实例,需要通过destroyChannel进行释放
返回
AliRtcEngine类实例

◆ destroyChannel()

abstract void com.alivc.rtc.AliRtcEngine.destroyChannel ( )
abstract

销毁子频道

使用joinChannel 加入的是主频道,不需要调用destroyChannel销毁

◆ getCurrentConnectionStatus()

abstract AliRtcConnectionStatus com.alivc.rtc.AliRtcEngine.getCurrentConnectionStatus ( )
abstract

获取当前网络链接状态

返回
当前链接状态, 参考com::alivc::rtc::AliRtcEngine::AliRtcConnectionStatus
注解
网络链接状态发生变化时,SDK会通过AliRtcEngineEventListener#onConnectionStatusChange回调通知
入会前调用此接口,均返回状态 AliRtcConnectionStatus#AliRtcConnectionStatusDisconnected

◆ requestAudioFocus()

abstract int com.alivc.rtc.AliRtcEngine.requestAudioFocus ( )
abstract

请求音频焦点

返回
  • 1:成功
  • 0:失败
注解
启动SDK时,SDK内部会请求音频焦点,一般情况下用户无需主动请求音频焦点,如用户主动调用过abandonAudioFocus,则可调用此接口恢复音频焦点

◆ abandonAudioFocus()

abstract int com.alivc.rtc.AliRtcEngine.abandonAudioFocus ( )
abstract

放弃音频焦点

返回
  • 1:成功
  • 0:失败
注解
SDK销毁过程中内部会调用此接口释放音频焦点,用户某些场景下需要主动释放音频焦点,可调用此接口释放音频焦点,释放音频焦点后,部分设备可能出现播放无声或者声音小的问题,如需恢复,可主动调用requestAudioFocus

◆ startScreenShare() [1/3]

abstract int com.alivc.rtc.AliRtcEngine.startScreenShare ( )
abstract

启动屏幕分享

返回
  • 0:成功
  • 非0:失败
注解
此接口即将废弃,建议使用新接口 startScreenShare(Intent, AliRtcScreenShareMode)

◆ startScreenShare() [2/3]

abstract int com.alivc.rtc.AliRtcEngine.startScreenShare ( Intent  intent)
abstract

启动屏幕分享

参数
intent外部创建启动屏幕分享的Activity
返回
  • 0:成功
  • 非0:失败
注解
此接口即将废弃,建议使用新接口 startScreenShare(Intent, AliRtcScreenShareMode)

◆ startScreenShare() [3/3]

abstract int com.alivc.rtc.AliRtcEngine.startScreenShare ( Intent  intent,
AliRtcScreenShareMode  screenShareMode 
)
abstract

启动屏幕分享

参数
intent外部创建启动屏幕分享的Activity,外部未创建则传null,建议传null
screenShareMode屏幕共享模式,只共享音频/视频/音视频,具体值参考AliRtcScreenShareMode
返回
  • 0:成功
  • 非0:失败

◆ stopScreenShare()

abstract int com.alivc.rtc.AliRtcEngine.stopScreenShare ( )
abstract

停止屏幕共享

返回
  • 0:成功
  • 非0:失败

◆ setAudioShareVolume()

abstract int com.alivc.rtc.AliRtcEngine.setAudioShareVolume ( int  volume)
abstract

设置共享音频的音量大小

参数
volume共享音频音量大小,取值范围[0, 100]
返回
  • 0:成功
  • 非0:失败

◆ startChannelRelay()

abstract int com.alivc.rtc.AliRtcEngine.startChannelRelay ( AliRtcChannelRelayConfiguration  configuration)
abstract

开启跨频道转推 仅在 AliRTCSdkChannelProfile#AliRTCSdkInteractiveLiveAliRTCSdkChannelProfile#AliRTCSdkInteractiveWithLowLatencyLive 模式下生效,且调用者必须已在推流中

参数
configuration频道配置信息,见com::alivc::rtc::AliRtcEngine::AliRtcChannelRelayConfiguration
返回
  • 0: 成功
  • <0: 失败
注解
发起跨频道转推需要满足三个条件
  • 会议模式为互动模式或者低延迟互动模式
  • 必须是主播角色
  • 必须在会议中

◆ updateChannelRelay()

abstract int com.alivc.rtc.AliRtcEngine.updateChannelRelay ( AliRtcChannelRelayConfiguration  configuration)
abstract

更新跨频道转推

参数
configuration频道配置信息,见com::alivc::rtc::AliRtcEngine::AliRtcChannelRelayConfiguration
返回
  • 0: 成功
  • <0: 失败

◆ stopChannelRelay()

abstract int com.alivc.rtc.AliRtcEngine.stopChannelRelay ( )
abstract

停止跨频道转推

返回
  • 0: 成功
  • <0: 失败

◆ enablePlugin()

abstract int com.alivc.rtc.AliRtcEngine.enablePlugin ( String  module_name,
String  plugin_name,
int  plugin_type,
int  op_type,
byte[]  option 
)
abstract

开启音视频处理算法插件

RTC采用插件件形式提供音视频增强及特效能力,可通过官网组件文档 进行组件下载,参考插件集成文档集成进RTC引擎;

参数
module_name插件库包名,组件文档中会有对应描述;
plugin_name插件类名,根据下载的插件库中头文件中描述进行设置 如:虚拟背景插件头文件中描述了 pluginName 为 PluginBokeh;
plugin_type插件类型,值为AliRtcPluginDataType 与AliRtcPluginOperationType组合, 如:视频前处理插件 pluginType = (AliRtcPluginDataTypeVideo << 16)|AliRtcPluginPreOperation; 如果需要修改已开启插件的pluginType,需要先进行插件关闭,再次开启;
op_type插件初始化参数类型,请阅读插件库接入文档,参考各个插件头文件中描述进行设置;
option插件初始化参数值,请阅读插件库接入文档,参考各个插件头文件中描述进行设置;
返回
  • >0: 返回注册的插件ID,插件移除及插件设置和插件信息获取需要使用此返回值;
  • 非0: 详见com::alivc::rtc::AliRtcEngine::AliRtcPluginErrorCode
    • AliRtcPluginErrorLoadError:插件库库加载失败,插件库未添加到工程中,可参考官网组件文档 按照集成文档进行集成;
    • AliRtcPluginErrorInitError: 插件初始化失败,插件类型,参数类型或参数为非法值,可参考插件集成文档检查pluginType,opType,option初始值是否符合要求;
注解
  • 入会前入会后均可调用;
  • 如果重复调用会返回之前已经注册插件ID;
  • 如果需要修改已开启插件的pluginType,需要先进行插件关闭,再次开启;

◆ removePlugin()

abstract int com.alivc.rtc.AliRtcEngine.removePlugin ( int  plugin_id)
abstract

关闭音视频处理算法插件

参数
plugin_id开启音视频处理算法插件接口调用成功后返回值;
返回
  • >0: 返回删除插件ID 即pluginId;
  • 非0: 详见com::alivc::rtc::AliRtcEngine::AliRtcPluginErrorCode
    • AliRtcPluginErrorNoFindPlugin:pluginId为非法值或重复调用关闭接口,请检查pluginId值是否为开启插件接口调用成功后返回值;
注解
  • 入会前入会后均可调用;
  • 重复调用返回 AliRtcPluginErrorNoFindPlugin 错误码;

◆ setPluginOption()

abstract int com.alivc.rtc.AliRtcEngine.setPluginOption ( int  plugin_id,
int  op_type,
byte[]  option 
)
abstract

根据插件ID设置插件

参数
plugin_id插件开启接口调用成功后返回值;
op_type设置插件参数类型,请阅读插件库接入文档,参考各个插件头文件中描述进行设置;
option设置插件参数值,请阅读插件库接入文档,参考各个插件头文件中描述进行设置;
返回
  • 0: 参数设置成功;
  • 非0: 详见com::alivc::rtc::AliRtcEngine::AliRtcPluginErrorCode
    • AliRtcPluginErrorNoFindPlugin: 未找到对应插件,pluginId 为非法值,请检查pluginId值是否为开启插件接口调用成功后返回值;
    • AliRtcPluginErrorCodeFailed:opType或option为非法值,请阅读插件库接入文档,参考各个插件头文件中设置接口描述进行设置;
注解
  • 入会前入会后均可调用;
  • opType及option 取值及范围要准守已开启插件头文件接口描述;

◆ getPluginOption()

abstract int com.alivc.rtc.AliRtcEngine.getPluginOption ( int  plugin_id,
int  op_type,
byte[]  option 
)
abstract

根据插件ID获取插件内部信息

参数
plugin_id开启插件接口调用成功后返回值;
op_type获取信息类型,请阅读插件库接入文档,参考各个插件头文件中描述进行设置;
option返回的信息写入地址,插件会根据opType类型将返回的信息重写入option,需要进行内存初始化,长度请参考接入文档及插件头文件描述;
返回
  • 0: 参数设置成功
  • 非0: 详见com::alivc::rtc::AliRtcEngine::AliRtcPluginErrorCode
    • AliRtcPluginErrorNoFindPlugin: 未找到对应插件,pluginId 为非法值,请检查pluginId值是否为开启插件接口调用成功后返回值;
    • AliRtcPluginErrorCodeFailed:opType或option为非法值,请阅读插件库接入文档,参考插件接入文档及头文件中获取插件信息接口描述进行设置;
注解
  • 入会前入会后均可调用;
  • AliRtcPluginErrorNoFindPlugin: 未找到对应插件,pluginId 为非法值,请检查pluginId值是否为开启插件接口调用成功后返回值;
  • AliRtcPluginErrorCodeFailed:opType或option为非法值,请阅读插件库接入文档,参考各个插件头文件中设置接口描述进行设置;

◆ showDebugView()

abstract void com.alivc.rtc.AliRtcEngine.showDebugView ( ViewGroup  view,
int  showType,
String  userId 
)
abstract

展示用户Debug数据

参数
view对外展示的View,由客户传入,显示样式由客户指定
showType展示类型:0: 不显示 1.音频 2.视频 3.全部;另外可以传入特殊的值来展示
userId对应用户ID

◆ enableEncryption()

abstract int com.alivc.rtc.AliRtcEngine.enableEncryption ( boolean  enable)
abstract

开启/关闭内置加解密功能:需要在入会前调用

参数
enable是否开启
返回
  • 0: 成功
  • 非0: 失败

◆ enableBackgroundExchange()

abstract int com.alivc.rtc.AliRtcEngine.enableBackgroundExchange ( boolean  enable,
String  path,
AliRtcBokehScaleModel  model 
)
abstract

开启/关闭虚拟背景替换功能

需要集成虚拟背景插件,虚拟背景简介及下载详见官网组件文档

参数
enable是否开启;
path虚拟背景本地图片路径,支持JPG,PNG 格式;
model背景图缩放模式,裁剪或缩放;
  • AliRtcBokehScaleModelCrop: 等比裁剪,当背景图像宽高比和视频数据宽高比不一致时, 为了保持等比例缩放, 会将背景图像裁剪到视频比例, 超出部分背景图片内容将会丢失;
  • AliRtcBokehScaleModelFill: 填充黑边,当背景图像宽高比和视频数据宽高比不一致时, 为了保持等比例缩放, 会对背景进行黑边填充,背景图片内容会全部保留;
返回
注解
  • 支持平台详见官网发布日志
  • 可重复调用,背景图及缩放模式与之前设置不一致,会进行实时更新;
  • 与背景虚化为替换关系,如开启虚拟背景开关后再次开启背景虚化,则只有背景虚化效果;

◆ enableBackgroundBlur()

abstract int com.alivc.rtc.AliRtcEngine.enableBackgroundBlur ( boolean  enable,
int  blurDegree 
)
abstract

开启/关闭虚拟背景虚化功能

需要集成虚拟背景插件,虚拟背景简介及下载详见官网组件文档 ; 需要下载及集成虚拟背景插件,背景替换与背景虚化不可同时使用,如开启虚拟背景开关后再次开启背景虚化,则只有背景虚化效果;

参数
enable是否开启;
blurDegree虚化程度 取值范围 [0-100];
返回
注解
  • 支持平台详见官网发布日志
  • 虚化成都范围 [0-100];
  • 可重复调用,虚化值如果与之前设置不一致,会进行实时更新;
  • 与虚拟背景为替换关系,如开启背景虚化开关后再次开启虚拟背景,则只有虚拟背景效果;