RTCEngine

public abstract class com.ss.bytertc.engine.RTCEngine

RtcEngine接口

静态函数

返回 名称
static synchronized RTCEngine createEngine
static synchronized void destroyEngine
static String getSdkVersion
static String getErrorDescription

成员函数

返回 名称
abstract void setRtcEngineEventHandler
abstract int joinRoom
abstract int leaveRoom
abstract void startVideoCapture
abstract void stopVideoCapture
abstract void startAudioCapture
abstract void stopAudioCapture
abstract void setAudioScenario
abstract void setAudioProfile
abstract int setLocalVideoCanvas
abstract void setLocalVideoSink
abstract void setRemoteVideoSink
abstract int setRemoteVideoCanvas
abstract int setLocalVideoMirrorType
abstract int switchCamera
abstract int setAudioPlaybackDevice
abstract boolean isSpeakerphoneEnabled
abstract void setAudioVolumeIndicationInterval
abstract void muteLocalAudio
abstract void muteLocalVideo
abstract void pauseAllSubscribedStream
abstract void resumeAllSubscribedStream
abstract int updateToken
abstract int setUserVisibility
abstract int publish
abstract int unpublish
abstract void setCaptureVolume
abstract void setPlaybackVolume
abstract long sendRoomMessage
abstract long sendRoomBinaryMessage
abstract long sendUserMessage
abstract long sendUserBinaryMessage
abstract void login
abstract void logout
abstract void updateLoginToken
abstract void setServerParams
abstract void getPeerOnlineStatus
abstract long sendUserMessageOutsideRoom
abstract long sendUserBinaryMessageOutsideRoom
abstract long sendServerMessage
abstract long sendServerBinaryMessage
abstract boolean setRecordingAudioFrameParameters
abstract boolean setPlaybackAudioFrameParameters
abstract boolean setMixedAudioFrameParameters
abstract int registerAudioFrameObserver
abstract int registerLocalAudioProcessor
abstract int registerLocalVideoProcessor
abstract void registerLocalEncodedVideoFrameObserver
abstract void setVideoSourceType
abstract boolean pushExternalVideoFrame
abstract boolean pushExternalVideoFrame
abstract void startLiveTranscoding
abstract void stopLiveTranscoding
abstract void updateLiveTranscoding
abstract int setVideoCaptureConfig
abstract int setVideoEncoderConfig
abstract void subscribeUserStream
abstract void enableExternalAudioDevice
abstract void disableExternalAudioDevice
abstract int pushExternalAudioFrame
abstract int pullExternalAudioFrame
abstract int publishScreen
abstract int unpublishScreen
abstract int startScreenVideoCapture
abstract int stopScreenVideoCapture
abstract boolean pushScreenFrame
abstract void setRemoteAudioPlaybackVolume
abstract IRTCRoom createRoom
abstract int setPublishFallbackOption
abstract int setRemoteSubscribeFallbackOption
abstract int setRemoteUserPriority
abstract int sendSEIMessage
abstract int setBusinessId
abstract void setEncryptInfo
abstract void setCustomizeEncryptHandler
abstract int checkVideoEffectLicense
abstract void setVideoEffectAlgoModelPath
abstract int enableVideoEffect
abstract int setVideoEffectNodes
abstract int updateVideoEffectNode
abstract int setVideoEffectColorFilter
abstract int setVideoEffectColorFilterIntensity
abstract void startCloudRendering
abstract void updateCloudRendering
abstract void stopCloudRendering
abstract void setRuntimeParameters
abstract int feedback
abstract void startASR
abstract void stopASR
abstract int startFileRecording
abstract void stopFileRecording
abstract IAudioMixingManager getAudioMixingManager
abstract IPositionAudioRender getPositionAudioRender
abstract void setScreenAudioSourceType
abstract void setScreenAudioStreamIndex
abstract int pushScreenAudioFrame
abstract void setExternalVideoEncoderEventHandler
abstract boolean pushExternalEncodedVideoFrame
abstract void setVideoDecoderConfig
abstract void requestRemoteVideoKeyFrame
abstract void registerRemoteEncodedVideoFrameObserver
abstract void setEarMonitorMode
abstract void setEarMonitorVolume
abstract void enableAudioPropertiesReport
abstract int sendStreamSyncInfo

函数说明

createEngine

public static synchronized RTCEngine com.ss.bytertc.engine.RTCEngine.createEngine(
    Context context,
    String appId,
    IRTCEngineEventHandler handler,
    Object eglContext,
    JSONObject parameters)

创建引擎对象
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

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

返回值

注意

destroyEngine

public static synchronized void com.ss.bytertc.engine.RTCEngine.destroyEngine(
    RTCEngine engine)

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

注意

getSdkVersion

public static String com.ss.bytertc.engine.RTCEngine.getSdkVersion()

获取 SDK 当前的版本号。

返回值 SDK 当前的版本号。

getErrorDescription

public static String com.ss.bytertc.engine.RTCEngine.getErrorDescription(
    int code)

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

传入参数

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

返回值 String 描述文字

setRtcEngineEventHandler

public abstract void com.ss.bytertc.engine.RTCEngine.setRtcEngineEventHandler(
    IRTCEngineEventHandler engineEventHandler)

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

传入参数

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

注意

joinRoom

public abstract int com.ss.bytertc.engine.RTCEngine.joinRoom(
    String token,
    String roomId,
    UserInfo userInfo,
    RTCRoomConfig roomConfig)

创建/加入房间:房间不存在时即创建房间;房间存在时即加入这个房间。
同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。

传入参数

参数名 类型 说明
token String 动态密钥,用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
roomId String 加入的房间 ID。
房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线 "_",at 符 "@",减号 "-"。
userInfo UserInfo 用户信息。参看 UserInfo。
roomConfig RTCRoomConfig 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 RTCRoomConfig。

返回值

注意

leaveRoom

public abstract int com.ss.bytertc.engine.RTCEngine.leaveRoom()

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。

返回值

注意

startVideoCapture

public abstract void com.ss.bytertc.engine.RTCEngine.startVideoCapture()

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

注意

stopVideoCapture

public abstract void com.ss.bytertc.engine.RTCEngine.stopVideoCapture()

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

注意

startAudioCapture

public abstract void com.ss.bytertc.engine.RTCEngine.startAudioCapture()

开启内部音频采集。默认为关闭状态。
开启后,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

注意

stopAudioCapture

public abstract void com.ss.bytertc.engine.RTCEngine.stopAudioCapture()

关闭内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。

注意

setAudioScenario

public abstract void com.ss.bytertc.engine.RTCEngine.setAudioScenario(
    AudioScenarioType audioScenario)

设置音频场景类型

传入参数

参数名 类型 说明
audioScenario AudioScenarioType 音频场景类型,业务方在加入房间前、加入房间中均可生效,详见枚举类型
AudioScenarioType

setAudioProfile

public abstract void com.ss.bytertc.engine.RTCEngine.setAudioProfile(
    AudioProfileType audioProfile)

设置音质档位。你应根据业务场景需要选择适合的音质档位。

传入参数

参数名 类型 说明
audioProfile AudioProfileType 音质档位,参看 AudioProfileType

注意

setLocalVideoCanvas

public abstract int com.ss.bytertc.engine.RTCEngine.setLocalVideoCanvas(
    StreamIndex streamIndex,
    VideoCanvas videoCanvas)

设置本地视频渲染时,使用的视图,并设置渲染模式。
你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。 如果需要解除绑定,你可以调用本方法绑定空视图。

传入参数

参数名 类型 说明
streamIndex StreamIndex 视频流属性, 参看 StreamIndex
videoCanvas VideoCanvas 视图信息和渲染模式, 参看 VideoCanvas

返回值

setLocalVideoSink

public abstract void com.ss.bytertc.engine.RTCEngine.setLocalVideoSink(
    StreamIndex index,
    IVideoSink videoSink,
    @IVideoSink.PixelFormat int requiredFormat)

将本地视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
index StreamIndex 视频流属性。采集的视频流/屏幕视频流,参看 StreamIndex
videoSink IVideoSink 自定义视频渲染器,参看 IVideoSink
requiredFormat @IVideoSink.PixelFormat int videoSink 适用的视频帧编码格式,参看 PixelFormat

注意

setRemoteVideoSink

public abstract void com.ss.bytertc.engine.RTCEngine.setRemoteVideoSink(
    RemoteStreamKey streamKey,
    IVideoSink videoSink,
    @IVideoSink.PixelFormat int requiredFormat)

将远端视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
streamKey RemoteStreamKey 远端流信息,用于指定需要渲染的视频流来源及属性,参看 RemoteStreamKey
videoSink IVideoSink 自定义视频渲染器,参看 IVideoSink
requiredFormat @IVideoSink.PixelFormat int videoSink 适用的视频帧编码格式,参看 PixelFormat

注意

setRemoteVideoCanvas

public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteVideoCanvas(
    String userId,
    StreamIndex streamIndex,
    VideoCanvas videoCanvas)

渲染来自指定远端用户的视频流时,设置使用的视图和渲染模式。
如果需要解除视频的绑定视图,把 videoCanvas 设置为空。

传入参数

参数名 类型 说明
userId String 视频来源的远端用户 ID
streamIndex StreamIndex 视频流属性,参看 StreamIndex
videoCanvas VideoCanvas 视图信息和渲染模式,参看 VideoCanvas

返回值

注意

setLocalVideoMirrorType

public abstract int com.ss.bytertc.engine.RTCEngine.setLocalVideoMirrorType(
    MirrorType mirrorType)

为本地采集到的视频流开启镜像

传入参数

参数名 类型 说明
mirrorType MirrorType 设置镜像类型,参看 MirrorType

注意

前置摄像头后置摄像头自定义采集视频源 桌面端摄像头
移动端本地渲染镜像,编码传输不镜像 本地渲染不镜像,编码传输不镜像 本地渲染不镜像,编码传输不镜像 /
桌面端// 本地渲染不镜像,编码传输不镜像 本地渲染镜像,编码传输不镜像

switchCamera

public abstract int com.ss.bytertc.engine.RTCEngine.switchCamera(
    CameraId cameraId)

切换视频内部采集时使用的前置/后置摄像头
调用此接口后,在本地会触发 onMediaDeviceStateChanged 回调。

传入参数

参数名 类型 说明
cameraId CameraId 摄像头 ID,参看 CameraId

返回值

注意

setAudioPlaybackDevice

public abstract int com.ss.bytertc.engine.RTCEngine.setAudioPlaybackDevice(
    AudioPlaybackDevice audioPlaybackDevice)

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

传入参数

参数名 类型 说明
audioPlaybackDevice AudioPlaybackDevice 音频播放设备(扬声器或者听筒),详见 AudioPlaybackDevice

返回值 方法调用结果

注意

isSpeakerphoneEnabled

public abstract boolean com.ss.bytertc.engine.RTCEngine.isSpeakerphoneEnabled()

查询扬声器启用状态

返回值 扬声器开启状态

setAudioVolumeIndicationInterval

public abstract void com.ss.bytertc.engine.RTCEngine.setAudioVolumeIndicationInterval(
    int interval)

开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 onAudioVolumeIndication。

传入参数

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

muteLocalAudio

public abstract void com.ss.bytertc.engine.RTCEngine.muteLocalAudio(
    MuteState muteState)

控制本地音频流的发送状态:发送/不发送。
使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。

传入参数

参数名 类型 说明
muteState MuteState 发送状态,标识是否发送本地音频流,详见 MuteState

注意 本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。

muteLocalVideo

public abstract void com.ss.bytertc.engine.RTCEngine.muteLocalVideo(
    MuteState muteState)

停止/启动发送本地视频流,默认不发送。
无论你使用内部视频采集,还是自定义视频采集,你都应使用此接口启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 onUserMuteVideo 的回调。

传入参数

参数名 类型 说明
muteState MuteState 发送状态,标识是否发送本地视频流,参看 MuteState。

注意

pauseAllSubscribedStream

public abstract void com.ss.bytertc.engine.RTCEngine.pauseAllSubscribedStream(
    PauseResumeControlMediaType mediaType)

暂停接收来自远端的媒体流。

传入参数

参数名 类型 说明
mediaType PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。

注意

resumeAllSubscribedStream

public abstract void com.ss.bytertc.engine.RTCEngine.resumeAllSubscribedStream(
    PauseResumeControlMediaType mediaType)

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType

注意

updateToken

public abstract int com.ss.bytertc.engine.RTCEngine.updateToken(
    String token)

更新 Token。
用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onJoinRoomResult 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token String 获取的新的有效 Token。

返回值 方法调用结果。

注意

setUserVisibility

public abstract int com.ss.bytertc.engine.RTCEngine.setUserVisibility(
    boolean enable)

设置用户可见性。默认可见。
通过设置用户的可见性,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
enable boolean 设置用户是否对房间内其他用户可见:
• true: 可以被房间中的其他用户感知,且可以在房间内发布和订阅音视频流;
• false: 无法被房间中的其他用户感知,且只能在房间内订阅音视频流。

返回值

注意

publish

public abstract int com.ss.bytertc.engine.RTCEngine.publish()

在当前所在房间内开始发布本地音视频流

注意 1.多房间模式下,默认音视频流不自动发布。你必须调用此接口,进行手动发布。 2.调用 setUserVisibility 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布音视频流。 3.用户在房间内,同一时间仅能发布一路音视频流。 4.用户调用此方法成功发布音视频流后,房间中的其他用户将会收到 onStreamAdd 回调通知。

unpublish

public abstract int com.ss.bytertc.engine.RTCEngine.unpublish()

在当前所在房间内停止发布本地音视频流。

注意

setCaptureVolume

public abstract void com.ss.bytertc.engine.RTCEngine.setCaptureVolume(
    StreamIndex index,
    int volume)

调节音频采集音量

传入参数

参数名 类型 说明
index StreamIndex 流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex
volume int 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。

注意

setPlaybackVolume

public abstract void com.ss.bytertc.engine.RTCEngine.setPlaybackVolume(
    int volume)

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

传入参数

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

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

sendRoomMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomMessage(
    String messageStr)

给房间内的所有其他用户群发文本消息。

传入参数

参数名 类型 说明
messageStr String 发送的文本消息内容
消息不超过 62KB。

返回值

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

-1:发送失败

注意

sendRoomBinaryMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomBinaryMessage(
    byte[] buffer)

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

传入参数

参数名 类型 说明
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

返回值

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

-1:发送失败

注意

sendUserMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendUserMessage(
    String userId,
    String messageStr)

给房间内指定的用户发送点对点文本消息。

传入参数

参数名 类型 说明
userId String 消息接收用户的 ID
messageStr String 发送的文本消息内容
消息不超过 62KB。

返回值

注意

sendUserBinaryMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendUserBinaryMessage(
    String userId,
    byte[] buffer)

给房间内指定的用户发送点对点二进制消息。

传入参数

参数名 类型 说明
userId String 消息接收用户的 ID
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

login

public abstract void com.ss.bytertc.engine.RTCEngine.login(
    String token,
    String uid)

必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息

传入参数

参数名 类型 说明
token String 动态密钥
用户登录必须携带的 Token,用于鉴权验证。
本 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
uid String 用户 ID
用户 ID 在 appid的维度下是唯一的。

注意

logout

public abstract void com.ss.bytertc.engine.RTCEngine.logout()

调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。

注意

updateLoginToken

public abstract void com.ss.bytertc.engine.RTCEngine.updateLoginToken(
    String token)

更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 LOGIN_ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token String 更新的动态密钥

注意

setServerParams

public abstract void com.ss.bytertc.engine.RTCEngine.setServerParams(
    String signature,
    String url)

设置业务服务器参数
客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。

传入参数

参数名 类型 说明
signature String 动态签名
业务服务器会使用该签名对请求进行鉴权验证。
url String 业务服务器的地址

注意

getPeerOnlineStatus

public abstract void com.ss.bytertc.engine.RTCEngine.getPeerOnlineStatus(
    String peer_user_id)

查询对端用户或本端用户的登录状态

传入参数

参数名 类型 说明
peer_user_id String 需要查询的用户 ID

注意

sendUserMessageOutsideRoom

public abstract long com.ss.bytertc.engine.RTCEngine.sendUserMessageOutsideRoom(
    String uid,
    String message)

给房间外指定的用户发送文本消息(P2P)

传入参数

参数名 类型 说明
uid String 消息接收用户的 ID
message String 发送的文本消息内容。
消息不超过 62KB。

返回值

注意

sendUserBinaryMessageOutsideRoom

public abstract long com.ss.bytertc.engine.RTCEngine.sendUserBinaryMessageOutsideRoom(
    String uid,
    byte[] buffer)

给房间外指定的用户发送二进制消息(P2P)

传入参数

参数名 类型 说明
uid String 消息接收用户的 ID
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

sendServerMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendServerMessage(
    String message)

客户端给业务服务器发送文本消息(P2Server)

传入参数

参数名 类型 说明
message String 发送的文本消息内容
消息不超过 62KB。

返回值

注意

sendServerBinaryMessage

public abstract long com.ss.bytertc.engine.RTCEngine.sendServerBinaryMessage(
    byte[] buffer)

客户端给业务服务器发送二进制消息(P2Server)

传入参数

参数名 类型 说明
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

setRecordingAudioFrameParameters

public abstract boolean com.ss.bytertc.engine.RTCEngine.setRecordingAudioFrameParameters(
    int sampleRate,
    int channels)

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

传入参数

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

返回值 方法调用结果

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

setPlaybackAudioFrameParameters

public abstract boolean com.ss.bytertc.engine.RTCEngine.setPlaybackAudioFrameParameters(
    int sampleRate,
    int channels)

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

传入参数

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

返回值 方法调用结果

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

setMixedAudioFrameParameters

public abstract boolean com.ss.bytertc.engine.RTCEngine.setMixedAudioFrameParameters(
    int sampleRate,
    int channels)

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

传入参数

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

返回值 方法调用结果

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

registerAudioFrameObserver

public abstract int com.ss.bytertc.engine.RTCEngine.registerAudioFrameObserver(
    IAudioFrameObserver observer)

注册音频数据回调观察者

传入参数

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

返回值 方法调用结果

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

registerLocalAudioProcessor

public abstract int com.ss.bytertc.engine.RTCEngine.registerLocalAudioProcessor(
    IAudioProcessor audioProcessor,
    AudioFormat audioFormat)

设置自定义音频处理器。
使用该处理器,你可以调用 processAudioFrame 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。
SDK 只持有 processor 的弱引用,你应保证其生命周期。

传入参数

参数名 类型 说明
audioProcessor IAudioProcessor 自定义音频处理器,参看 IAudioProcessor。如果传入null,则不对 RTC SDK 采集得到的音频帧进行自定义处理。
audioFormat AudioFormat 自定义音频参数格式,参看 AudioFormat,SDK 将按指定设置给出音频帧。

注意 重复调用此接口时,仅最后一次调用生效。效果不会叠加。

registerLocalVideoProcessor

public abstract int com.ss.bytertc.engine.RTCEngine.registerLocalVideoProcessor(
    IVideoProcessor processor,
    VideoPreprocessorConfig config)

设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。

传入参数

参数名 类型 说明
processor IVideoProcessor 自定义视频处理器,详见 IVideoProcessor。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
config VideoPreprocessorConfig 自定义视频前处理器适用的设置,详见 VideoPreprocessorConfig。
当前,config 中的 required_pixel_format 仅支持:I420、TEXTURE_2D 和 UNKNOW:
• 设置为 UNKNOW 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
你可以通过 getPixelFormat 获取实际采集的视频帧格式,支持的格式为:I420、 TEXTURE_2D 和 TEXTURE_OES
• 设置为 I420 或 TEXTURE_2D 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。
• 设置为其他值时,此方法调用失败。

返回值

注意 经前处理后,返回给 RTC SDK 的视频帧格式仅支持 I420 和 TEXTURE_2D。

registerLocalEncodedVideoFrameObserver

public abstract void com.ss.bytertc.engine.RTCEngine.registerLocalEncodedVideoFrameObserver(
    ILocalEncodedVideoFrameObserver observer)

注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户

传入参数

参数名 类型 说明
observer ILocalEncodedVideoFrameObserver 本地频帧监测器,参看 ILocalEncodedVideoFrameObserver 。将参数设置为 null 则取消注册。

注意 该方法可在进房前后的任意时间调用,越早调用越早监测视频帧

setVideoSourceType

public abstract void com.ss.bytertc.engine.RTCEngine.setVideoSourceType(
    StreamIndex index,
    VideoSourceType type)

设置向 SDK 输入的视频源

传入参数

参数名 类型 说明
index StreamIndex 视频流的属性,参看 StreamIndex
type VideoSourceType 视频输入源类型,参看 VideoSourceType

注意

pushExternalVideoFrame

public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
    RTCVideoFrame frame)

推送外部视频帧。

传入参数

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

返回值

注意

pushExternalVideoFrame

public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
    RTCVideoFrame frame,
    boolean isDirectEncode)

推送外部视频帧。

传入参数

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

返回值

注意

startLiveTranscoding

public abstract void com.ss.bytertc.engine.RTCEngine.startLiveTranscoding(
    LiveTranscoding liveTranscode,
    ILiveTranscodingObserver observer)

开启转推直播,并设置合流的视频视图布局和音频属性。

传入参数

参数名 类型 说明
liveTranscode LiveTranscoding 转推直播配置参数。详见 LiveTranscoding。
observer ILiveTranscodingObserver 端云一体转推直播观察者。详见 ILiveTranscodingObserver。
• 启用服务端转推时,设置 observer 为 null。
• 启用端云一体转推直播时,设置 observer 接收合流完成的音视频流和 SEI 信息。

注意

stopLiveTranscoding

public abstract void com.ss.bytertc.engine.RTCEngine.stopLiveTranscoding()

停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。

updateLiveTranscoding

public abstract void com.ss.bytertc.engine.RTCEngine.updateLiveTranscoding(
    LiveTranscoding transcoding)

更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

传入参数

参数名 类型 说明
transcoding LiveTranscoding 配置参数,详见 LiveTranscoding。

setVideoCaptureConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoCaptureConfig(
    VideoCaptureConfig videoCaptureConfig)

设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括分辨率、帧率。

传入参数

参数名 类型 说明
videoCaptureConfig VideoCaptureConfig 视频采集参数。参看: VideoCaptureConfig。

返回值

注意

setVideoEncoderConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
    List<VideoStreamDescription> videoStreamDescriptions)

启动推送多路视频流,设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
videoStreamDescriptions List 要推送的多路视频流参数,参看 VideoStreamDescription。
最多支持 4 路参数。当设置了多路参数时,分辨率必须是从大到小排列。
最大分辨率为 4096px

返回值

注意

subscribeUserStream

public abstract void com.ss.bytertc.engine.RTCEngine.subscribeUserStream(
    String uid,
    StreamIndex streamType,
    SubscribeMediaType mediaType,
    SubscribeVideoConfig subscribeVideoConfig)

订阅房间内指定的远端音视频流。
无论自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布音视频流的用户 ID。
streamType StreamIndex 流属性,用于指定订阅主流/屏幕流,参看 StreamIndex。
mediaType SubscribeMediaType 媒体类型,用于指定订阅音/视频,参看 SubscribeMediaType。
subscribeVideoConfig SubscribeVideoConfig 视频订阅配置,参看 SubscribeVideoConfig 。

注意

enableExternalAudioDevice

public abstract void com.ss.bytertc.engine.RTCEngine.enableExternalAudioDevice(
    AudioFormat recordingFormat,
    AudioFormat playbackFormat)

启用自定义音频采集和渲染。

传入参数

参数名 类型 说明
recordingFormat AudioFormat 自定义音频数据采集格式,详见 AudioFormat
playbackFormat AudioFormat 自定义音频数据渲染格式,详见 AudioFormat

注意

disableExternalAudioDevice

public abstract void com.ss.bytertc.engine.RTCEngine.disableExternalAudioDevice()

禁用已开启的自定义音频采集和渲染。

注意

pushExternalAudioFrame

public abstract int com.ss.bytertc.engine.RTCEngine.pushExternalAudioFrame(
    AudioFrame audioFrame)

推送外部采集的音频数据到 RTC SDK。

传入参数

参数名 类型 说明
audioFrame AudioFrame 音频数据帧,详见 AudioFrame

返回值 方法调用结果

注意

pullExternalAudioFrame

public abstract int com.ss.bytertc.engine.RTCEngine.pullExternalAudioFrame(
    AudioFrame audioFrame)

拉取音频数据,用于外部播放。

传入参数

参数名 类型 说明
audioFrame AudioFrame 音频数据帧,详见 AudioFrame

返回值 方法调用结果

注意

publishScreen

public abstract int com.ss.bytertc.engine.RTCEngine.publishScreen()

发布本地屏幕共享流。

返回值

注意

unpublishScreen

public abstract int com.ss.bytertc.engine.RTCEngine.unpublishScreen()

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

返回值

注意

startScreenVideoCapture

public abstract int com.ss.bytertc.engine.RTCEngine.startScreenVideoCapture(
    Intent mediaProjectionResultData)

使用 RTC SDK 提供的采集模块,采集当前屏幕视频流,用于共享。

传入参数

参数名 类型 说明
mediaProjectionResultData Intent 向 Android 设备申请屏幕共享权限后,拿到的 Intent 数据,参看 getMediaProjection

返回值

注意

stopScreenVideoCapture

public abstract int com.ss.bytertc.engine.RTCEngine.stopScreenVideoCapture()

停止屏幕视频流采集。

返回值

注意 调用此接口不影响屏幕视频流发布。

pushScreenFrame

public abstract boolean com.ss.bytertc.engine.RTCEngine.pushScreenFrame(
    RTCVideoFrame videoFrame)

发布共享屏幕视频帧

传入参数

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

返回值

setRemoteAudioPlaybackVolume

public abstract void com.ss.bytertc.engine.RTCEngine.setRemoteAudioPlaybackVolume(
    String uid,
    int volume)

调节来自指定远端用户的音频播放音量,默认为 100。

传入参数

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

createRoom

public abstract IRTCRoom com.ss.bytertc.engine.RTCEngine.createRoom(
    String roomId)

创建房间的ID

传入参数

参数名 类型 说明
roomId String 标识通话房间的房间 ID,最大长度为 128 字节的非空字符串。支持的字符集范围为:
• 26 个大写字母 A ~ Z
• 26 个小写字母 a ~ z
• 10 个数字 0 ~ 9
• 下划线 "_", at 符 "@", 减号 "-"
多房间模式下,调用创建房间接口后,请勿调用同样的 roomID 创建房间,否则会导致创建房间失败。

返回值 IRtcRoom 创建的房间IRtcRoom

注意

setPublishFallbackOption

public abstract int com.ss.bytertc.engine.RTCEngine.setPublishFallbackOption(
    PublishFallbackOption option)

设置发布的音视频流回退选项。
你可以调用这个接口来设置网络情况不佳或性能不足时只发送小流,以保证通话质量。

传入参数

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

返回值

注意

setRemoteSubscribeFallbackOption

public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteSubscribeFallbackOption(
    SubscribeFallbackOptions option)

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

传入参数

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

返回值

注意

setRemoteUserPriority

public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteUserPriority(
    String uid,
    RemoteUserPriority priority)

设置用户优先级。

传入参数

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

返回值

注意

sendSEIMessage

public abstract int com.ss.bytertc.engine.RTCEngine.sendSEIMessage(
    StreamIndex streamIndex,
    byte[] message,
    int repeatCount)

在视频通信时,通过视频帧发送 SEI 数据。

传入参数

参数名 类型 说明
streamIndex StreamIndex 指定携带 SEI 信息的媒体流类型,参看 StreamIndex
message byte[] SEI 消息。长度不超过 4 kB。
repeatCount int 消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。

返回值

注意

setBusinessId

public abstract int com.ss.bytertc.engine.RTCEngine.setBusinessId(
    String businessId)

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

传入参数

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

返回值

注意

setEncryptInfo

public abstract void com.ss.bytertc.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.bytertc.engine.RTCEngine.setCustomizeEncryptHandler(
    RTCEncryptHandler handler)

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

传入参数

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

注意

checkVideoEffectLicense

public abstract int com.ss.bytertc.engine.RTCEngine.checkVideoEffectLicense(
    Context context,
    String licenseFile)

视频特效许可证检查

传入参数

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

返回值

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

setVideoEffectAlgoModelPath

public abstract void com.ss.bytertc.engine.RTCEngine.setVideoEffectAlgoModelPath(
    String modelPath)

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

传入参数

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

enableVideoEffect

public abstract int com.ss.bytertc.engine.RTCEngine.enableVideoEffect(
    boolean enable)

创建/销毁视频特效引擎

传入参数

参数名 类型 说明
enable boolean 是否创建视频特效引擎
• true: 创建
• false: 销毁

返回值 方法调用结果

注意

setVideoEffectNodes

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectNodes(
    List<String> effectNodes)

设置视频特效素材包,支持同时设置多个素材包

传入参数

参数名 类型 说明
effectNodes List 特效素材包路径数组

返回值

注意 你须在调用 enableVideoEffect 后调用该方法。

updateVideoEffectNode

public abstract int com.ss.bytertc.engine.RTCEngine.updateVideoEffectNode(
    String effectNode,
    String key,
    float value)

设置特效强度

传入参数

参数名 类型 说明
effectNode String 特效素材包路径
key String 需要设置的素材 key 名称,参看 素材key对应说明。
value float 需要设置的强度值,取值范围为 [0,1],超出该范围设置无效。

返回值

注意 该接口仅适用于同时含有上述三个参数的特效资源,对于如大部分贴纸类等没有强度参数的特效,该接口调用无效。

setVideoEffectColorFilter

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilter(
    String resFile)

设置颜色滤镜

传入参数

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

返回值

setVideoEffectColorFilterIntensity

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilterIntensity(
    float intensity)

设置已启用的颜色滤镜强度

传入参数

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

返回值

startCloudRendering

public abstract void com.ss.bytertc.engine.RTCEngine.startCloudRendering(
    String effectInfo)

传入参数

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

updateCloudRendering

public abstract void com.ss.bytertc.engine.RTCEngine.updateCloudRendering(
    String effectInfo)

传入参数

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

stopCloudRendering

public abstract void com.ss.bytertc.engine.RTCEngine.stopCloudRendering()

setRuntimeParameters

public abstract void com.ss.bytertc.engine.RTCEngine.setRuntimeParameters(
    JSONObject params)

设置运行时的参数

feedback

public abstract int com.ss.bytertc.engine.RTCEngine.feedback(
    List<ProblemFeedback> types,
    String problemDesc)

通话结束,将用户反馈的问题上报到 RTC

传入参数

参数名 类型 说明
types List 预设问题列表,参看 ProblemFeedback
problemDesc String 预设问题以外的其他问题的具体描述

返回值

注意 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。

startASR

public abstract void com.ss.bytertc.engine.RTCEngine.startASR(
    RTCASRConfig asrConfig,
    IRTCASREngineEventHandler handler)

开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。

传入参数

参数名 类型 说明
asrConfig RTCASRConfig 校验信息,参看 RTCASRConfig
handler IRTCASREngineEventHandler 语音识别服务使用状态回调,参看 IRTCASREngineEventHandler。

stopASR

public abstract void com.ss.bytertc.engine.RTCEngine.stopASR()

关闭语音识别服务

startFileRecording

public abstract int com.ss.bytertc.engine.RTCEngine.startFileRecording(
    StreamIndex type,
    RecordingConfig config)

该方法将通话过程中的音视频数据录制到本地的文件中。

传入参数

参数名 类型 说明
type StreamIndex 流属性,指定录制主流还是屏幕流,参看 StreamIndex
config RecordingConfig 本地录制参数配置,参看 RecordingConfig

返回值 0: 正常

-1: 参数设置异常 -2: 当前版本 SDK 不支持该特性,请联系技术支持人员

注意

stopFileRecording

public abstract void com.ss.bytertc.engine.RTCEngine.stopFileRecording(
    StreamIndex type)

停止本地录制

传入参数

参数名 类型 说明
type StreamIndex 流属性,指定停止主流或者屏幕流录制,参看 StreamIndex

注意

getAudioMixingManager

public abstract IAudioMixingManager com.ss.bytertc.engine.RTCEngine.getAudioMixingManager()

混音管理接口创建

返回值 混音管理实例,详见IAudioMixingManager

getPositionAudioRender

public abstract IPositionAudioRender com.ss.bytertc.engine.RTCEngine.getPositionAudioRender()

获取位置音频接口实例,包括范围语音、空间语音等和位置相关的音频接口。

返回值 位置音频管理接口实例。如果返回 NULL,则表示不支持空间音频,详见 IPositionAudioRender 。

注意

setScreenAudioSourceType

public abstract void com.ss.bytertc.engine.RTCEngine.setScreenAudioSourceType(
    AudioSourceType sourceType)

在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)

传入参数

参数名 类型 说明
sourceType AudioSourceType 屏幕音频输入源类型, 参看 AudioSourceType

注意

setScreenAudioStreamIndex

public abstract void com.ss.bytertc.engine.RTCEngine.setScreenAudioStreamIndex(
    StreamIndex index)

在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式

传入参数

参数名 类型 说明
index StreamIndex 混流方式,参看 StreamIndex
• STREAM_INDEX_MAIN: 将屏幕音频流和麦克风采集到的音频流混流
• STREAM_INDEX_SCREEN: 将屏幕音频流和麦克风采集到的音频流分为两路音频流

注意 你应该在 publishScreen 之前,调用此方法。否则,你将收到 onWarning 的报错:WARNING_CODE_SET_SCREEN_STREAM_INDEX_FAILED

pushScreenAudioFrame

public abstract int com.ss.bytertc.engine.RTCEngine.pushScreenAudioFrame(
    AudioFrame audioFrame)

使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。

传入参数

参数名 类型 说明
audioFrame AudioFrame 音频数据帧,参见 AudioFrame

返回值 方法调用结果

注意

setExternalVideoEncoderEventHandler

public abstract void com.ss.bytertc.engine.RTCEngine.setExternalVideoEncoderEventHandler(
    IExternalVideoEncoderEventHandler encoder_handler)

注册自定义编码帧推送事件回调

传入参数

参数名 类型 说明
encoder_handler IExternalVideoEncoderEventHandler 自定义编码帧回调类,参看 IExternalVideoEncoderEventHandler

注意

pushExternalEncodedVideoFrame

public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalEncodedVideoFrame(
    StreamIndex index,
    int video_index,
    RTCEncodedVideoFrame video_stream)

推送自定义编码后的视频流

传入参数

参数名 类型 说明
index StreamIndex 需要推送的编码流的属性,参看 StreamIndex
video_index int 对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig 设置了多路流,此处数量须与之保持一致
video_stream RTCEncodedVideoFrame 编码流视频帧信息,参看 RTCEncodedVideoFrame。

注意

setVideoDecoderConfig

public abstract void com.ss.bytertc.engine.RTCEngine.setVideoDecoderConfig(
    RemoteStreamKey key,
    VideoDecoderConfig config)

在订阅远端视频流之前,设置远端视频数据解码方式

传入参数

参数名 类型 说明
key RemoteStreamKey 远端流信息,指定对哪一路视频流进行解码方式设置,参看 RemoteStreamKey。
config VideoDecoderConfig 视频解码方式,参看 VideoDecoderConfig。

注意

requestRemoteVideoKeyFrame

public abstract void com.ss.bytertc.engine.RTCEngine.requestRemoteVideoKeyFrame(
    RemoteStreamKey stream_info)

在订阅远端视频流之后,向远端请求关键帧

传入参数

参数名 类型 说明
stream_info RemoteStreamKey 远端流信息,参看 RemoteStreamKey。

注意

registerRemoteEncodedVideoFrameObserver

public abstract void com.ss.bytertc.engine.RTCEngine.registerRemoteEncodedVideoFrameObserver(
    IRemoteEncodedVideoFrameObserver observer)

注册远端编码后视频数据回調。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 OnRemoteEncodedVideoFrame 回调

传入参数

参数名 类型 说明
observer IRemoteEncodedVideoFrameObserver 远端编码后视频数据监测器,参看 IRemoteEncodedVideoFrameObserver

注意

setEarMonitorMode

public abstract void com.ss.bytertc.engine.RTCEngine.setEarMonitorMode(
    EarMonitorMode mode)

打开/关闭耳返功能。

传入参数

参数名 类型 说明
mode EarMonitorMode 耳返模式,详见 EarMonitorMode

注意

setEarMonitorVolume

public abstract void com.ss.bytertc.engine.RTCEngine.setEarMonitorVolume(
    int volume)

设置耳返音量。

传入参数

参数名 类型 说明
volume int 耳返音量,调节范围:[0,100],单位:%

注意

enableAudioPropertiesReport

public abstract void com.ss.bytertc.engine.RTCEngine.enableAudioPropertiesReport(
    AudioPropertiesConfig config)

启用音量提示。

传入参数

参数名 类型 说明
config AudioPropertiesConfig 音频信息提示的相关配置,详见 AudioPropertiesConfig

注意 开启提示后,你可以: + 通过 onLocalAudioPropertiesReport 回调获取本地麦克风和屏幕音频流采集的音量信息;

sendStreamSyncInfo

public abstract int com.ss.bytertc.engine.RTCEngine.sendStreamSyncInfo(
    byte[] data,
    StreamSycnInfoConfig config)

发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 onStreamSyncInfoReceived 回调。

传入参数

参数名 类型 说明
data byte[] 消息内容。
config StreamSycnInfoConfig 音频流同步信息的相关配置。详见 StreamSycnInfoConfig 。

返回值

IAudioMixingManager

public abstract class com.ss.bytertc.engine.audio.IAudioMixingManager

混音管理类

成员函数

返回 名称
abstract void startAudioMixing
abstract void stopAudioMixing
abstract void pauseAudioMixing
abstract void resumeAudioMixing
abstract void preloadAudioMixing
abstract void unloadAudioMixing
abstract void setAudioMixingVolume
abstract int getAudioMixingDuration
abstract int getAudioMixingCurrentPosition
abstract void setAudioMixingPosition
abstract void enableAudioMixingFrame
abstract void disableAudioMixingFrame
abstract int pushAudioMixingFrame

函数说明

startAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.startAudioMixing(
    int id,
    String filePath,
    AudioMixingConfig config)

开始播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID
混音 ID 用于标识混音,请保证混音 ID 唯一性。
如果已经通过 preloadAudioMixing 将音效加载至内存,确保此处的 ID 与 preloadAudioMixing 设置的 ID 相同。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。
filePath String 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。
config AudioMixingConfig 混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig

注意

stopAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.stopAudioMixing(
    int id)

停止播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID

注意

pauseAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.pauseAudioMixing(
    int id)

暂停播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID

注意

resumeAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.resumeAudioMixing(
    int id)

恢复播放音乐文件及混音

传入参数

参数名 类型 说明
id int 混音 ID

注意

preloadAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.preloadAudioMixing(
    int id,
    String filePath)

预加载指定音乐文件到内存中

传入参数

参数名 类型 说明
id int 混音 ID
应用调用者维护,请保证唯一性。
如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 上一个混音停止,然后加载后一个混音。
使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。
filePath String 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。
如果音乐文件长度超过 20s,会回调加载失败,见 onAudioMixingStateChanged。

注意

unloadAudioMixing

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.unloadAudioMixing(
    int id)

卸载指定音乐文件

传入参数

参数名 类型 说明
id int 混音 ID

注意 不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。

setAudioMixingVolume

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingVolume(
    int id,
    int volume,
    AudioMixingType type)

调节音乐文件在本地和远端播放的音量大小

传入参数

参数名 类型 说明
id int 混音 ID
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)
type AudioMixingType 混音播放类型
设置音乐文件是否本地播放、以及是否发送到远端,由此控制音乐文件本地或远端播放的音量,详见 AudioMixingType。

注意

getAudioMixingDuration

public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingDuration(
    int id)

获取音乐文件时长

传入参数

参数名 类型 说明
id int 混音 ID

返回值

注意 调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。

getAudioMixingCurrentPosition

public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingCurrentPosition(
    int id)

获取音乐文件播放进度

传入参数

参数名 类型 说明
id int 混音 ID

返回值

注意 调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixing 开始播放音乐文件。

setAudioMixingPosition

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPosition(
    int id,
    int position)

设置音乐文件的播放位置

传入参数

参数名 类型 说明
id int 混音 ID
position int 进度条位置
参数为整数,单位为毫秒。

注意

enableAudioMixingFrame

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.enableAudioMixingFrame(
    AudioMixingType type)

启动外部音频流混音

传入参数

参数名 类型 说明
type AudioMixingType 混音播放类型
设置外部音频流是否本地播放、以及是否发送到远端,详见 AudioMixingType。

注意

disableAudioMixingFrame

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.disableAudioMixingFrame()

关闭外部音频流混音

注意 使用 enableAudioMixingFrame 开启外部音频流混音后,请使用本方法关闭该混音。

pushAudioMixingFrame

public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.pushAudioMixingFrame(
    AudioFrame audioFrame)

向 SDK 推送外部音频帧数据

传入参数

参数名 类型 说明
audioFrame AudioFrame 音频帧
详见 AudioFrame。

返回值

注意

IPositionAudioRender

public interface com.ss.bytertc.engine.audio.IPositionAudioRender

位置音频接口

成员函数

返回 名称
void enableAudioSpatialRender
int updatePosition
int updateSelfOrientation

函数说明

enableAudioSpatialRender

void com.ss.bytertc.engine.audio.IPositionAudioRender.enableAudioSpatialRender(
    boolean enable)

开启或关闭空间音频效果。

传入参数

参数名 类型 说明
enable boolean 空间音频效果开关,默认关闭。
• true: 开启空间语音;
• false: 关闭空间语音。

updatePosition

int com.ss.bytertc.engine.audio.IPositionAudioRender.updatePosition(
    Position pos)

更新自己的位置坐标。

传入参数

参数名 类型 说明
pos Position 三维坐标的值,默认为 [0, 0, 0]。根据需要,自行建立空间直角坐标系,并将需要使用空间音频功能的用户,都置于同一坐标系下。
三维坐标的值

返回值

updateSelfOrientation

int com.ss.bytertc.engine.audio.IPositionAudioRender.updateSelfOrientation(
    HumanOrientation orientation)

更新自己的朝向。本地朝向的设置只影响本地听到的音频效果,不影响本地发出的音频效果。

传入参数

参数名 类型 说明
orientation HumanOrientation 朝向信息,必须是单位向量。参看 HumanOrientation。当朝向的正方向使用默认值时,朝向的坐标系和位置信息使用的坐标系一致。此时,正前方朝向是:[1, 0, 0],正右方朝向是:[0, 1, 0],正上方朝向是:[0, 0, 1]。

返回值 0: 代表更新成功

注意 本地用户调用 enableAudioSpatialRender 使用空间音频功能时,需要调用 updatePosition 接口更新位置坐标后,才能调用此接口。

IVideoProcessor

public abstract class com.ss.bytertc.engine.video.IVideoProcessor

成员函数

返回 名称
abstract RTCVideoFrame processVideoFrame
void onGLEnvInitiated
void onGLEnvRelease

函数说明

processVideoFrame

public abstract RTCVideoFrame com.ss.bytertc.engine.video.IVideoProcessor.processVideoFrame(
    RTCVideoFrame frame)

获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessorRegisterLocalVideoProcessor 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。

传入参数

参数名 类型 说明
frame RTCVideoFrame RTC SDK 采集得到的视频帧,参看 RTCVideoFrame。

返回值 经过视频前处理后的视频帧,返回给 RTC SDK 供编码和传输,参看 RTCVideoFrame。

注意

onGLEnvInitiated

public void com.ss.bytertc.engine.video.IVideoProcessor.onGLEnvInitiated()

OpenGL 环境创建完成时,收到此回调。

注意 当你选择使用 processVideoFrame 所在线程以外的线程进行视频前处理时,必须设置 OpenGL 环境。环境创建完成时,你会收到此通知,此时,你可以进行一些初始化操作。

onGLEnvRelease

public void com.ss.bytertc.engine.video.IVideoProcessor.onGLEnvRelease()

OpenGL 环境即将销毁时,收到此回调。此时,你可以释放纹理等资源。

IRTCRoom

public abstract class com.ss.bytertc.engine.IRTCRoom

成员函数

返回 名称
abstract void destroy
abstract int joinRoom
abstract void setRTCRoomEventHandler
abstract void leaveRoom
abstract void setUserRole
abstract void setUserVisibility
abstract void updateToken
abstract void sendUserMessage
abstract void sendUserBinaryMessage
abstract void sendRoomMessage
abstract void sendRoomBinaryMessage
abstract void publish
abstract void unpublish
abstract void publishScreen
abstract void unpublishScreen
abstract void subscribeUserStream
abstract void setAudioVolumeIndicationInterval
abstract void pauseAllSubscribedStream
abstract void resumeAllSubscribedStream
abstract void startLiveTranscoding
abstract void stopLiveTranscoding
abstract void updateLiveTranscoding

函数说明

destroy

public abstract void com.ss.bytertc.engine.IRTCRoom.destroy()

销毁房间

joinRoom

public abstract int com.ss.bytertc.engine.IRTCRoom.joinRoom(
    String token,
    UserInfo userInfo,
    MultiRoomConfig roomConfig)

加入房间。
多房间场景下,调用 createRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。

传入参数

参数名 类型 说明
token String 动态密钥。用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
userInfo UserInfo 用户信息。参看 UserInfo。
roomConfig MultiRoomConfig 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 MultiRoomConfig。

返回值

注意

setRTCRoomEventHandler

public abstract void com.ss.bytertc.engine.IRTCRoom.setRTCRoomEventHandler(
    IRTCRoomEventHandler rtcRoomEventHandler)

设置房间事件回调 handler

传入参数

参数名 类型 说明
rtcRoomEventHandler IRTCRoomEventHandler 参看 IRTCRoomEventHandler

leaveRoom

public abstract void com.ss.bytertc.engine.IRTCRoom.leaveRoom()

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

注意

setUserRole

public abstract void com.ss.bytertc.engine.IRTCRoom.setUserRole(
    RTCEngine.ClientRole role)

设置用户角色。默认角色为主播。
通过设置不同的用户角色,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
role RTCEngine.ClientRole 用户角色,参看 ClientRole。

注意

setUserVisibility

public abstract void com.ss.bytertc.engine.IRTCRoom.setUserVisibility(
    boolean enable)

设置用户可见性。默认可见。
通过设置用户的可见性,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
enable boolean 是否可见

返回值

注意

updateToken

public abstract void com.ss.bytertc.engine.IRTCRoom.updateToken(
    String token)

更新 Token。
用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token String 获取的新的有效 Token。

注意

sendUserMessage

public abstract void com.ss.bytertc.engine.IRTCRoom.sendUserMessage(
    String userId,
    String messageStr)

给房间内指定的用户发送点对点文本消息

传入参数

参数名 类型 说明
userId String 消息接收用户的 ID
messageStr String 发送的文本消息内容
消息不超过 62KB。

注意

sendUserBinaryMessage

public abstract void com.ss.bytertc.engine.IRTCRoom.sendUserBinaryMessage(
    String userId,
    byte[] buffer)

给房间内指定的用户发送点对点二进制消息。

传入参数

参数名 类型 说明
userId String 消息接收用户的 ID
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

注意

sendRoomMessage

public abstract void com.ss.bytertc.engine.IRTCRoom.sendRoomMessage(
    String messageStr)

给房间内的所有其他用户群发文本消息。

传入参数

参数名 类型 说明
messageStr String 发送的文本消息内容
消息不超过 62KB。

注意

sendRoomBinaryMessage

public abstract void com.ss.bytertc.engine.IRTCRoom.sendRoomBinaryMessage(
    byte[] buffer)

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

传入参数

参数名 类型 说明
buffer byte[] 发送的二进制消息内容
消息不超过 46KB。

注意

publish

public abstract void com.ss.bytertc.engine.IRTCRoom.publish()

发布本地视频流。

注意 1.多房间模式下,默认音视频流不自动发布。你必须调用此接口,进行手动发布。 2.调用 setUserVisibility 方法将自身设置为不可见后无法调用该方法,需将自身切换至可见后方可调用该方法发布音视频流。 3.用户在房间内,同一时间仅能发布一路音视频流。 4.用户调用此方法成功发布音视频流后,房间中的其他用户将会收到 onStreamAdd 回调通知。

unpublish

public abstract void com.ss.bytertc.engine.IRTCRoom.unpublish()

取消发布本地视频流。

注意

publishScreen

public abstract void com.ss.bytertc.engine.IRTCRoom.publishScreen()

发布本地屏幕共享流。

注意

unpublishScreen

public abstract void com.ss.bytertc.engine.IRTCRoom.unpublishScreen()

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

注意

subscribeUserStream

public abstract void com.ss.bytertc.engine.IRTCRoom.subscribeUserStream(
    String uid,
    StreamIndex streamType,
    RTCEngine.SubscribeMediaType mediaType,
    SubscribeVideoConfig subscribeVideoConfig)

订阅房间内指定的远端音视频流。
无论自动订阅还是手动订阅模式,用户都可以调用此方法按需订阅房间中的音视频流。
该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布音视频流的用户 ID。
streamType StreamIndex 媒体类型,用于指定订阅音/视频,参看 StreamIndex。
mediaType RTCEngine.SubscribeMediaType 媒体类型,用于指定订阅音/视频,参看 SubscribeMediaType。
subscribeVideoConfig SubscribeVideoConfig 视频订阅配置,参看 SubscribeVideoConfig 。

注意

setAudioVolumeIndicationInterval

public abstract void com.ss.bytertc.engine.IRTCRoom.setAudioVolumeIndicationInterval(
    int interval)

开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔,收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 onAudioVolumeIndication。

传入参数

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

pauseAllSubscribedStream

public abstract void com.ss.bytertc.engine.IRTCRoom.pauseAllSubscribedStream(
    RTCEngine.PauseResumeControlMediaType mediaType)

暂停接收来自远端的媒体流。

传入参数

参数名 类型 说明
mediaType RTCEngine.PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。

注意

resumeAllSubscribedStream

public abstract void com.ss.bytertc.engine.IRTCRoom.resumeAllSubscribedStream(
    RTCEngine.PauseResumeControlMediaType mediaType)

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
mediaType RTCEngine.PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType

注意

startLiveTranscoding

public abstract void com.ss.bytertc.engine.IRTCRoom.startLiveTranscoding(
    LiveTranscoding liveTranscode,
    ILiveTranscodingObserver observer)

开启转推直播,并设置合流的视频视图布局和音频属性。

传入参数

参数名 类型 说明
liveTranscode LiveTranscoding 转推直播配置参数。详见 LiveTranscoding。
observer ILiveTranscodingObserver 端云一体转推直播观察者。详见 ILiveTranscodingObserver。
• 启用服务端转推时,设置 observer 为 null。
• 启用端云一体转推直播时,设置 observer 接收合流完成的音视频流和 SEI 信息。

注意

stopLiveTranscoding

public abstract void com.ss.bytertc.engine.IRTCRoom.stopLiveTranscoding()

停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。

updateLiveTranscoding

public abstract void com.ss.bytertc.engine.IRTCRoom.updateLiveTranscoding(
    LiveTranscoding transcoding)

更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

传入参数

参数名 类型 说明
transcoding LiveTranscoding 配置参数,详见 LiveTranscoding。