RtcEngine

public abstract class com.ss.video.rtc.engine.RtcEngine

RtcEngine接口

成员变量

类型 名称
int VIDEO_MIRROR_MODE_AUTO
int VIDEO_MIRROR_MODE_ENABLED
int VIDEO_MIRROR_MODE_DISABLED

静态函数

返回 名称
static synchronized RtcEngine create
static synchronized RtcEngine create
static synchronized RtcEngine create
static synchronized RtcEngine create
static synchronized RtcEngine createEngine
static synchronized void destroyEngine
static synchronized void destroy
static String getSdkVersion
static String getErrorDescription
static void enablePerformanceCollect

成员函数

返回 名称
abstract void setRtcEngineEventHandler
abstract int joinChannel
abstract int leaveChannel
abstract int enableLocalVideo
abstract int enableLocalAudio
abstract int startPreview
abstract int stopPreview
abstract int setupLocalVideo
abstract int setupLocalVideoRender
abstract int setupLocalVideoRender
abstract int setupLocalScreenRender
abstract int setupRemoteVideo
abstract int setupRemoteVideoRender
abstract int setupRemoteVideoRender
abstract int setupRemoteVideoRender
abstract int setupRemoteVideoRender
abstract int setupRemoteScreenRender
abstract int setupRemoteScreenRender
abstract int setLocalVideoMirrorMode
abstract boolean isLocalVideoMirrorOn
abstract int switchCamera
abstract int replaceBackground
abstract int setEnableSpeakerphone
abstract boolean isSpeakerphoneEnabled
abstract int enableAudioVolumeIndication
abstract int muteLocalAudioStream
abstract int muteLocalVideoStream
abstract int muteAllRemoteVideoStreams
abstract int setDefaultMuteAllRemoteVideoStreams
abstract int muteAllRemoteAudioStreams
abstract int setDefaultMuteAllRemoteAudioStreams
abstract int muteRemoteAudioStream
abstract int muteRemoteVideoStream
abstract int renewToken
abstract int setChannelProfile
abstract int setClientRole
abstract int startAudioMixing
abstract int stopAudioMixing
abstract int adjustRecordingSignalVolume
abstract int adjustPlaybackSignalVolume
abstract int pauseAudioMixing
abstract int resumeAudioMixing
abstract long sendRoomMessage
abstract long sendRoomBinaryMessage
abstract long sendUserMessage
abstract long sendUserBinaryMessage
abstract int adjustAudioMixingVolume
abstract int getAudioMixingDuration
abstract int getAudioMixingCurrentPosition
abstract int setAudioMixingPosition
abstract int adjustAudioMixingPlayoutVolume
abstract int adjustAudioMixingPublishVolume
abstract int getEffectVolume
abstract int setVolumeOfEffect
abstract int setEffectsVolume
abstract int playEffect
abstract int preloadEffect
abstract int unloadEffect
abstract int stopEffect
abstract int pauseEffect
abstract int resumeEffect
abstract int stopAllEffects
abstract int unloadAllEffects
abstract int pauseAllEffects
abstract int resumeAllEffects
abstract boolean setRecordingAudioFrameParameters
abstract boolean setPlaybackAudioFrameParameters
abstract boolean setMixedAudioFrameParameters
abstract int registerAudioFrameObserver
abstract void setExternalVideoSource
abstract void setExternalVideoSource
abstract boolean pushExternalVideoFrame
abstract boolean pushExternalVideoFrame
abstract void enableLiveTranscoding
abstract void disableLiveTranscoding
abstract void setVideoCompositingLayout
abstract int setVideoProfiles
abstract int setVideoProfiles
abstract void setupRemoteScreen
abstract void enableAutoSubscribe
abstract void subscribeStream
abstract void unSubscribe
abstract boolean setExternalAudioDevice
abstract boolean setAudioDeviceEventHandler
abstract boolean pushExternalAudioFrame
abstract boolean pullExternalAudioFrame
abstract int setupLocalScreen
abstract int publishScreen
abstract int unpublishScreen
abstract int startScreenSharing
abstract int updateScreenSharingParameters
abstract int stopScreenSharing
abstract boolean pushScreenFrame
abstract void setOnDestroyCompletedCallback
abstract void setAudioPlayoutMixStream
abstract int getAudioMixingStreamCachedFrameNum
abstract boolean pushAudioMixingStreamData
abstract void AdjustRemoteAudioVolume
abstract int setPublishFallbackOption
abstract int setRemoteSubscribeFallbackOption
abstract int setRemoteUserPriority
abstract void registerMetadataObserver
abstract int setBusinessId
abstract void SetAudioPerfProfile
abstract void setEncryptInfo
abstract void setCustomizeEncryptHandler
abstract int checkVideoEffectLicense
abstract void setVideoEffectAlgoModelPath
abstract int enableVideoEffect
abstract void setVideoEffectPath
abstract void addVideoEffectPath
abstract void removeVideoEffectPath
abstract void updateVideoEffect
abstract void setVideoEffectColorFilter
abstract void setVideoEffectColorFilterIntensity
abstract void startCloudRendering
abstract void updateCloudRendering
abstract void stopCloudRendering
abstract void SetRuntimeParameters

变量说明

VIDEO_MIRROR_MODE_AUTO

public static final int com.ss.video.rtc.engine.RtcEngine.VIDEO_MIRROR_MODE_AUTO = 0;

默认镜像模式,即由 SDK 决定镜像模式

VIDEO_MIRROR_MODE_ENABLED

public static final int com.ss.video.rtc.engine.RtcEngine.VIDEO_MIRROR_MODE_ENABLED = 1;

启用镜像模式

VIDEO_MIRROR_MODE_DISABLED

public static final int com.ss.video.rtc.engine.RtcEngine.VIDEO_MIRROR_MODE_DISABLED = 2;

关闭镜像模式

函数说明

create

public static synchronized RtcEngine com.ss.video.rtc.engine.RtcEngine.create(
    Context context,
    String appId,
    IRtcEngineEventHandler handler)

创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力

传入参数

参数名 类型 说明
context Context Android Context
appId String 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC
中进行音视频通话完全独立,无法互通。
handler IRtcEngineEventHandler SDK 回调给应用层的 Handler,详见 IRtcEngineEventHandler

返回值

注意

create

public static synchronized RtcEngine com.ss.video.rtc.engine.RtcEngine.create(
    Context context,
    String appId,
    IRtcEngineEventHandler handler,
    Object eglContext)

创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力

传入参数

参数名 类型 说明
context Context Android Context
appId String 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC
中进行音视频通话完全独立,无法互通。
handler IRtcEngineEventHandler SDK 回调给应用层的 Handler,详见 IRtcEngineEventHandler
eglContext Object 如果需要支持外部纹理硬编码,则需要传入eglContext。以jObject方式传入eglContext

返回值

注意

create

public static synchronized RtcEngine com.ss.video.rtc.engine.RtcEngine.create(
    Context context,
    String appId,
    IRtcEngineEventHandler handler,
    EGLContext eglContext)

创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力

传入参数

参数名 类型 说明
context Context Android Context
appId String 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC
中进行音视频通话完全独立,无法互通。
handler IRtcEngineEventHandler SDK 回调给应用层的 Handler,详见 IRtcEngineEventHandler
eglContext EGLContext 如果需要支持外部纹理硬编码,则需要传入eglContext。以EGLContext方式传入eglContext

返回值

注意

create

public static synchronized RtcEngine com.ss.video.rtc.engine.RtcEngine.create(
    Context context,
    String appId,
    IRtcEngineEventHandler handler,
    javax.microedition.khronos.egl.EGLContext eglContext)

创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力

传入参数

参数名 类型 说明
context Context Android Context
appId String 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC
中进行音视频通话完全独立,无法互通。
handler IRtcEngineEventHandler SDK 回调给应用层的 Handler,详见 IRtcEngineEventHandler
eglContext javax.microedition.khronos.egl.EGLContext 如果需要支持外部纹理硬编码,则需要传入eglContext。以javax.microedition.khronos.egl.EGLContext
方式传入eglContext

返回值

注意

createEngine

public static synchronized RtcEngine com.ss.video.rtc.engine.RtcEngine.createEngine(
    Context context,
    String appId,
    IRtcEngineEventHandler handler,
    Object eglContext,
    JSONObject parameters)

创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力

传入参数

参数名 类型 说明
context Context Android Application Context
appId String 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC
中进行音视频通话完全独立,无法互通。
handler IRtcEngineEventHandler SDK 回调给应用层的 Handler,详见 IRtcEngineEventHandler
eglContext Object 如果需要支持外部纹理硬编码,则需要传入eglContext。以jObject方式传入eglContext
parameters JSONObject 用以覆盖全局参数的本引擎实例参数

返回值

注意

destroyEngine

public static synchronized void com.ss.video.rtc.engine.RtcEngine.destroyEngine(
    RtcEngine engine)

销毁引擎 销毁由 createEgninecreate 所创建引擎实例,并释放所有相关资源

注意

destroy

public static synchronized void com.ss.video.rtc.engine.RtcEngine.destroy()

销毁引擎 销毁由 create 所创建引擎实例,并释放所有相关资源

注意

getSdkVersion

public static String com.ss.video.rtc.engine.RtcEngine.getSdkVersion()

获取 SDK 当前的版本号。

返回值

SDK 当前的版本号。

getErrorDescription

public static String com.ss.video.rtc.engine.RtcEngine.getErrorDescription(
    int code)

获取SDK内各种错误码、警告码的描述文字

传入参数

参数名 类型 说明
code int 通过 onWarning 和 onError 回调获得的值,
具体可以参考 RtcErrorCode 和 RtcWarnCode

返回值

String 描述文字

enablePerformanceCollect

public static void com.ss.video.rtc.engine.RtcEngine.enablePerformanceCollect(
    boolean enable)

由外部控制是否开启性能采集,默认关闭。

传入参数

参数名 类型 说明
enable boolean • true: 开启。
• false: 不开启。

注意

setRtcEngineEventHandler

public abstract void com.ss.video.rtc.engine.RtcEngine.setRtcEngineEventHandler(
    IRtcEngineEventHandler engineEventHandler)

设置引擎事件回调的接收类,必须继承自 IRtcEngineEventHandler 。

传入参数

参数名 类型 说明
engineEventHandler IRtcEngineEventHandler 事件处理器接口类,详见 IRtcEngineEventHandler 。

注意

joinChannel

public abstract int com.ss.video.rtc.engine.RtcEngine.joinChannel(
    String token,
    String channelName,
    PublisherConfiguration publisherConfiguration,
    String uid)

加入房间。用户调用此方法加入房间,在一个房间内的用户间可以相互通话。
用户调用 create 方法创建 RTC 引擎后,需调用此方法加入房间实现同其他用户进行音视频通话。如果用户调用此方法加入房间,则后续重复调用此方法均会失败,用户必须调用 leaveChannel 退出当前房间后,才能加入下一个房间。
用户调用此方法加入房间成功后,会收到 onJoinChannelSuccess 回调通知。

传入参数

参数名 类型 说明
token String 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token ,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token 。
channelName String 房间ID ,用户调用此接口加入的房间的房间ID 。
房间ID 为最大长度为128字节的非空字符串,支持的字符集范围为:
1. 26个大写字母 A ~ Z 。
2. 26个小写字母 a ~ z 。
3. 10个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。
publisherConfiguration PublisherConfiguration 预留参数。
uid String 用户ID ,用户调用此接口加入的房间时使用的用户ID 。
用户ID 为最大长度为128字节的非空字符串,支持的字符集范围为:
1. 26个大写字母 A ~ Z 。
2. 26个小写字母 a ~ z 。
3. 10个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。

返回值

方法调用结果。
+ 0: 成功
+ -1: channelName 为空,失败
+ -2: uid 为空,失败
+ -3: Engine 创建失败
+ -4: joinChannel(@link #joinChannel) 重复调用,失败

注意

leaveChannel

public abstract int com.ss.video.rtc.engine.RtcEngine.leaveChannel()

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinChannel 方法加入房间后,在通话结束时必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本端会收到 onLeaveChannel 回调通知。

返回值

方法调用结果。
+ 0: 方法调用成功
+ <0: 方法调用失败

注意

enableLocalVideo

public abstract int com.ss.video.rtc.engine.RtcEngine.enableLocalVideo(
    boolean enabled)

该方法开启或关闭本地视频采集。默认为开启状态。
调用该方法后,房间中的其他用户会收到 onUserEnableLocalVideo 的回调。

传入参数

参数名 类型 说明
enabled boolean 是否开启本地视频
• true: 开启本地视频采集
• false: 关闭本地视频采集

返回值

注意

enableLocalAudio

public abstract int com.ss.video.rtc.engine.RtcEngine.enableLocalAudio(
    boolean enabled)

开启关闭本地音频。
调用该方法后,房间中的其他用户会收到 onUserEnableLocalAudio 的回调。

传入参数

参数名 类型 说明
enabled boolean 是否开启本地音频采集
• true: 开启本地音频采集(默认)
• false: 关闭本地音频采集

返回值

注意

startPreview

public abstract int com.ss.video.rtc.engine.RtcEngine.startPreview()

开启视频预览,视频预览默认为关闭状态。

返回值

注意

stopPreview

public abstract int com.ss.video.rtc.engine.RtcEngine.stopPreview()

关闭视频预览,视频预览默认为关闭状态。

返回值

注意

setupLocalVideo

public abstract int com.ss.video.rtc.engine.RtcEngine.setupLocalVideo(
    VideoCanvas local)

设置本地视频显示属性

传入参数

参数名 类型 说明
local VideoCanvas 设置视频属性, 参考: VideoCanvas

返回值

注意

该方法设置本地视频显示信息。应用程序通过调用此接口绑定本地视频流的显示视窗 (view),并设置视频显示模式。 在应用程序开发中,通常在 APP 收到 onFirstLocalVideoFrame 事件后调用该方法进行本地视频设置,然后再加入房间。 退出房间后,绑定仍然有效,如果需要解除绑定,可以指定空 View(NULL)调用 setupLocalVideo。

setupLocalVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupLocalVideoRender(
    IVideoSink videoSink,
    String uid)

设置本地视频外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考:IVideoSink
uid String 要绑定的用户ID

返回值

注意

该方法设置本地视频外部渲染。应用程序通过调用此接口绑定本地视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstLocalVideoFrame 事件后调用该方法进行本地视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupLocalVideoRender为 null,清除设置 。

setupLocalVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupLocalVideoRender(
    IVideoSink videoSink,
    String uid,
    boolean isInitialized)

设置本地视频外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考:IVideoSink
uid String 要绑定的用户ID
isInitialized boolean 是否初始化

返回值

注意

该方法设置本地视频外部渲染。应用程序通过调用此接口绑定本地视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstLocalVideoFrame 事件后调用该方法进行本地视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupLocalVideoRender为 null,清除设置 。

setupLocalScreenRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupLocalScreenRender(
    IVideoSink videoSink,
    String uid)

设置本地屏幕视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考:IVideoSink
uid String 要绑定的用户ID

返回值

注意

该方法设置本地屏幕视频外部渲染。应用通过调用此接口绑定本地视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstLocalScreenFrame 事件后调用该方法进行本地视频设置。 退出房间后,需要设置 setupLocalScreenRender 为 null,清除设置 。

setupRemoteVideo

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteVideo(
    VideoCanvas videoCanvas)

设置远端视频视图

传入参数

参数名 类型 说明
videoCanvas VideoCanvas 用于渲染远端用户视频的画布,参考: VideoCanvas

返回值

setupRemoteVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteVideoRender(
    IVideoSink videoSink,
    String roomid,
    String uid)

设置远端视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考: IVideoSink
roomid String 要绑定的用户所属房间ID
uid String 要绑定的用户ID

返回值

注意

该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrame 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。

setupRemoteVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteVideoRender(
    IVideoSink videoSink,
    String uid)

设置远端视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性,参考: IVideoSink
uid String 要绑定的用户ID

返回值

注意

该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrame 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。

setupRemoteVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteVideoRender(
    IVideoSink videoSink,
    String roomid,
    String uid,
    boolean isInitialized)

设置远端视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考: IVideoSink
uid String 要绑定的用户ID
roomid String 要绑定的用户所属房间 id
isInitialized boolean videoSink 是否已经初始化

返回值

注意

该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrame 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。

setupRemoteVideoRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteVideoRender(
    IVideoSink videoSink,
    String uid,
    boolean isInitialized)

设置远端视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考: IVideoSink
uid String 要绑定的用户ID
isInitialized boolean videoSink 是否已经初始化

返回值

注意

该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrame 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。。

setupRemoteScreenRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteScreenRender(
    IVideoSink videoSink,
    String roomid,
    String uid)

设置远端屏幕流视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考:IVideoSink
uid String 要绑定的用户ID
roomid String 要绑定的用户所属房间ID

返回值

注意

该方法设置远端屏幕视频外部渲染。应用通过调用此接口绑定远端视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstRemoteScreenFrame 事件后调用该方法进行远端视频设置。 退出房间后,需要设置 setupRemoteScreenRender 为 null,清除设置 。

setupRemoteScreenRender

public abstract int com.ss.video.rtc.engine.RtcEngine.setupRemoteScreenRender(
    IVideoSink videoSink,
    String uid)

设置远端屏幕流视频的外部渲染

传入参数

参数名 类型 说明
videoSink IVideoSink 设置视频属性, 参考:IVideoSink
uid String 要绑定的用户ID

返回值

注意

该方法设置远端屏幕视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstRemoteScreenFrame 事件后调用该方法进行远端视频设置。 退出房间后,需要设置 setupRemoteScreenRender 为 null,清除设置 。

setLocalVideoMirrorMode

public abstract int com.ss.video.rtc.engine.RtcEngine.setLocalVideoMirrorMode(
    int mode)

设置本地视频镜像。 该方法设置本地视频镜像,支持动态设置。

传入参数

参数名 类型 说明
mode int 设置本地视频镜像模式
• 0:默认镜像模式,即由 SDK 决定镜像模式
• 1:启用镜像模式
• 2:关闭镜像模式

返回值

isLocalVideoMirrorOn

public abstract boolean com.ss.video.rtc.engine.RtcEngine.isLocalVideoMirrorOn()

获取本地视频镜像。

返回值

当前镜像状态
+ true:镜像为打开状态
+ false:镜像为关闭状态

switchCamera

public abstract int com.ss.video.rtc.engine.RtcEngine.switchCamera()

切换前置/后置摄像头

返回值

replaceBackground

public abstract int com.ss.video.rtc.engine.RtcEngine.replaceBackground(
    BackgroundMode mode,
    DivideModel divide_model)

视频图像分割,替换背景

传入参数

参数名 类型 说明
mode BackgroundMode 背景模式,用于设置预置背景,是否虚化等 详见 BackgroundMode
divide_model DivideModel 选择使用哪种分割模型, 分割模型类型详见 DivideModel

返回值

setEnableSpeakerphone

public abstract int com.ss.video.rtc.engine.RtcEngine.setEnableSpeakerphone(
    boolean enable)

设置音频播放设备为扬声器或者听筒,默认使用扬声器。 音频播放设备发生变化时,会收到 onAudioRouteChanged 回调。

传入参数

参数名 类型 说明
enable boolean 是否切换语音路由到扬声器。
• true: 没有连接耳机或者蓝牙设备时,音频播放切换到扬声器。
• false: 没有连接耳机或者蓝牙设备时,音频播放切换到听筒。

返回值

方法调用结果
+ 0: 方法调用成功
+ <0: 方法调用失败

注意

isSpeakerphoneEnabled

public abstract boolean com.ss.video.rtc.engine.RtcEngine.isSpeakerphoneEnabled()

查询扬声器启用状态

返回值

扬声器开启状态
+ true:扬声器已开启,语音会输出到扬声器
+ false:扬声器未开启,语音会输出到非扬声器(听筒,耳机等)

enableAudioVolumeIndication

public abstract int com.ss.video.rtc.engine.RtcEngine.enableAudioVolumeIndication(
    int interval,
    int smooth)

启用说话者音量提示。

传入参数

参数名 类型 说明
interval int 指定音量提示的时间间隔
• ≤ 0:禁用音量提示功能。
• > 0:返回音量提示的间隔,单位为毫秒。建议设置到大于等于200 毫秒。少于 10 毫秒时,行为未定义。
smooth int 该参数未使用

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

muteLocalAudioStream

public abstract int com.ss.video.rtc.engine.RtcEngine.muteLocalAudioStream(
    boolean muted)

静音本地音频流。 调用该方法后,房间中的其他用户会收到 onUserMuteAudio 的回调。

传入参数

参数名 类型 说明
muted boolean 是否静音本地音频流
• true: 静音本地音频流
• false: 关闭静音本地音频流(默认)

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

muteLocalVideoStream

public abstract int com.ss.video.rtc.engine.RtcEngine.muteLocalVideoStream(
    boolean muted)

开启/关闭本地视频发送,调用该方法后,房间中的其他用户会收到 onUserMuteVideo 的回调。

传入参数

参数名 类型 说明
muted boolean • true:关闭视频流
• false:开启视频流(默认)

返回值

muteAllRemoteVideoStreams

public abstract int com.ss.video.rtc.engine.RtcEngine.muteAllRemoteVideoStreams(
    boolean muted)

开启/关闭所有远程视频流

传入参数

参数名 类型 说明
muted boolean 是否接受所有远程视频流
• true:关闭所有视频流
• false:开启所有视频流(默认)

返回值

setDefaultMuteAllRemoteVideoStreams

public abstract int com.ss.video.rtc.engine.RtcEngine.setDefaultMuteAllRemoteVideoStreams(
    boolean muted)

停止/恢复接受所有新加入房间用户的远端视频流

传入参数

参数名 类型 说明
muted boolean 是否接受新加入房间用户远端视频流
• true:关闭所有视频流
• false:开启所有视频流(默认)

返回值

muteAllRemoteAudioStreams

public abstract int com.ss.video.rtc.engine.RtcEngine.muteAllRemoteAudioStreams(
    boolean muted)

静音/取消静音所有音频流

传入参数

参数名 类型 说明
muted boolean 是否静音所有远端音频流
• true:静音所有远端音频流
• false:取消静音所有远端音频流

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

本方法只控制本地是否静音远端音频流,并不能控制远端音频设备的采集发送功能

setDefaultMuteAllRemoteAudioStreams

public abstract int com.ss.video.rtc.engine.RtcEngine.setDefaultMuteAllRemoteAudioStreams(
    boolean muted)

设置是否默认静音所有远端音频流

传入参数

参数名 类型 说明
muted boolean 是否默认静音所有远端音频流
true: 默认静音所有远端音频流
false: 默认取消静音所有远端音频流(默认)

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

muteRemoteAudioStream

public abstract int com.ss.video.rtc.engine.RtcEngine.muteRemoteAudioStream(
    String uid,
    boolean muted)

静音/取消静音指定用户的音频流

传入参数

参数名 类型 说明
uid String 指定的远端用户ID
muted boolean • true:停止接收指定用户的音频流
• false:继续接收指定用户的音频流(默认)

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

muteRemoteVideoStream

public abstract int com.ss.video.rtc.engine.RtcEngine.muteRemoteVideoStream(
    String uid,
    boolean muted)

接收/停止接收指定视频流

传入参数

参数名 类型 说明
uid String 指定的用户ID
muted boolean • true:停止接收指定用户的视频流
• false:恢复接收指定用户的视频流(默认)

返回值

renewToken

public abstract int com.ss.video.rtc.engine.RtcEngine.renewToken(
    String token)

更新 Token。
Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。
用户调用 joinChannel 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 BRERR_INVALID_TOKEN 。此时需要重新获取 Token ,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token String 更新的动态密钥。Token 用于对登录用户进行鉴权验证。

返回值

方法调用结果。
+ 0: 方法调用成功
+ <0: 方法调用失败

注意

setChannelProfile

public abstract int com.ss.video.rtc.engine.RtcEngine.setChannelProfile(
    CHANNEL_PROFILE_TYPE channelProfile)

设置房间模式。
通过设置房间模式,用户可以选择应用 SDK 针对不同房间模式场景的优化策略。
默认的房间模式为通信模式 CHANNEL_PROFILE_COMMUNICATIONCHANNEL_PROFILE_TYPE 。
房间模式必须在调用 joinChannel 加入房间前设置,加入房间后设置不生效。设置用户角色(通过方法 setClientRole )建议在设置完房间模式后。

传入参数

参数名 类型 说明
channelProfile CHANNEL_PROFILE_TYPE 房间模式,详见 CHANNEL_PROFILE_TYPE 枚举类型。

返回值

方法调用结果。
+ 0: 方法调用成功
+ <0: 方法调用失败

注意

setClientRole

public abstract int com.ss.video.rtc.engine.RtcEngine.setClientRole(
    CLIENT_ROLE_TYPE clientRole)

设置用户角色。
用户可通过设置用户角色,控制:1.是否发布音视频流;2.用户自身是否在房间中隐身。详见用户角色 CLIENT_ROLE_TYPE 。
默认用户角色为主播角色 CLIENT_ROLE_BROADCASTERCLIENT_ROLE_TYPE 。
房间模式(通过调用接口 setChannelProfile 可设置房间模式)为直播模式、游戏模式、云游戏模式时,设置用户角色生效。房间模式为通信模式时不区分用户角色。

传入参数

参数名 类型 说明
clientRole CLIENT_ROLE_TYPE 用户角色,详见 CLIENT_ROLE_TYPE 。

返回值

方法调用结果。
+ 0: 方法调用成功
+ <0: 方法调用失败

注意

startAudioMixing

public abstract int com.ss.video.rtc.engine.RtcEngine.startAudioMixing(
    String file,
    boolean loopback,
    boolean replace,
    int cycle)

开始播放音乐文件及混音。

传入参数

参数名 类型 说明
file String 指定需要混音的本地文件的绝对路径。支持音频文件格式有: mp3,aac,m4a,3gp,wav。
loopback boolean • true: 只有本地可以听到混音或替换后的音频流。
• false: 本地和对方都可以听到混音或替换后的音频流
replace boolean • true: 只推送设置的本地音频文件,不传输麦克风采集的音频。
• false: 音频文件内容将会和麦克风采集的音频流进行混音
cycle int 指定音频文件循环播放的次数。
• >0: 循环的次数。
• -1: 无限循环

返回值

注意

stopAudioMixing

public abstract int com.ss.video.rtc.engine.RtcEngine.stopAudioMixing()

停止播放音乐文件及混音。

返回值

注意

adjustRecordingSignalVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.adjustRecordingSignalVolume(
    int volume)

调节录音音量。

传入参数

参数名 类型 说明
volume int 录音音量,可在 0~400 范围内进行调节
• 0:静音
• 100:原始音量
• 400: 最大可AdjustPlaybackSignalVolume为原始音量的 4 倍(自带溢出保护)

返回值

注意

为保证更好的通话质量,建议将 volume 值设为 [0,100]

adjustPlaybackSignalVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.adjustPlaybackSignalVolume(
    int volume)

调节本地播放的所有远端用户音量

传入参数

参数名 类型 说明
volume int 播放音量,可在 0~400 范围内进行调节
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

返回值

注意

pauseAudioMixing

public abstract int com.ss.video.rtc.engine.RtcEngine.pauseAudioMixing()

暂停播放音乐文件

返回值

注意

resumeAudioMixing

public abstract int com.ss.video.rtc.engine.RtcEngine.resumeAudioMixing()

恢复播放音乐文件

返回值

注意

sendRoomMessage

public abstract long com.ss.video.rtc.engine.RtcEngine.sendRoomMessage(
    String messgaeStr)

给房间内的所有其他用户发送广播消息。

传入参数

参数名 类型 说明
messgaeStr String 用户发送的广播消息

返回值

>0:发送成功,返回这次发送消息的编号,从 1 开始递增 -1:发送失败

注意

1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomMessageReceived 回调。

sendRoomBinaryMessage

public abstract long com.ss.video.rtc.engine.RtcEngine.sendRoomBinaryMessage(
    byte[] buffer)

给房间内的所有其他用户发送广播二进制消息。

传入参数

参数名 类型 说明
buffer byte[] 用户发送的广播二进制消息

返回值

>0:发送成功,返回这次发送消息的编号,从 1 开始递增 -1:发送失败

注意

1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomBinaryMessageReceived 回调。

sendUserMessage

public abstract long com.ss.video.rtc.engine.RtcEngine.sendUserMessage(
    String userId,
    String messageStr)

给房间内指定的用户发送消息, 返回这次发送消息的编号

传入参数

参数名 类型 说明
userId String 指定用户 ID
messageStr String 发送的消息内容

返回值

>0:发送成功,返回这次发送消息的编号,从 1 开始递增 -1:发送失败,RtcEngine 实例未创建 -2:发送失败,userId 为空

注意

1.调用该函数后会收到一次 OnUserMessageSendResult 回调; 2.若消息发送成功,则 uid 所指定的用户会收到 OnUserMessageReceived 回调。

sendUserBinaryMessage

public abstract long com.ss.video.rtc.engine.RtcEngine.sendUserBinaryMessage(
    String userId,
    byte[] buffer)

给房间内指定的用户发送消息, 返回这次发送消息的编号

传入参数

参数名 类型 说明
userId String 指定用户 ID
buffer byte[] 发送的消息内容

返回值

>0:发送成功,返回这次发送消息的编号,从 1 开始递增 -1:发送失败,RtcEngine 实例未创建 -2:发送失败,uid 为空

注意

1.调用该函数后会收到一次 OnUserMessageSendResult 回调; 2.若消息发送成功,则 uid 所指定的用户会收到 OnUserBinaryMessageReceived 回调。

adjustAudioMixingVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.adjustAudioMixingVolume(
    int volume)

调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

getAudioMixingDuration

public abstract int com.ss.video.rtc.engine.RtcEngine.getAudioMixingDuration()

获取音乐文件时长

返回值

注意

请在房间内调用该方法。

getAudioMixingCurrentPosition

public abstract int com.ss.video.rtc.engine.RtcEngine.getAudioMixingCurrentPosition()

获取音乐文件播放进度

返回值

注意

请在房间内调用该方法。

setAudioMixingPosition

public abstract int com.ss.video.rtc.engine.RtcEngine.setAudioMixingPosition(
    int pos)

设置音频文件的播放位置

传入参数

参数名 类型 说明
pos int 整数。进度条位置,单位为毫秒。

返回值

注意

该方法可以设置音频文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。

adjustAudioMixingPlayoutVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.adjustAudioMixingPlayoutVolume(
    int volume)

调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

adjustAudioMixingPublishVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.adjustAudioMixingPublishVolume(
    int volume)

调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

getEffectVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.getEffectVolume(
    int soundId)

获取指定音效文件的文件音量

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。确保此处的 soundId 与 playEffect 设置的 soundId 相同。

返回值

注意

请在房间内调用该方法。

setVolumeOfEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.setVolumeOfEffect(
    int soundId,
    int volume)

调节指定音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。确保此处的 soundId 与 playEffect 设置的 soundId 相同。
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400:最大可AdjustPlaybackSignalVolume为原始音量的 4 倍(自带溢出保护)

返回值

注意

setEffectsVolume

public abstract int com.ss.video.rtc.engine.RtcEngine.setEffectsVolume(
    int volume)

调节所有音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

playEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.playEffect(
    int soundId,
    String filePath,
    boolean loopback,
    int cycle,
    int volume)

开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。如果已经通过 preloadEffect 将音效加载至内存,确保此处的 soundId 与 preloadEffect 设置的 soundId 相同。
filePath String 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav
loopback boolean • true: 只有本地可以听到该音效。
• false: 本地和远端用户都可以听到该音效
cycle int 指定音频文件循环播放的次数。
• >0:循环的次数。
• -1:无限循环,直至调用 stopEffect 或 stopAllEffects 后停止。
volume int 音效文件播放音量范围为 0~400。默认 100 为原始文件音量

返回值

注意

preloadEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.preloadEffect(
    int soundId,
    String filePath)

预加载指定音效文件

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。
filePath String 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav。

返回值

注意

unloadEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.unloadEffect(
    int soundId)

卸载指定音效文件

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。

返回值

注意

stopEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.stopEffect(
    int soundId)

停止播放指定音效文件

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。如果已经通过 preloadEffect 将音效加载至内存,确保此处的 soundId 与 preloadEffect 设置的 soundId 相同。

返回值

注意

pauseEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.pauseEffect(
    int soundId)

暂停播放指定音效文件

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性

返回值

注意

调用该方法暂停播放指定音效文件,可以调用 resumeEffect 方法恢复播放。

resumeEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.resumeEffect(
    int soundId)

恢复播放指定音效文件

传入参数

参数名 类型 说明
soundId int 音效ID,应用调用者维护,请保证唯一性。

返回值

注意

stopAllEffects

public abstract int com.ss.video.rtc.engine.RtcEngine.stopAllEffects()

停止所有音效文件的播放

返回值

注意

该方法停止所有音效文件的播放。

unloadAllEffects

public abstract int com.ss.video.rtc.engine.RtcEngine.unloadAllEffects()

卸载所有音效文件

返回值

注意

pauseAllEffects

public abstract int com.ss.video.rtc.engine.RtcEngine.pauseAllEffects()

暂停所有音效文件的播放

返回值

注意

该方法暂停所有音效文件的播放,可调用 resumeAllEffects 方法恢复播放。

resumeAllEffects

public abstract int com.ss.video.rtc.engine.RtcEngine.resumeAllEffects()

恢复所有音效文件的播放

返回值

注意

setRecordingAudioFrameParameters

public abstract boolean com.ss.video.rtc.engine.RtcEngine.setRecordingAudioFrameParameters(
    int sampleRate,
    int channels)

设置本地麦克风录制的音频数据回调参数

传入参数

参数名 类型 说明
sampleRate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

注意

使用本方法设置参数,并使用registerAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 onRecordAudioFrame收到数据

setPlaybackAudioFrameParameters

public abstract boolean com.ss.video.rtc.engine.RtcEngine.setPlaybackAudioFrameParameters(
    int sampleRate,
    int channels)

设置远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
sampleRate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

注意

使用本方法设置参数,并使用registerAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 onPlaybackAudioFrame收到数据

setMixedAudioFrameParameters

public abstract boolean com.ss.video.rtc.engine.RtcEngine.setMixedAudioFrameParameters(
    int sampleRate,
    int channels)

设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
sampleRate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

注意

使用本方法设置参数,并使用registerAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 onMixedAudioFrame收到数据

registerAudioFrameObserver

public abstract int com.ss.video.rtc.engine.RtcEngine.registerAudioFrameObserver(
    IAudioFrameObserver observer)

注册音频数据回调观察者

传入参数

参数名 类型 说明
observer IAudioFrameObserver 音频数据回调观察者,详见IAudioFrameObserver。如果传入 null,则取消注册。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

本方法需要与下面3个方法配合使用:setRecordingAudioFrameParameters、 setPlaybackAudioFrameParameters、 setMixedAudioFrameParameters

setExternalVideoSource

public abstract void com.ss.video.rtc.engine.RtcEngine.setExternalVideoSource(
    boolean enable,
    boolean useTexture,
    boolean push)

配置外部视频源。 不支持频道内动态切换视频源。如果想切换成视频源,须先退出频道,再重新加入频道。

传入参数

参数名 类型 说明
enable boolean 是否使用外部视频源
useTexture boolean 是否使用 Texture 作为输入
push boolean 是否外部视频源需要调用 pushExternalVideoFrame 将视频帧主动推送给SDK

setExternalVideoSource

public abstract void com.ss.video.rtc.engine.RtcEngine.setExternalVideoSource(
    boolean enable,
    boolean useTexture,
    boolean push,
    boolean needRender)

配置外部视频源。 不支持频道内动态切换视频源。如果想切换成视频源,须先退出频道,再重新加入频道。

传入参数

参数名 类型 说明
enable boolean 是否使用外部视频源
useTexture boolean 是否使用 Texture 作为输入
push boolean 是否外部视频源需要调用 pushExternalVideoFrame 将视频帧主动推送给SDK
needRender boolean 是否需要渲染

pushExternalVideoFrame

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pushExternalVideoFrame(
    RtcVideoFrame frame)

推送外部视频帧。

传入参数

参数名 类型 说明
frame RtcVideoFrame 视频帧的数据信息

返回值

注意

pushExternalVideoFrame

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pushExternalVideoFrame(
    RtcVideoFrame frame,
    boolean isDirectEncode)

推送外部视频帧。

传入参数

参数名 类型 说明
frame RtcVideoFrame 视频帧的数据信息
isDirectEncode boolean true:使用用户的纹理做硬编码;false:拷贝业务纹理后做硬编码

返回值

注意

enableLiveTranscoding

public abstract void com.ss.video.rtc.engine.RtcEngine.enableLiveTranscoding(
    LiveTranscoding liveTranscode)

开启直播推流转码功能。
此方法用于开启直播推流转码功能,并设置旁路推流的视频视图布局及音频属性等。
直播推流转码功能开启时,会根据设置的视频视图布局和音频属性进行合流转码转成 rtmp 流并推送到设置的 CDN 。
直播推流转码功能启动成功或失败时、推流过程中发生错误时,SDK 通过 onStreamPublished 回调事件通知用户对应的状态事件。

传入参数

参数名 类型 说明
liveTranscode LiveTranscoding 推流转码配置属性,详见 LiveTranscoding 数据类型。

注意

disableLiveTranscoding

public abstract void com.ss.video.rtc.engine.RtcEngine.disableLiveTranscoding()

关闭直播推流转码功能。

setVideoCompositingLayout

public abstract void com.ss.video.rtc.engine.RtcEngine.setVideoCompositingLayout(
    LiveTranscoding.Layout layout)

设置视频流合流布局。
此方法用于在直播推流转码功能开启时,更新旁路推流的视频合流布局属性。调用此方法前,用户需通过调用 enableLiveTranscoding 方法开启直播推流转码功能。如果未开启直播推流转码功能,则调用此方法不生效。

传入参数

参数名 类型 说明
layout LiveTranscoding.Layout 视频合流布局属性,详见 LiveTranscoding.Layout 类型。

setVideoProfiles

public abstract int com.ss.video.rtc.engine.RtcEngine.setVideoProfiles(
    VideoStreamDescription[] videoStreamDescriptions)

设置发布的视频流属性

传入参数

参数名 类型 说明
videoStreamDescriptions VideoStreamDescription[] 要发送的多路流的视频信息,参考: VideoStreamDescription

返回值

setVideoProfiles

public abstract int com.ss.video.rtc.engine.RtcEngine.setVideoProfiles(
    VideoStreamDescription[] videoStreamDescriptions,
    VideoEncoderConfiguration.ORIENTATION_MODE orientationMode)

设置发布的视频流属性和视频旋转角度

传入参数

参数名 类型 说明
videoStreamDescriptions VideoStreamDescription[] 要发送的多路流的视频信息,参考: VideoStreamDescription
orientationMode VideoEncoderConfiguration.ORIENTATION_MODE 视频的旋转角度

返回值

setupRemoteScreen

public abstract void com.ss.video.rtc.engine.RtcEngine.setupRemoteScreen(
    VideoCanvas videoCanvas)

设置共享屏幕远端视频视图。

传入参数

参数名 类型 说明
videoCanvas VideoCanvas 远端视频视图 VideoCanvas

注意

在应用开发中,通常在应用收到 onFirstRemoteScreenFrame 事件后调用该方法进行远端视频设置。

enableAutoSubscribe

public abstract void com.ss.video.rtc.engine.RtcEngine.enableAutoSubscribe(
    SubscribeMode audioMode,
    SubscribeMode videoMode)

开启/关闭自动订阅功能。
用户调用此方法设置房间中是否开启自动订阅功能。SDK 默认开启自动订阅功能。
如需关闭自动订阅功能,建议在调用 joinChannel 方法加入房间前设置完成。

传入参数

参数名 类型 说明
audioMode SubscribeMode 开启/关闭音频自动订阅功能。详见枚举类型 SubscribeMode 。
videoMode SubscribeMode 开启/关闭视频自动订阅功能。详见枚举类型 SubscribeMode 。

注意

subscribeStream

public abstract void com.ss.video.rtc.engine.RtcEngine.subscribeStream(
    String userId,
    SubscribeConfig info)

订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
订阅流失败时,SDK 会按失败原因回调 onError 通知用户,具体错误可参考错误码 RtcErrorCode 描述。

传入参数

参数名 类型 说明
userId String 要订阅的流的发布用户的用户的ID 。
info SubscribeConfig 选择订阅配置,详见数据结构 SubscribeConfig 。

注意

unSubscribe

public abstract void com.ss.video.rtc.engine.RtcEngine.unSubscribe(
    String userId,
    boolean isScreen)

停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在开启手动订阅功能时生效,用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。

传入参数

参数名 类型 说明
userId String 指定停止订阅的远端音视频流的发布用户的用户的ID 。
isScreen boolean 是否是屏幕共享流。

注意

setExternalAudioDevice

public abstract boolean com.ss.video.rtc.engine.RtcEngine.setExternalAudioDevice(
    boolean enable,
    int sampleRate,
    int recordChannelNum,
    int playoutChannelNum)

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

传入参数

参数名 类型 说明
enable boolean • true: 启用自定义音频采集渲染
• false: 不启用自定义音频采集渲染
sampleRate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
recordChannelNum int 外部音频采集通道数,支持单声道(1)和双声道(2)
playoutChannelNum int 外部音频渲染通道数,支持单声道(1)和双声道(2)

返回值

设置是否成功
+ true: 成功
+ false: 失败

注意

setAudioDeviceEventHandler

public abstract boolean com.ss.video.rtc.engine.RtcEngine.setAudioDeviceEventHandler(
    IRtcEngineAudioDeviceEventHandler handler)

启动音频外部源采集渲染时,添加音频外部设备事件监控

传入参数

参数名 类型 说明
handler IRtcEngineAudioDeviceEventHandler 音频外部设备事件监控,详见:IRtcEngineAudioDeviceEventHandler

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

pushExternalAudioFrame

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pushExternalAudioFrame(
    byte[] audioFrame,
    int frameNum)

推送外部音频数据。使用 setExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法推送外部音频数据。

传入参数

参数名 类型 说明
audioFrame byte[] pcm 数据,内存大小应该为 frameNum
frameNum int 采样点数量,应该为 setExternalAudioDevice 中设置的 sampleRate / 100。
当设置采样率为48000时, 每次应该推送480个采样点

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

注意

pullExternalAudioFrame

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pullExternalAudioFrame(
    byte[] audioFrame,
    int frameNum)

拉取远端音频数据。使用 setExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。

传入参数

参数名 类型 说明
audioFrame byte[] pcm 数据,内存大小应该为 frameNum
frameNum int 采样点数量,应该为 setExternalAudioDevice 中设置的 sample_rate / 100。
当设置采样率为48000时, 每次应该拉取480个采样点

返回值

方法调用结果
+ true:方法调用成功
+ false:方法调用失败

注意

setupLocalScreen

public abstract int com.ss.video.rtc.engine.RtcEngine.setupLocalScreen(
    VideoCanvas videoCanvas)

设置共享屏幕渲染本地视图

传入参数

参数名 类型 说明
videoCanvas VideoCanvas 设置视频属性 VideoCanvas

返回值

注意

在应用开发中,通常在应用收到 onFirstLocalScreenFrame 事件后调用该方法进行本地视频设置。

publishScreen

public abstract int com.ss.video.rtc.engine.RtcEngine.publishScreen()

发布本地屏幕共享流。

返回值

0 :发布成功 -1 :发布失败

注意

  1. 直播、游戏、云游戏房间模式下,此方法仅适用于角色为主播的用户。应用可以通过调用 setClientRole 方法设置用户角色。
  2. 调用此方法发布本端屏幕共享流后,用户还需要通过设置定时任务周期性调用 pushScreenFrame 方法,将需要发送的屏幕数据推送给 SDK。
  3. 调用该接口后远端能收到 onFirstRemoteScreenFrame 和 onStreamAdd 事件。
  4. 调用该接口后本地能收到 onFirstLocalScreenFrame 事件。

unpublishScreen

public abstract int com.ss.video.rtc.engine.RtcEngine.unpublishScreen()

停止发布本地屏幕共享流。

返回值

0 :发布成功 -1 :发布失败

注意

调用该接口后远端会收到 onStreamRemove 事件

startScreenSharing

public abstract int com.ss.video.rtc.engine.RtcEngine.startScreenSharing(
    Intent mediaProjectionResultData,
    ScreenSharingParameters parameters)

开启屏幕共享。

传入参数

参数名 类型 说明
mediaProjectionResultData Intent Android屏幕共享Intent,申请屏幕共享权限之后拿到的Intent
parameters ScreenSharingParameters 屏幕共享流参数 ScreenSharingParameters

返回值

0 :开启成功 -1 :开启失败

注意

  1. 直播、游戏、云游戏房间模式下,此方法仅适用于角色为主播的用户。应用可以通过调用 setClientRole 方法设置用户角色。
  2. 调用此方法发布本端屏幕共享流后,内部会自动采集当前屏幕数据
  3. 调用该接口后远端能收到 onFirstRemoteScreenFrame 和 onStreamAdd 事件。
  4. 调用该接口后本地能收到 onFirstLocalScreenFrame 事件。

updateScreenSharingParameters

public abstract int com.ss.video.rtc.engine.RtcEngine.updateScreenSharingParameters(
    ScreenSharingParameters parameters)

修改屏幕共享流参数。

传入参数

参数名 类型 说明
parameters ScreenSharingParameters 屏幕共享流参数 ScreenSharingParameters

返回值

0 :开启成功 -1 :开启失败

stopScreenSharing

public abstract int com.ss.video.rtc.engine.RtcEngine.stopScreenSharing()

关闭屏幕共享。

返回值

0 :关闭成功 -1 :关闭失败

注意

调用该接口后远端会收到 onStreamRemove 事件

pushScreenFrame

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pushScreenFrame(
    RtcVideoFrame videoFrame)

发布共享屏幕视频帧

传入参数

参数名 类型 说明
videoFrame RtcVideoFrame 视频帧 RtcVideoFrame

返回值

true :发布成功 false :发布失败

setOnDestroyCompletedCallback

public abstract void com.ss.video.rtc.engine.RtcEngine.setOnDestroyCompletedCallback(
    Runnable callback)

设置引擎销毁后通知 App 的回调函数。

传入参数

参数名 类型 说明
callback Runnable App 接收引擎销毁的回调函数。

setAudioPlayoutMixStream

public abstract void com.ss.video.rtc.engine.RtcEngine.setAudioPlayoutMixStream(
    boolean enable,
    int sampleRate,
    int channelNum)

启动/停止外部音频流混音, 并设置混音数据格式

传入参数

参数名 类型 说明
enable boolean • true: 启用外部音频流混音。
• false: 停止外部音频流混音。
sampleRate int 音频采样率,单位HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。
channelNum int 音频声道个数。目前支持单通道(1),双通道(2)

注意

getAudioMixingStreamCachedFrameNum

public abstract int com.ss.video.rtc.engine.RtcEngine.getAudioMixingStreamCachedFrameNum()

获取SDK当前缓冲数据

返回值

注意

调用该方法可以实时获取缓存数据量,并以此数据为基准调整数据推送节奏来避免内存溢出

pushAudioMixingStreamData

public abstract boolean com.ss.video.rtc.engine.RtcEngine.pushAudioMixingStreamData(
    byte[] audioFrame,
    int frameNum)

向SDK推送混音的音频数据

传入参数

参数名 类型 说明
audioFrame byte[] PCM音频数据,其格式与 setAudioPlayoutMixStream 保持一致。
frameNum int 采样点数。若音频采样率为 48000HZ,则单个声道每秒的数据量为 48000 个采样点,10 毫秒的音频数据对应的采样点数为 480 个采样点。

返回值

注意

AdjustRemoteAudioVolume

public abstract void com.ss.video.rtc.engine.RtcEngine.AdjustRemoteAudioVolume(
    String uid,
    int volume)

调节远端用户音量,默认为100

传入参数

参数名 类型 说明
uid String 远端用户ID
volume int 播放音量,可在 0~400 范围内进行调节
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

setPublishFallbackOption

public abstract int com.ss.video.rtc.engine.RtcEngine.setPublishFallbackOption(
    int option)

设置发布的音视频流回退选项。

传入参数

参数名 类型 说明
option int 本地发布的音视频流回退选项。
• STREAM_FALLBACK_OPTION_DISABLED(0):(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。
• STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW(1):上行网络较弱或性能不佳时,只发送视频小流。

返回值

注意

setRemoteSubscribeFallbackOption

public abstract int com.ss.video.rtc.engine.RtcEngine.setRemoteSubscribeFallbackOption(
    SubscribeFallbackOptions option)

设置订阅的音视频流回退选项。

传入参数

参数名 类型 说明
option SubscribeFallbackOptions 远端订阅的流回退处理选项,详见枚举类型 SubscribeFallbackOptions 。

返回值

注意

setRemoteUserPriority

public abstract int com.ss.video.rtc.engine.RtcEngine.setRemoteUserPriority(
    String uid,
    RemoteUserPriority priority)

设置用户优先级。

传入参数

参数名 类型 说明
uid String 远端用户的 ID 。
priority RemoteUserPriority 远端用户的优先级,详见枚举类型 RemoteUserPriority 。

返回值

注意

registerMetadataObserver

public abstract void com.ss.video.rtc.engine.RtcEngine.registerMetadataObserver(
    IMetadataObserver observer)

注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。
注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 onReadyToSendMetadata 回调。
注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 onMetadataReceived 回调。

传入参数

参数名 类型 说明
observer IMetadataObserver metadata 观察者,详见:IMetadataObserver

注意

setBusinessId

public abstract int com.ss.video.rtc.engine.RtcEngine.setBusinessId(
    String businessId)

设置业务标识参数。
可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。

传入参数

参数名 类型 说明
businessId String 用户设置的自己的 businessId 值。businessId 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意

SetAudioPerfProfile

public abstract void com.ss.video.rtc.engine.RtcEngine.SetAudioPerfProfile(
    AudioPerfProfile profile)

设置音频处理复杂度。对于希望性能占用较低,可设置较低的音频处理复杂度,如果更在意通话质量,可选择设置更高的音频处理复杂度。 加入房间时,会携带本接口传入的机型等级,然后从服务端拉起相应音频配置。如果传入的是 auto,服务端会查询数据库,获得机型等级,再下发配置。 不同复杂度会开关AEC、ANS、AGC算法,调整播放sample rate等, 进行性能和质量的控制。

传入参数

参数名 类型 说明
profile AudioPerfProfile 机型等级, 详见枚举类 AudioPerfProfile

注意

setEncryptInfo

public abstract void com.ss.video.rtc.engine.RtcEngine.setEncryptInfo(
    int aesType,
    String key)

设置AES加密算法和加密密钥
有四种内置的加密算法,为 AES-128-CBC,AES-256-CBC,AES-128-ECB,AES-256-ECB

传入参数

参数名 类型 说明
aesType int 加密类型
可选参数为1、2、3、4 代表的含义如下:
1. AES-128-CBC
2. AES-256-CBC
3. AES-128-ECB
4. AES-256-ECB
key String 加密密钥
长度限制为36位,超出部分将会被截断

注意

setCustomizeEncryptHandler

public abstract void com.ss.video.rtc.engine.RtcEngine.setCustomizeEncryptHandler(
    ByteRtcEngineEncryptHandler handler)

设置自定义加密方法 自定义加密方法需要实现对应的加密/解密方法

传入参数

参数名 类型 说明
handler ByteRtcEngineEncryptHandler 自定义加密handler,需要实现里面的加密和解密方法

注意

checkVideoEffectLicense

public abstract int com.ss.video.rtc.engine.RtcEngine.checkVideoEffectLicense(
    Context context,
    String licenseFile)

视频特效许可证检查

传入参数

参数名 类型 说明
context Context Android Context对象
licenseFile String 许可证文件绝对路径

返回值

0: 许可证验证成功 !0: 许可证验证验证失败

注意

调用enableVideoEffect开始使用视频特效前,需要先调用这个方法进行许可证验证

setVideoEffectAlgoModelPath

public abstract void com.ss.video.rtc.engine.RtcEngine.setVideoEffectAlgoModelPath(
    String modelPath)

设置视频特效算法模型路径

传入参数

参数名 类型 说明
modelPath String 模型路径

enableVideoEffect

public abstract int com.ss.video.rtc.engine.RtcEngine.enableVideoEffect(
    boolean enable)

开启关闭视频特效

传入参数

参数名 类型 说明
enable boolean 是否开启特效,true: 开启,false: 关闭

返回值

0: 成功 !0: 失败。

注意

在调用checkVideoEffectLicense和setVideoEffectAlgoModelPath后调用此方法。

setVideoEffectPath

public abstract void com.ss.video.rtc.engine.RtcEngine.setVideoEffectPath(
    List<String> effectPaths)

设置视频Effect资源路径,可以一次设置多种资源

传入参数

参数名 类型 说明
effectPaths List 视频Effect资源路径列表

addVideoEffectPath

public abstract void com.ss.video.rtc.engine.RtcEngine.addVideoEffectPath(
    List<String> effectPaths)

增加特效包,支持同时增加多个特效包

传入参数

参数名 类型 说明
effectPaths List 要追加的特效包路径数组

removeVideoEffectPath

public abstract void com.ss.video.rtc.engine.RtcEngine.removeVideoEffectPath(
    List<String> effectPaths)

移除特效包,支持同时移除多个特效包

传入参数

参数名 类型 说明
effectPaths List 要移除的特效包路径数组

updateVideoEffect

public abstract void com.ss.video.rtc.engine.RtcEngine.updateVideoEffect(
    String effectPath,
    String key,
    float value)

设置特效强度

传入参数

参数名 类型 说明
effectPath String 特效包路径
key String 需要设置的键名称
value float 要设置的强度值。取值范围[0,1] ,超出范围时设置无效

注意

key 的取值请参考特效包的参数说明文件

setVideoEffectColorFilter

public abstract void com.ss.video.rtc.engine.RtcEngine.setVideoEffectColorFilter(
    String resFile)

设置颜色滤镜

传入参数

参数名 类型 说明
resFile String 滤镜资源包绝对路径

setVideoEffectColorFilterIntensity

public abstract void com.ss.video.rtc.engine.RtcEngine.setVideoEffectColorFilterIntensity(
    float intensity)

设置颜色滤镜强度

传入参数

参数名 类型 说明
intensity float 滤镜强度。取值范围[0,1] ,超出范围时设置无效

startCloudRendering

public abstract void com.ss.video.rtc.engine.RtcEngine.startCloudRendering(
    String effectInfo)

传入参数

参数名 类型 说明
effectInfo String 云端渲染的参数

updateCloudRendering

public abstract void com.ss.video.rtc.engine.RtcEngine.updateCloudRendering(
    String effectInfo)

传入参数

参数名 类型 说明
effectInfo String 云端渲染的参数

stopCloudRendering

public abstract void com.ss.video.rtc.engine.RtcEngine.stopCloudRendering()

SetRuntimeParameters

public abstract void com.ss.video.rtc.engine.RtcEngine.SetRuntimeParameters(
    JSONObject params)

ByteAudioFrame

public class com.ss.video.rtc.engine.utils.ByteAudioFrame

音频帧数据封装

成员变量

类型 名称
byte[] samples
int numOfSamples
int bytesPerSample
int channels
int samplesPerSec

变量说明

samples

public byte[] com.ss.video.rtc.engine.utils.ByteAudioFrame.samples;

音频pcm数据

numOfSamples

public int com.ss.video.rtc.engine.utils.ByteAudioFrame.numOfSamples;

音频数据的采样点个数

bytesPerSample

public int com.ss.video.rtc.engine.utils.ByteAudioFrame.bytesPerSample;

音频数据的每个采样点的字节数(位深)

channels

public int com.ss.video.rtc.engine.utils.ByteAudioFrame.channels;

音频数据的采样通道数

samplesPerSec

public int com.ss.video.rtc.engine.utils.ByteAudioFrame.samplesPerSec;

音频数据的采样率

VideoCanvas

public class com.ss.video.rtc.engine.VideoCanvas

SDK的渲染画布,可以通过 setupLocalVideo setupRemoteVideo 给SDK设置渲染View

成员变量

类型 名称
int BYTERTC_RENDER_HIDDEN
int BYTERTC_RENDER_FIT
int BYTERTC_RENDER_ADAPTIVE
View renderView
int renderMode
String roomId
String uid
boolean isScreen

变量说明

BYTERTC_RENDER_HIDDEN

public static final int com.ss.video.rtc.engine.VideoCanvas.BYTERTC_RENDER_HIDDEN = 1;

SDK渲染模式,HIDDEN模式(图像等比放大,充满屏幕,多余部分会裁剪)

BYTERTC_RENDER_FIT

public static final int com.ss.video.rtc.engine.VideoCanvas.BYTERTC_RENDER_FIT = 2;

SDK渲染模式,FIT模式(图像保持比例,会在画布中完全显示,画布多余部分会显示黑边)

BYTERTC_RENDER_ADAPTIVE

public static final int com.ss.video.rtc.engine.VideoCanvas.BYTERTC_RENDER_ADAPTIVE = 3;

已经废弃,SDK不支持,设置后图像会变形

renderView

public View com.ss.video.rtc.engine.VideoCanvas.renderView;

需要渲染的View

renderMode

public int com.ss.video.rtc.engine.VideoCanvas.renderMode;

SDK渲染模式

roomId

public String com.ss.video.rtc.engine.VideoCanvas.roomId;

房间ID

uid

public String com.ss.video.rtc.engine.VideoCanvas.uid;

用户ID

isScreen

public boolean com.ss.video.rtc.engine.VideoCanvas.isScreen;

是否是屏幕流

RtcVideoFrame

public class com.ss.video.rtc.engine.mediaio.RtcVideoFrame

视频帧

成员变量

类型 名称
ByteBuffer buffer
ByteBuffer extend_data
ByteBuffer supplementary_info
int buffer_type
int format
int stride
int height
int rotation
long timestamp
int cropLeft
int cropTop
int cropRight
int cropBottom
EGLContext eglContext11
android.opengl.EGLContext eglContext14
int glTarget
int textureId
float[] transform

成员函数

返回 名称
RtcVideoFrame RtcVideoFrame

变量说明

buffer

public ByteBuffer com.ss.video.rtc.engine.mediaio.RtcVideoFrame.buffer;

视频数据缓冲区

extend_data

public ByteBuffer com.ss.video.rtc.engine.mediaio.RtcVideoFrame.extend_data;

视频扩展数据

supplementary_info

public ByteBuffer com.ss.video.rtc.engine.mediaio.RtcVideoFrame.supplementary_info;

补充数据

buffer_type

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.buffer_type;

缓冲区类型

format

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.format;

视频帧数据格式

stride

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.stride;

视频帧数据跨距

height

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.height;

视频帧分辨率高度

rotation

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.rotation;

旋转角度

timestamp

public long com.ss.video.rtc.engine.mediaio.RtcVideoFrame.timestamp;

视频帧时间戳, 单位纳秒

cropLeft

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.cropLeft = 0;

指定左边裁剪掉的像素数量。默认为 0

cropTop

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.cropTop = 0;

指定顶边裁剪掉的像素数量。默认为 0

cropRight

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.cropRight = 0;

指定右边裁剪掉的像素数量。默认为 0

cropBottom

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.cropBottom = 0;

指定底边裁剪掉的像素数量。默认为 0

eglContext11

public EGLContext com.ss.video.rtc.engine.mediaio.RtcVideoFrame.eglContext11 = null;

EGL Context

eglContext14

public android.opengl.EGLContext com.ss.video.rtc.engine.mediaio.RtcVideoFrame.eglContext14 = null;

EGL上下文

glTarget

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.glTarget;

textureId

public int com.ss.video.rtc.engine.mediaio.RtcVideoFrame.textureId;

视频帧使用纹理的Id

transform

public float[] com.ss.video.rtc.engine.mediaio.RtcVideoFrame.transform = null;

传入一个 4x4 的变换矩阵,典型值是传入一个单位矩阵

函数说明

RtcVideoFrame

public com.ss.video.rtc.engine.mediaio.RtcVideoFrame.RtcVideoFrame(
    int textureId,
    @PixelFormat int format,
    float[] transform_matrix,
    @Nullable ByteBuffer extend_data,
    @Nullable ByteBuffer supplementary_info,
    int width,
    int height,
    int rotation,
    long timestamp,
    @Nullable Runnable releaseCallback)

构造函数

传入参数

参数名 类型 说明
textureId int OpenGL纹理ID
format @PixelFormat int Opengl纹理格式 2D/OES
transform_matrix float[] 纹理矩阵
extend_data @Nullable ByteBuffer 扩展数据缓冲区
supplementary_info @Nullable ByteBuffer 补充数据缓冲区
width int 视频帧分辨率宽
height int 视频分辨率高度
rotation int 视频帧旋转角度
timestamp long 视频帧时间戳
releaseCallback @Nullable Runnable 视频帧释放回调

VideoStreamDescription

public class com.ss.video.rtc.engine.VideoStreamDescription

视频信息描述

成员变量

类型 名称
Integer> videoSize
int frameRate
int maxKbps
ScaleMode scaleMode
EncoderPreference encodePreference

变量说明

videoSize

public Pair<Integer, Integer> com.ss.video.rtc.engine.VideoStreamDescription.videoSize;

视频大小

frameRate

public int com.ss.video.rtc.engine.VideoStreamDescription.frameRate;

视频帧率

maxKbps

public int com.ss.video.rtc.engine.VideoStreamDescription.maxKbps;

最大码率

scaleMode

public ScaleMode com.ss.video.rtc.engine.VideoStreamDescription.scaleMode = ScaleMode.Auto;

缩放策略,默认是拉伸

encodePreference

public EncoderPreference com.ss.video.rtc.engine.VideoStreamDescription.encodePreference = EncoderPreference.MaintainFramerate;

编码策略偏好