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 void setVoiceChangerType
abstract void setVoiceReverbType
abstract int setLocalVideoCanvas
abstract int updateLocalVideoCanvas
abstract void setLocalVideoSink
abstract void setRemoteVideoSink
abstract void updateRemoteStreamVideoCanvas
abstract int setRemoteVideoCanvas
abstract int setLocalVideoMirrorType
abstract int setVideoRotationMode
abstract int switchCamera
abstract int setAudioRoute
abstract int setDefaultAudioRoute
abstract AudioRoute getAudioRoute
abstract void enableExternalSoundCard
abstract void pauseAllSubscribedStream
abstract void resumeAllSubscribedStream
abstract int updateToken
abstract int setUserVisibility
abstract int publishStream
abstract int unpublishStream
abstract void setCaptureVolume
abstract void setPlaybackVolume
abstract void setLocalVoicePitch
abstract void enableVocalInstrumentBalance
abstract void enablePlaybackDucking
abstract long sendRoomMessage
abstract long sendRoomBinaryMessage
abstract long sendUserMessage
abstract long sendUserBinaryMessage
abstract long 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 NetworkDetectionStartReturn startNetworkDetection
abstract void stopNetworkDetection
abstract void enableAudioFrameCallback
abstract void disableAudioFrameCallback
abstract int registerAudioFrameObserver
abstract int registerAudioProcessor
abstract void enableAudioProcessor
abstract void disableAudioProcessor
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 enableSimulcastMode
abstract int setRemoteVideoConfig
abstract int setVideoEncoderConfig
abstract int setVideoEncoderConfig
abstract int setScreenVideoEncoderConfig
abstract void subscribeStream
abstract void unsubscribeStream
abstract void subscribeScreen
abstract void unsubscribeScreen
abstract int pushExternalAudioFrame
abstract int setAudioSourceType
abstract int setAudioRenderType
abstract int pullExternalAudioFrame
abstract int publishScreen
abstract int unpublishScreen
abstract boolean pushScreenFrame
abstract void setRemoteAudioPlaybackVolume
abstract int setMultiDeviceAVSync
abstract int setPublishFallbackOption
abstract int setSubscribeFallbackOption
abstract int setRemoteUserPriority
abstract int sendSEIMessage
abstract int setBusinessId
abstract void setEncryptInfo
abstract void setCustomizeEncryptHandler
abstract int checkVideoEffectLicense
abstract int initVirtualBackground
abstract int enableVirtualBackground
abstract int disableVirtualBackground
abstract void setVideoEffectAlgoModelPath
abstract int enableVideoEffect
abstract int setVideoEffectNodes
abstract int updateVideoEffectNode
abstract int setVideoEffectColorFilter
abstract int setVideoEffectColorFilterIntensity
abstract int registerFaceDetectionObserver
abstract int enableEffectBeauty
abstract int setBeautyIntensity
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 void setScreenAudioSourceType
abstract void setScreenAudioStreamIndex
abstract int pushScreenAudioFrame
abstract void startScreenCapture
abstract void updateScreenCapture
abstract void stopScreenCapture
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
abstract boolean isCameraTorchSupported
abstract boolean isCameraZoomSupported
abstract int setCameraZoomRatio
abstract float getCameraZoomMaxRatio
abstract int setCameraTorch
abstract boolean isCameraFocusPositionSupported
abstract int setCameraFocusPosition
abstract boolean isCameraExposurePositionSupported
abstract int setCameraExposurePosition
abstract int setCameraExposureCompensation
abstract int startForwardStreamToRooms
abstract int updateForwardStreamToRooms
abstract void stopForwardStreamToRooms
abstract void pauseForwardStreamToAllRooms
abstract void resumeForwardStreamToAllRooms
abstract void muteAudioPlayback
abstract int startPushPublicStream
abstract int stopPushPublicStream
abstract int updatePublicStreamParam
abstract int startPlayPublicStream
abstract int stopPlayPublicStream
abstract int setPublicStreamVideoCanvas
abstract void setPublicStreamVideoSink
abstract void setVideoWatermark
abstract void clearVideoWatermark
abstract void startCloudProxy
abstract void stopCloudProxy
abstract int startEchoTest
abstract int stopEchoTest

函数说明

createEngine

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

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

传入参数

参数名 类型 说明
context Context Android Application Context
appId String 每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
handler IRTCEngineEventHandler SDK 回调给应用层的 Handler,详见 IRTCEngineEventHandler。SDK 只持有 handler 的弱引用,你应注意保持 handler 的生命周期必须大于 RTCEngine 的生命周期,即 handler 必须在调用 createEngine 之前创建,在调用 destroyEngine 之后销毁。
parameters JSONObject 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值

注意

destroyEngine

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

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

传入参数

参数名 类型 说明
engine RTCEngine 由 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。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。
roomId String 加入的房间 ID。
该字符串符合正则表达式:[a-zA-Z0-9_@\-]{1,128}
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()

立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。
本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

注意

stopVideoCapture

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

立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。 调用该方法,本地用户会收到 onVideoDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

注意

startAudioCapture

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

开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。 调用该方法开启后,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

注意

stopAudioCapture

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

立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。 调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 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)

设置音质档位。当所选的 ChannelProfile 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。

传入参数

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

注意

setVoiceChangerType

public abstract void com.ss.bytertc.engine.RTCEngine.setVoiceChangerType(
    VoiceChangerType voiceChanger)

设置变声特效类型

传入参数

参数名 类型 说明
voiceChanger VoiceChangerType 变声特效类型,参看 VoiceChangerType

注意

setVoiceReverbType

public abstract void com.ss.bytertc.engine.RTCEngine.setVoiceReverbType(
    VoiceReverbType voiceReverb)

设置混响特效类型

传入参数

参数名 类型 说明
voiceReverb VoiceReverbType 混响特效类型,参看 VoiceReverbType

注意

setLocalVideoCanvas

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

设置本地视频渲染时使用的视图,并设置渲染模式。

传入参数

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

返回值

注意

updateLocalVideoCanvas

public abstract int com.ss.bytertc.engine.RTCEngine.updateLocalVideoCanvas(
    StreamIndex streamIndex,
    int renderMode,
    int background_color)

修改本地视频渲染模式和背景色。

传入参数

参数名 类型 说明
streamIndex StreamIndex 视频流属性。参看 StreamIndex
renderMode int 渲染模式。参看 VideoCanvas.renderMode
background_color int 背景颜色。参看 VideoCanvas.background_color

返回值

注意 你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。

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

注意

updateRemoteStreamVideoCanvas

public abstract void com.ss.bytertc.engine.RTCEngine.updateRemoteStreamVideoCanvas(
    String roomId,
    String userId,
    StreamIndex streamIndex,
    int renderMode,
    int background_color)

修改远端视频渲染模式和背景色。

传入参数

参数名 类型 说明
roomId String 房间 ID
userId String 用户 ID
streamIndex StreamIndex 参看 StreamIndex
renderMode int 渲染模式,参看 VideoCanvas.renderMode
background_color int 背景颜色,参看 VideoCanvas.background_color

注意 你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。

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

注意

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

setVideoRotationMode

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoRotationMode(
    VideoRotationMode rotationMode)

设置采集视频的旋转模式。默认以 App 方向为旋转参考系。
接收端渲染视频时,将按照和发送端相同的方式进行旋转。

传入参数

参数名 类型 说明
rotationMode VideoRotationMode 视频旋转参考系为 App 方向或重力方向,参看 VideoRotationMode

返回值

注意

switchCamera

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

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

传入参数

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

返回值

注意

setAudioRoute

public abstract int com.ss.bytertc.engine.RTCEngine.setAudioRoute(
    AudioRoute audioRoute)

设置当前音频播放路由。默认使用 setDefaultAudioRoute 中设置的音频路由。
音频播放路由发生变化时,会收到 onAudioRouteChanged 回调。

传入参数

参数名 类型 说明
audioRoute AudioRoute 音频播放路由,参见 AudioRoute。
不支持 AudioRouteUnknown。
当音量类型为媒体音量时,此参数不可设置为 AudioRouteEarpiece;当音量模式为通话音量时,此参数不可设置为 AudioRouteHeadsetBluetooth 或 AudioRouteHeadsetUSB。

返回值

注意

setDefaultAudioRoute

public abstract int com.ss.bytertc.engine.RTCEngine.setDefaultAudioRoute(
    AudioRoute route)

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

传入参数

参数名 类型 说明
route AudioRoute 音频播放设备。参看 AudioRoute

返回值 方法调用结果

注意

getAudioRoute

public abstract AudioRoute com.ss.bytertc.engine.RTCEngine.getAudioRoute()

获取当前使用的音频播放路由。

返回值 详见 AudioRoute

注意 要设置音频路由,详见 setAudioRoute。

enableExternalSoundCard

public abstract void com.ss.bytertc.engine.RTCEngine.enableExternalSoundCard(
    boolean enable)

启用匹配外置声卡的音频处理模式

传入参数

参数名 类型 说明
enable boolean • true: 开启
• false: 不开启(默认)

注意

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 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。 更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token String 有效的 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN。

返回值 方法调用结果。

注意 当 Token 过期时,用户将被移出房间并将收到 onError 回调, ERROR_CODE_EXPIRED_TOKEN,此时需要重新获取 Token,并调用 joinRoom 重新加入房间。

setUserVisibility

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

设置用户可见性。默认可见。

传入参数

参数名 类型 说明
enable boolean 设置用户是否对房间内其他用户可见:
• true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
• false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。

返回值

注意

publishStream

public abstract int com.ss.bytertc.engine.RTCEngine.publishStream(
    MediaStreamType type)

在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType

返回值 方法调用结果:

注意

unpublishStream

public abstract int com.ss.bytertc.engine.RTCEngine.unpublishStream(
    MediaStreamType type)

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType

返回值

注意

setCaptureVolume

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

调节音频采集音量

传入参数

参数名 类型 说明
index StreamIndex 流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex
volume int 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意 在开启音频采集前后,你都可以使用此接口设定采集音量。

setPlaybackVolume

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

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

传入参数

参数名 类型 说明
volume int 音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

setLocalVoicePitch

public abstract void com.ss.bytertc.engine.RTCEngine.setLocalVoicePitch(
    int pitch)

开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

参数名 类型 说明
pitch int 相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onWarning 回调,提示 WarningCode 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法

enableVocalInstrumentBalance

public abstract void com.ss.bytertc.engine.RTCEngine.enableVocalInstrumentBalance(
    boolean enable)

开启/关闭音量均衡功能。
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。

传入参数

参数名 类型 说明
enable boolean 是否开启音量均衡功能:
• True: 是
• False: 否

注意 该接口须在调用 startAudioMixing 开始播放音频文件之前调用。

enablePlaybackDucking

public abstract void com.ss.bytertc.engine.RTCEngine.enablePlaybackDucking(
    boolean enable)

打开/关闭音量闪避功能,适用于“一起看”等场景。
开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名 类型 说明
enable boolean 是否开启音量闪避:
• True: 是
• False: 否

sendRoomMessage

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

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

传入参数

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

返回值

>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,
    MessageConfig config)

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

传入参数

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

返回值

注意

sendUserBinaryMessage

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

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

传入参数

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

返回值

注意

login

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

必须先登录,才能发送房间外点对点消息和向应用服务器发送消息
在调用本接口登录后,如果想要登出,需要调用 logout。

传入参数

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

返回值

注意 本地用户调用此方法登录成功后,会收到 onLoginResult 回调通登录结果,远端用户不会收到通知。

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,
    MessageConfig config)

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

传入参数

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

返回值

注意

sendUserBinaryMessageOutsideRoom

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

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

传入参数

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

返回值

注意

sendServerMessage

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

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

传入参数

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

返回值

注意

sendServerBinaryMessage

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

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

传入参数

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

返回值

注意

startNetworkDetection

public abstract NetworkDetectionStartReturn com.ss.bytertc.engine.RTCEngine.startNetworkDetection(
    boolean isTestUplink,
    int expectedUplinkBitrate,
    boolean isTestDownlink,
    int expectedDownlinkBitrate)

开启通话前网络探测

传入参数

参数名 类型 说明
isTestUplink boolean 是否探测上行带宽
expectedUplinkBitrate int 期望上行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。
isTestDownlink boolean 是否探测下行带宽
expectedDownlinkBitrate int 期望下行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。

返回值 开启通话前网络探测结果,详见 NetworkDetectionStartReturn

注意

stopNetworkDetection

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

停止通话前网络探测

注意

enableAudioFrameCallback

public abstract void com.ss.bytertc.engine.RTCEngine.enableAudioFrameCallback(
    AudioFrameCallbackMethod method,
    AudioFormat format)

开启音频回调

传入参数

参数名 类型 说明
method AudioFrameCallbackMethod 音频回调方法,参看 AudioFrameCallbackMethod。
当音频回调方法设置为 AUDIO_FRAME_CALLBACK_RECORD(0)、AUDIO_FRAME_CALLBACK_PLAYBACK(1)、AUDIO_FRAME_CALLBACK_MIXED(2)时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。
当音频回调方法设置为 AUDIO_FRAME_CALLBACK_REMOTE_USER(3)时,暂不支持音频参数格式中设置准确的采样率和声道,你需要设置为自动。
format AudioFormat 音频参数格式,参看 AudioFormat。

注意 开启音频回调并调用 registerAudioFrameObserver 后,IAudioFrameObserver 会收到对应的音频回调。两者调用顺序没有限制且相互独立。

disableAudioFrameCallback

public abstract void com.ss.bytertc.engine.RTCEngine.disableAudioFrameCallback(
    AudioFrameCallbackMethod method)

关闭音频回调

传入参数

参数名 类型 说明
method AudioFrameCallbackMethod 音频回调方法,参看 AudioFrameCallbackMethod。

注意 该方法需要在调用 enableAudioFrameCallback 之后调用。

registerAudioFrameObserver

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

注册音频数据回调观察者。

传入参数

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

返回值

注意 注册音频数据回调观察者并调用 enableAudioFrameCallback 后,IAudioFrameObserver 会收到对应的音频回调。

registerAudioProcessor

public abstract int com.ss.bytertc.engine.RTCEngine.registerAudioProcessor(
    IAudioFrameProcessor processor)

注册自定义音频处理器。
注册完成后,你可以调用 enableAudioProcessor,对本地采集或接收到的远端音频进行处理。

传入参数

参数名 类型 说明
processor IAudioFrameProcessor 自定义音频处理器,详见 IAudioFrameProcessor。
SDK 只持有 processor 的弱引用,你应保证其生命周期。

注意 重复调用此接口时,仅最后一次调用生效。

enableAudioProcessor

public abstract void com.ss.bytertc.engine.RTCEngine.enableAudioProcessor(
    AudioProcessorMethod method,
    AudioFormat format)

获取本地采集的音频帧或接收到的远端音频帧,进行自定义处理。

传入参数

参数名 类型 说明
method AudioProcessorMethod 音频帧类型,参看 AudioProcessorMethod。通过多次调用此接口,可以对不同的音频帧进行自定义处理。
选择不同的值时,收到的回调不同:
• 选择本地采集的音频时,会收到 onProcessRecordAudioFrame
• 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame
• 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame
format AudioFormat 设定自定义处理时获取的音频帧格式,参看 AudioFormat。

注意

disableAudioProcessor

public abstract void com.ss.bytertc.engine.RTCEngine.disableAudioProcessor(
    AudioProcessorMethod method)

关闭自定义音频处理。

传入参数

参数名 类型 说明
method AudioProcessorMethod 音频帧类型,参看 AudioProcessorMethod。

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 获取实际采集的视频帧格式,支持的格式为:kVideoPixelFormatI420、 kVideoPixelFormatTexture2D 和 kVideoPixelFormatTextureOES
• 设置为 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 输入的视频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。

传入参数

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

注意

pushExternalVideoFrame

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

推送外部视频帧。

传入参数

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

返回值

注意

pushExternalVideoFrame

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

废弃
使用 pushExternalVideoFrame(VideoFrame frame) 代替

推送外部视频帧。

传入参数

参数名 类型 说明
frame VideoFrame 视频帧的数据信息
isDirectEncode boolean 选填,当你的开发环境不支持默认参数时,你需要填写此参数。true:使用用户的纹理做硬编码;false:拷贝业务纹理后做硬编码

返回值

注意

startLiveTranscoding

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

新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

参数名 类型 说明
taskId String 转推直播任务 ID。
你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
liveTranscode LiveTranscoding 转推直播配置参数。详见 LiveTranscoding。
observer ILiveTranscodingObserver 端云一体转推直播观察者。详见 ILiveTranscodingObserver。
通过注册 observer 接收转推直播相关的回调。

注意

stopLiveTranscoding

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

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

传入参数

参数名 类型 说明
taskId String 转推直播任务 ID。可以指定想要停止的转推直播任务。

updateLiveTranscoding

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

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

传入参数

参数名 类型 说明
taskId String 转推直播任务 ID。指定想要更新参数设置的转推直播任务。
transcoding LiveTranscoding 配置参数,详见 LiveTranscoding。

setVideoCaptureConfig

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

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

传入参数

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

返回值

注意

enableSimulcastMode

public abstract int com.ss.bytertc.engine.RTCEngine.enableSimulcastMode(
    boolean enabled)

该方法设置视频流发布端是否开启发布多路编码参数不同的视频流的模式。

传入参数

参数名 类型 说明
enabled boolean 是否开启推送多路视频流模式:
• True:开启
• False:关闭(默认)

返回值 方法调用结果:

注意

setRemoteVideoConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteVideoConfig(
    String userId,
    RemoteVideoConfig videoConfig)

设置期望订阅的远端视频流的参数。

传入参数

参数名 类型 说明
userId String 期望订阅的远端视频流发布用户的 ID。
videoConfig RemoteVideoConfig 期望订阅的远端视频流参数,参看 RemoteVideoConfig。

注意

setVideoEncoderConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
    VideoEncoderConfig max_solution)

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
该接口支持设置一路视频流参数,设置多路参数请使用重载 API:setVideoEncoderConfig

传入参数

参数名 类型 说明
max_solution VideoEncoderConfig 期望发布的最大分辨率视频流参数。参看 VideoEncoderConfiguration。

返回值 方法调用结果:

注意

setVideoEncoderConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
    VideoEncoderConfig[] channel_solutions)

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

传入参数

参数名 类型 说明
channel_solutions VideoEncoderConfig[] 要推送的多路视频流的参数,最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。
当设置了多路参数时,分辨率必须是从大到小排列。需注意,所设置的分辨率是各路流的最大分辨率。参看 VideoEncoderConfig。

返回值 方法调用结果:

注意

setScreenVideoEncoderConfig

public abstract int com.ss.bytertc.engine.RTCEngine.setScreenVideoEncoderConfig(
    VideoEncoderConfig screen_solution)

为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
screen_solution VideoEncoderConfig 屏幕共享视频流参数。参看 VideoEncoderConfig。

返回值 方法调用结果: 0:成功
!0:失败

注意 调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。

subscribeStream

public abstract void com.ss.bytertc.engine.RTCEngine.subscribeStream(
    String uid,
    MediaStreamType type)

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeStream

public abstract void com.ss.bytertc.engine.RTCEngine.unsubscribeStream(
    String uid,
    MediaStreamType type)

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定取消订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

subscribeScreen

public abstract void com.ss.bytertc.engine.RTCEngine.subscribeScreen(
    String uid,
    MediaStreamType type)

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeScreen

public abstract void com.ss.bytertc.engine.RTCEngine.unsubscribeScreen(
    String uid,
    MediaStreamType type)

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定取消订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

pushExternalAudioFrame

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

推送自定义采集的音频数据到 RTC SDK。

传入参数

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

返回值 方法调用结果

注意

setAudioSourceType

public abstract int com.ss.bytertc.engine.RTCEngine.setAudioSourceType (
    AudioSourceType type)

切换音频采集方式

传入参数

参数名 类型 说明
type AudioSourceType 音频数据源,详见 AudioSourceType。
默认使用内部音频采集。音频采集和渲染方式无需对应。

返回值 方法调用结果:

注意

setAudioRenderType

public abstract int com.ss.bytertc.engine.RTCEngine.setAudioRenderType (
    AudioRenderType type)

切换音频渲染方式

传入参数

参数名 类型 说明
type AudioRenderType 音频输出类型,详见 AudioRenderType
默认使用内部音频渲染。音频采集和渲染方式无需对应。

返回值 方法调用结果:

注意

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(
    MediaStreamType type)

在当前所在房间内发布本地屏幕共享音视频流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。

返回值

注意

unpublishScreen

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

停止将本地屏幕共享音视频流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType

返回值

注意

pushScreenFrame

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

推送屏幕视频帧

传入参数

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

返回值

setRemoteAudioPlaybackVolume

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

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

传入参数

参数名 类型 说明
uid String 音频来源的远端用户 ID
volume int 音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

setMultiDeviceAVSync

public abstract int com.ss.bytertc.engine.RTCEngine.setMultiDeviceAVSync(
    String audioUserId)

设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。

传入参数

参数名 类型 说明
audioUserId String 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。

返回值 方法调用结果:

注意

setPublishFallbackOption

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

设置发布的音视频流的回退选项。
你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。

传入参数

参数名 类型 说明
option PublishFallbackOption 本地发布的音视频流回退选项,参看 PublishFallbackOption。

返回值 方法调用结果:

注意

setSubscribeFallbackOption

public abstract int com.ss.bytertc.engine.RTCEngine.setSubscribeFallbackOption(
    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 只是一个标签,颗粒度需要用户自定义。

返回值

注意

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 开始使用视频特效前,需要先调用这个方法进行许可证验证

initVirtualBackground

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

虚拟背景功能初始化。

传入参数

参数名 类型 说明
context Context Android Context 对象指针(JObject 类型)。
licenseFile String CV 许可证文件的绝对路径
modelFile String 模型参数文件的绝对路径

返回值

enableVirtualBackground

public abstract int com.ss.bytertc.engine.RTCEngine.enableVirtualBackground(
    VirtualBackgroundSource source)

开启虚拟背景。

传入参数

参数名 类型 说明
source VirtualBackgroundSource 虚拟背景对象,详见 VirtualBackgroundSource 。

返回值

注意

disableVirtualBackground

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

关闭虚拟背景。

返回值

注意 调用 enableVirtualBackground 开启虚拟背景后,可以调用此接口关闭虚拟背景。

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 特效素材包路径数组
要取消当前视频特效,将此参数设置为 null。

返回值

注意 你须在调用 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],超出范围时设置无效。

返回值

registerFaceDetectionObserver

public abstract int com.ss.bytertc.engine.RTCEngine.registerFaceDetectionObserver(
    IFaceDetectionObserver observer,
    int interval)

注册人脸检测结果回调观察者
注册此观察者后,你会周期性收到 onFaceDetectResult 回调。

传入参数

参数名 类型 说明
observer IFaceDetectionObserver 人脸检测结果回调观察者,参看 IFaceDetectionObserver。
interval int 时间间隔。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval • 视频采集帧间隔。

返回值

enableEffectBeauty

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

开启/关闭基础美颜

传入参数

参数名 类型 说明
enable boolean 基础美颜开关
• true: 开启基础美颜
• false: 关闭基础美颜(默认)

返回值

注意

setBeautyIntensity

public abstract int com.ss.bytertc.engine.RTCEngine.setBeautyIntensity(
    EffectBeautyMode beautyMode,
    float intensity)

调整基础美颜强度

传入参数

参数名 类型 说明
beautyMode EffectBeautyMode 基础美颜模式,参看 EffectBeautyMode。
intensity float 美颜强度,取值范围为 [0,1]。强度为 0 表示关闭,默认强度为 0.5。

返回值

注意

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,
    RecordingType recordingType)

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

传入参数

参数名 类型 说明
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

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

返回值 方法调用结果

注意

startScreenCapture

public abstract void com.ss.bytertc.engine.RTCEngine.startScreenCapture(
    ScreenMediaType type,
    Intent mediaProjectionResultData)

使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。

传入参数

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

注意

updateScreenCapture

public abstract void com.ss.bytertc.engine.RTCEngine.updateScreenCapture(
    ScreenMediaType type)

使用 RTC SDK 内部屏幕采集后,更新采集的媒体类型。

传入参数

参数名 类型 说明
type ScreenMediaType 媒体类型,指定屏幕采集媒体类型,参看 ScreenMediaType。

返回值

注意 在 startScreenCapture 后调用该方法。

stopScreenCapture

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

在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。

注意

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

注意 开启提示后,你可以:

sendStreamSyncInfo

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

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

传入参数

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

返回值

注意 在采用 CHANNEL_PROFILE_LIVE_BROADCASTING 作为房间模式时,此消息一定会送达。在其他房间模式下,如果本地用户未说话,此消息不一定会送达。

isCameraTorchSupported

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

检测当前使用的摄像头(前置/后置),是否支持闪光灯。

返回值

注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测闪光能力。

isCameraZoomSupported

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

检测当前使用的摄像头(前置/后置),是否支持变焦(数码/光学变焦)。

返回值

注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头变焦能力。

setCameraZoomRatio

public abstract int com.ss.bytertc.engine.RTCEngine.setCameraZoomRatio(
    float zoom)

设置当前使用的摄像头(前置/后置)的变焦倍数

传入参数

参数名 类型 说明
zoom float 变焦倍数。取值范围是 [1, <最大变焦倍数>]。
最大变焦倍数可以通过调用 getCameraZoomMaxRatio 获取。

返回值

注意

getCameraZoomMaxRatio

public abstract float com.ss.bytertc.engine.RTCEngine.getCameraZoomMaxRatio()

获取当前使用的摄像头(前置/后置)的最大变焦倍数

返回值 最大变焦倍数

注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头最大变焦倍数。

setCameraTorch

public abstract int com.ss.bytertc.engine.RTCEngine.setCameraTorch(
    TorchState torch_state)

打开/关闭当前使用的摄像头(前置/后置)的闪光灯

传入参数

参数名 类型 说明
torch_state TorchState 闪光灯状态。参考 TorchState

返回值

注意

isCameraFocusPositionSupported

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

检查当前使用的摄像头是否支持手动对焦。

返回值

注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集,才能检查摄像头是否支持手动对焦。

setCameraFocusPosition

public abstract int com.ss.bytertc.engine.RTCEngine.setCameraFocusPosition(
    float x,
    float y)

设置当前使用的摄像头的对焦点。

传入参数

参数名 类型 说明
x float 对焦点水平方向归一化坐标。以本地预览画布的左上为原点,取值范围为 [0, 1],0 表示最左边,1 表示最右边。
y float 对焦点垂直方向归一化坐标。以本地预览画布的左上为原点,取值范围为 [0, 1],0 表示最上边,1 表示最下边。

返回值

注意

isCameraExposurePositionSupported

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

检查当前使用的摄像头是否支持手动设置曝光点。

返回值

注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检查曝光点设置能力。

setCameraExposurePosition

public abstract int com.ss.bytertc.engine.RTCEngine.setCameraExposurePosition(
    float x,
    float y)

设置当前使用的摄像头的曝光点

传入参数

参数名 类型 说明
x float 曝光点水平方向归一化坐标。以本地预览画布的左上为原点,取值范围为 [0, 1],0 表示最左边,1 表示最右边。
y float 曝光点垂直方向归一化坐标。以本地预览画布的左上为原点,取值范围为 [0, 1],0 表示最上边,1 表示最下边。

返回值

注意

setCameraExposureCompensation

public abstract int com.ss.bytertc.engine.RTCEngine.setCameraExposureCompensation(
    float val)

设置当前使用的摄像头的曝光补偿。

传入参数

参数名 类型 说明
val float 曝光补偿值,取值范围 [-1, 1],0 为系统默认值(没有曝光补偿)。

返回值

注意

startForwardStreamToRooms

public abstract int com.ss.bytertc.engine.RTCEngine.startForwardStreamToRooms(
    List<ForwardStreamInfo> forwardStreamInfos)

开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

传入参数

参数名 类型 说明
forwardStreamInfos List 跨房间媒体流转发指定房间的信息。参看 ForwardStreamInfo。

返回值

0: 方法调用成功
<0: 方法调用失败

注意

updateForwardStreamToRooms

public abstract int com.ss.bytertc.engine.RTCEngine.updateForwardStreamToRooms(
    List<ForwardStreamInfo> forwardStreamInfos)

更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。

传入参数

参数名 类型 说明
forwardStreamInfos List 跨房间媒体流转发目标房间信息。参看 ForwardStreamInfo。

返回值

0: 方法调用成功
<0: 方法调用失败

注意

stopForwardStreamToRooms

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

停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。

注意

pauseForwardStreamToAllRooms

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

暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。

注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。

resumeForwardStreamToAllRooms

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

恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。

muteAudioPlayback

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

控制本地音频流播放状态:播放/不播放

传入参数

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

注意 本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。

startPushPublicStream

public abstract int com.ss.bytertc.engine.RTCEngine.startPushPublicStream(
    String publicStreamId,
    PublicStreaming publicStreamParam)

发布一路公共流
公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。

传入参数

参数名 类型 说明
publicStreamId String 公共流ID
publicStreamParam PublicStreaming 公共流参数。详见 PublicStreaming。
一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。
如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。

返回值 0: 成功。同时将收到 onPushPublicStreamResult 回调。

注意

stopPushPublicStream

public abstract int com.ss.bytertc.engine.RTCEngine.stopPushPublicStream(
    String publicStreamId)

停止发布当前用户发布的公共流
关于发布公共流,查看 startPushPublicStream

传入参数

参数名 类型 说明
publicStreamId String 公共流 ID
指定的流必须为当前用户所发布。

返回值

updatePublicStreamParam

public abstract int com.ss.bytertc.engine.RTCEngine.updatePublicStreamParam(
    String publicStreamId,
    PublicStreaming publicStreamParam)

更新公共流参数
关于发布公共流,查看 startPushPublicStream。

传入参数

参数名 类型 说明
publicStreamId String 公共流 ID
指定的流必须为当前用户所发布。
publicStreamParam PublicStreaming 配置参数,详见 PublicStreaming。

返回值

startPlayPublicStream

public abstract int com.ss.bytertc.engine.RTCEngine.startPlayPublicStream(
    String publicStreamId)

订阅指定公共流
无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。

传入参数

参数名 类型 说明
publicStreamId String 公共流ID,如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。

返回值

注意

stopPlayPublicStream

public abstract int com.ss.bytertc.engine.RTCEngine.stopPlayPublicStream(
    String publicStreamId)

取消订阅指定公共流
关于订阅公共流,查看 startPlayPublicStream。

传入参数

参数名 类型 说明
publicStreamId String 公共流ID

返回值

setPublicStreamVideoCanvas

public abstract int com.ss.bytertc.engine.RTCEngine.setPublicStreamVideoCanvas(
    String publicStreamId,
    VideoCanvas videoCanvas)

为指定公共流绑定内部渲染视图。

传入参数

参数名 类型 说明
publicStreamId String 公共流ID
videoCanvas VideoCanvas 内部渲染视图,如果需要解除视频的绑定视图,把 videoCanvas 设置为空。详见 VideoCanvas

返回值

setPublicStreamVideoSink

public abstract void com.ss.bytertc.engine.RTCEngine.setPublicStreamVideoSink(
    String publicStreamId,
    IVideoSink videoSink,
    @IVideoSink.PixelFormat int requiredFormat)

为指定公共流绑定自定义渲染器。详见自定义视频渲染。

传入参数

参数名 类型 说明
publicStreamId String 公共流ID
videoSink IVideoSink 自定义视频渲染器,需要释放渲染器资源时,将 videoSink 设置为 null。参看 IVideoSink
requiredFormat @IVideoSink.PixelFormat int videoSink 适用的视频帧编码格式,参看 PixelFormat

返回值

setVideoWatermark

public abstract void com.ss.bytertc.engine.RTCEngine.setVideoWatermark(
    StreamIndex streamIndex,
    String imagePath,
    RTCWatermarkConfig watermarkConfig)

在指定视频流上添加水印。

传入参数

参数名 类型 说明
streamIndex StreamIndex 需要添加水印的视频流属性,参看 StreamIndex。
imagePath String 水印图片路径,支持本地文件绝对路径、Asset 资源路径(/assets/xx.png)、URI 地址(content://),长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
watermarkConfig RTCWatermarkConfig 水印参数,参看 RTCWatermarkConfig。

注意

clearVideoWatermark

public abstract void com.ss.bytertc.engine.RTCEngine.clearVideoWatermark(
    StreamIndex streamIndex)

移除指定视频流的水印。

传入参数

参数名 类型 说明
streamIndex StreamIndex 需要移除水印的视频流属性,参看 StreamIndex。

startCloudProxy

public abstract void com.ss.bytertc.engine.RTCEngine.startCloudProxy(
    List<CloudProxyInfo> cloudProxiesInfo)

开启云代理

传入参数

参数名 类型 说明
cloudProxiesInfo List 云代理服务器信息列表。参看 CloudProxyInfo。

注意

stopCloudProxy

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

关闭云代理

注意 要开启云代理,调用 startCloudProxy。

startEchoTest

public abstract int com.ss.bytertc.engine.RTCEngine.startEchoTest(
    EchoTestConfig config,
    int delayTime)

开启音视频回路测试。
在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。
开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。

传入参数

参数名 类型 说明
config EchoTestConfig 回路测试参数设置,参看 EchoTestConfig。
delayTime int 音视频延迟播放的时间间隔,用于指定在开始检测多长时间后期望收到回放。取值范围为 [2,10],单位为秒,默认为 2 秒。

返回值 方法调用结果:

注意

stopEchoTest

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

停止音视频回路测试。
调用 startEchoTest 开启音视频回路检测后,你必须调用该方法停止检测。

返回值 方法调用结果:

注意 音视频回路检测结束后,所有对系统设备及音视频流的控制均会恢复到开始检测前的状态。

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 setAudioMixingDualMonoMode
abstract void setAudioMixingPitch
abstract int setAudioMixingPlaybackSpeed
abstract void setAudioMixingLoudness
abstract void setAudioMixingProgressInterval
abstract void enableAudioMixingFrame
abstract void disableAudioMixingFrame
abstract int pushAudioMixingFrame
abstract int getAudioTrackCount
abstract void selectAudioTrack

函数说明

startAudioMixing

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

开始播放音频文件。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。

传入参数

参数名 类型 说明
mixId int 混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。
filePath String 用于混音文件路径。
支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以 /assets/ 开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。
不同平台支持的音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY
config AudioMixingConfig 混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig

注意

stopAudioMixing

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

停止播放音频文件

传入参数

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

注意

pauseAudioMixing

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

暂停播放音频文件

传入参数

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

注意

resumeAudioMixing

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

恢复播放音频文件

传入参数

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

注意

preloadAudioMixing

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

预加载指定音频文件到内存中,以避免频繁播放时的重复加载。

传入参数

参数名 类型 说明
mixId int 混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 上一个混音停止,然后加载后一个混音。
使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。
filePath String 混音文件路径。
支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以 /assets/ 开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。预加载的文件长度不得超过 20s。
不同平台支持的音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

unloadAudioMixing

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

卸载指定音频文件

传入参数

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

注意 调用本方法卸载该文件后,关于当前的混音状态,会收到回调 onAudioMixingStateChanged。

setAudioMixingVolume

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

调节混音的音量大小,包括音频文件混音和 PCM 混音。

传入参数

参数名 类型 说明
mixId int 混音 ID
volume int 混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
• 0:静音
• 100:原始音量(默认值)
• 400: 最大可调音量 (自带溢出保护)
type AudioMixingType 混音类型。是否本地播放、以及是否发送到远端,详见 AudioMixingType。

getAudioMixingDuration

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

获取音频文件时长

传入参数

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

返回值

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

getAudioMixingCurrentPosition

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

获取音频文件播放进度

传入参数

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

返回值

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

setAudioMixingPosition

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

设置音频文件的起始播放位置

传入参数

参数名 类型 说明
mixId int 混音 ID
position int 音频文件起始播放位置,单位为毫秒。
你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值应小于音频文件总时长。

注意 在播放在线文件时,调用此接口可能造成播放延迟的现象。

setAudioMixingDualMonoMode

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingDualMonoMode(
    int mixId,
    AudioMixingDualMonoMode mode)

设置当前音频文件的声道模式

传入参数

参数名 类型 说明
mixId int 混音 ID
mode AudioMixingDualMonoMode 声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode。

注意

setAudioMixingPitch

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPitch(
    int mixId,
    int pitch)

开启本地播放音乐文件变调功能,多用于 K 歌场景。
使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

参数名 类型 说明
mixId int 混音 ID
pitch int 相对于音乐文件原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,AudioMixingError 错误码为 AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH 设置混音文件音调不合法。

注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错

setAudioMixingPlaybackSpeed

public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPlaybackSpeed(
    int mixId,
    int speed)

设置混音时音频文件的播放速度

传入参数

参数名 类型 说明
mixId int 混音 ID
speed int 播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。
超出取值范围则设置失败,你会收到 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,AudioMixingError 错误码为 AUDIO_MIXING_ERROR_INVALID_PLAYBACK_SPEED 设置混音文件的播放速度不合法。

注意

setAudioMixingLoudness

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingLoudness(
    int mixId,
    float loudness)

如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。

传入参数

参数名 类型 说明
mixId int 混音 ID
loudness float 原始响度,单位:lufs,取值范围为 [-70.0, 0.0]。
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音均衡处理。默认值为 1.0lufs,即不做处理。

注意 建议在 startAudioMixing 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。

setAudioMixingProgressInterval

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingProgressInterval(
    int mixId,
    long interval)

设置混音时音频文件播放进度回调的间隔

传入参数

参数名 类型 说明
mixId int 混音 ID
可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。
interval long 音频文件播放进度回调的时间间隔,单位毫秒。
• interval 的值为大于 0 的 10 的倍数,当设置的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。设置完成后 SDK 将会按照设置的时间间隔触发 onAudioMixingPlayingProgress 回调。
• interval 的值小于等于 0 时,不会触发进度回调。

注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错。 若想在音乐文件开始播放前设置播放进度回调间隔,你需调用 startAudioMixing 在 AudioMixingConfig 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。

enableAudioMixingFrame

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

启动 PCM 音频数据混音

传入参数

参数名 类型 说明
mixId int 混音 ID。用于标识混音,保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,会收到 onAudioMixingStateChanged 通知前一次混音已停止。
type AudioMixingType 混音类型。是否本地播放、以及是否发送到远端,详见 AudioMixingType。

注意

disableAudioMixingFrame

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

关闭 PCM 混音

传入参数

参数名 类型 说明
mixId int 混音 ID。

pushAudioMixingFrame

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

推送 PCM 音频帧数据用于混音

传入参数

参数名 类型 说明
mixId int 混音 ID。
audioFrame AudioFrame 音频帧,详见 AudioFrame。

返回值

注意

getAudioTrackCount

public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioTrackCount(
    int mixId)

获取当前音频文件的音轨索引

传入参数

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

返回值 方法调用结果

注意

selectAudioTrack

public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.selectAudioTrack(
    int mixId,
    int audioTrackIndex)

指定当前音频文件的播放音轨

传入参数

参数名 类型 说明
mixId int 混音 ID
audioTrackIndex int 指定的播放音轨
设置的参数值需要小于或等于 getAudioTrackCount 的返回值

注意

IRangeAudio

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

范围语音接口实例

成员函数

返回 名称
void enableRangeAudio
int updatePosition
int updateReceiveRange
void registerRangeAudioObserver
int setAttenuationModel

函数说明

enableRangeAudio

void com.ss.bytertc.engine.audio.IRangeAudio.enableRangeAudio(
    boolean enable)

开启/关闭范围语音功能。
范围语音是指,在同一 RTC 房间中设定的音频接收距离范围内,本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/衰减;若远端用户在房间内的位置超出设定范围,则本地用户无法接收其音频。音频接收范围设置参看 updateReceiveRange。

传入参数

参数名 类型 说明
enable boolean 是否开启范围语音功能:
• true: 开启
• false: 关闭(默认)

注意 该方法进房前后都可调用,为保证进房后范围语音效果的平滑切换,你需在该方法前先调用 updatePosition 设置自身位置坐标,然后开启该方法收听范围语音效果。

updatePosition

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

更新本地用户在房间内空间直角坐标系中的位置坐标。

传入参数

参数名 类型 说明
pos Position 三维坐标的值,默认为 [0, 0, 0],参看 Position。

返回值 方法调用结果:

注意

updateReceiveRange

int com.ss.bytertc.engine.audio.IRangeAudio.updateReceiveRange(
    ReceiveRange range)

更新本地用户的音频收听范围。

传入参数

参数名 类型 说明
range ReceiveRange 音频收听范围,参看 ReceiveRange。

返回值 方法调用结果:

注意 若此前你已调用 registerRangeAudioObserver 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新音频收听范围后,你都会收到 onRangeAudioInfo 回调。

registerRangeAudioObserver

void com.ss.bytertc.engine.audio.IRangeAudio.registerRangeAudioObserver(
    IRangeAudioObserver observer)

设置范围语音衰减系数监测器。

传入参数

参数名 类型 说明
observer IRangeAudioObserver 范围语音衰减系数监测器。
设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo 回调。具体参看 IRangeAudioObserver。

注意 该方法仅适用于手动订阅模式,自动订阅无需设置。

setAttenuationModel

int com.ss.bytertc.engine.audio.IRangeAudio.setAttenuationModel(
    AttenuationType type,
    float coefficient)

设置范围语音的音量衰减模式。
衰减模式更改后,onRangeAudioInfo 回调将根据最后设置的衰减模式进行计算并返回音量衰减数值

传入参数

参数名 类型 说明
type AttenuationType 音量衰减模式。默认为线性衰减。详见 AttenuationType。
coefficient float 指数衰减模式下的音量衰减系数,默认值为 1。范围 [0.1,100],推荐设置为 50。数值越大,音量的衰减速度越快。

返回值 调用是否成功

注意 音量衰减范围通过 updateReceiveRange 进行设置。

ISpatialAudio

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

空间音频接口实例

成员函数

返回 名称
void enableSpatialAudio
int updatePosition
int updateSelfOrientation
void disableRemoteOrientation

函数说明

enableSpatialAudio

void com.ss.bytertc.engine.audio.ISpatialAudio.enableSpatialAudio(
    boolean enable)

开启/关闭空间音频功能。

传入参数

参数名 类型 说明
enable boolean 是否开启空间音频功能:
• true:开启
• false:关闭(默认)

注意 该方法仅开启空间音频功能,你须调用 updatePosition 设置自身位置坐标后方可收听空间音频效果。空间音频相关 API 和调用时序详见空间音频。

updatePosition

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

更新本地用户在房间内空间直角坐标系中的位置坐标。

传入参数

参数名 类型 说明
pos Position 三维坐标的值,默认为 [0, 0, 0]。参看 Position

返回值

注意 调用该接口更新坐标前,你需调用 enableSpatialAudio 开启空间音频功能。 空间音频相关 API 和调用时序详见空间音频。

updateSelfOrientation

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

更新本地用户在空间音频坐标系下的朝向。

传入参数

参数名 类型 说明
orientation HumanOrientation 自身朝向信息,参看 HumanOrientation。

返回值 方法调用结果:

注意

disableRemoteOrientation

void com.ss.bytertc.engine.audio.ISpatialAudio.disableRemoteOrientation()

参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。
如果此后调用 updateSelfOrientation 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。

注意

IVideoProcessor

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

成员函数

返回 名称
abstract VideoFrame processVideoFrame
void onGLEnvInitiated
void onGLEnvRelease

函数说明

processVideoFrame

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

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

传入参数

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

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

注意

onGLEnvInitiated

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

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

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

onGLEnvRelease

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

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

RTCRoom

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

成员函数

返回 名称
abstract void destroy
abstract int joinRoom
abstract void setRTCRoomEventHandler
abstract void leaveRoom
abstract void setUserVisibility
abstract void updateToken
abstract long sendUserMessage
abstract long sendUserBinaryMessage
abstract long sendRoomMessage
abstract long sendRoomBinaryMessage
abstract int setMultiDeviceAVSync
abstract void setRemoteVideoConfig
abstract void publishStream
abstract void unpublishStream
abstract void publishScreen
abstract void unpublishScreen
abstract void subscribeStream
abstract void unsubscribeStream
abstract void subscribeScreen
abstract void unsubscribeScreen
abstract void pauseAllSubscribedStream
abstract void resumeAllSubscribedStream
abstract int startForwardStreamToRooms
abstract void startCloudRendering
abstract void updateCloudRendering
abstract void stopCloudRendering
abstract int updateForwardStreamToRooms
abstract void stopForwardStreamToRooms
abstract void pauseForwardStreamToAllRooms
abstract void resumeForwardStreamToAllRooms
abstract IRangeAudio getRangeAudio
abstract ISpatialAudio getSpatialAudio

函数说明

destroy

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

退出并销毁调用 createRTCRoom 所创建的房间。

joinRoom

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

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

传入参数

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

返回值

注意

setRTCRoomEventHandler

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

通过设置房间事件 handler,监听此对象对应的回调事件。

传入参数

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

leaveRoom

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

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

注意

setUserVisibility

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

设置用户可见性。默认可见。

传入参数

参数名 类型 说明
enable boolean 设置用户是否对房间内其他用户可见:
• true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
• false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。

返回值

注意

updateToken

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

更新 Token。
用于加入房间的 Token 有一定的有效期。在 Token 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token String 获取的新的有效 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN。

注意 当 Token 过期时,用户将被移出房间并将收到 onStreamStateChanged 回调,错误码为 ERROR_CODE_EXPIRED_TOKEN,此时需要重新获取 Token,并调用 joinRoom 重新加入房间。

sendUserMessage

public abstract long com.ss.bytertc.engine.RTCRoom.sendUserMessage(
    String userId,
    String messageStr,
    MessageConfig config)

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

传入参数

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

注意

sendUserBinaryMessage

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

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

传入参数

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

注意

sendRoomMessage

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

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

传入参数

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

注意

sendRoomBinaryMessage

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

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

传入参数

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

注意

setMultiDeviceAVSync

public abstract int com.ss.bytertc.engine.RTCRoom.setMultiDeviceAVSync(
    String audioUserId)

设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。

传入参数

参数名 类型 说明
audioUserId String 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。

返回值 方法调用结果:

注意

setRemoteVideoConfig

public abstract void com.ss.bytertc.engine.RTCRoom.setRemoteVideoConfig(
    String userId,
    RemoteVideoConfig remoteVideoConfig)

设置期望订阅的远端视频流的参数。

传入参数

参数名 类型 说明
userId String 期望订阅的远端视频流发布用户的 ID。
remoteVideoConfig RemoteVideoConfig 期望订阅的远端视频流参数,参看 RemoteVideoConfig。

注意

publishStream

public abstract void com.ss.bytertc.engine.RTCRoom.publishStream(
    MediaStreamType type)

在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType

注意

unpublishStream

public abstract void com.ss.bytertc.engine.RTCRoom.unpublishStream(
    MediaStreamType type)

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType

注意

publishScreen

public abstract void com.ss.bytertc.engine.RTCRoom.publishScreen(
    MediaStreamType type)

在当前所在房间内发布本地屏幕共享音视频流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。

注意

unpublishScreen

public abstract void com.ss.bytertc.engine.RTCRoom.unpublishScreen(
    MediaStreamType type)

停止将本地屏幕共享音视频流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType

注意

subscribeStream

public abstract void com.ss.bytertc.engine.RTCRoom.subscribeStream(
    String uid,
    MediaStreamType type)

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeStream

public abstract void com.ss.bytertc.engine.RTCRoom.unsubscribeStream(
    String uid,
    MediaStreamType type)

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定取消订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

subscribeScreen

public abstract void com.ss.bytertc.engine.RTCRoom.subscribeScreen(
    String uid,
    MediaStreamType type)

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeScreen

public abstract void com.ss.bytertc.engine.RTCRoom.unsubscribeScreen(
    String uid,
    MediaStreamType type)

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
uid String 指定取消订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

pauseAllSubscribedStream

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

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

传入参数

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

注意

resumeAllSubscribedStream

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

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

传入参数

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

注意

startForwardStreamToRooms

public abstract int com.ss.bytertc.engine.RTCRoom.startForwardStreamToRooms(
    List<ForwardStreamInfo> forwardStreamInfos)

开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

传入参数

参数名 类型 说明
forwardStreamInfos List 跨房间媒体流转发指定房间的信息。参看 ForwardStreamInfo。

返回值

0: 方法调用成功
<0: 方法调用失败

注意

startCloudRendering

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

开启云端渲染

传入参数

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

updateCloudRendering

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

更新云端渲染参数

传入参数

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

stopCloudRendering

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

关闭云端渲染

updateForwardStreamToRooms

public abstract int com.ss.bytertc.engine.RTCRoom.updateForwardStreamToRooms(
    List<ForwardStreamInfo> forwardStreamInfos)

更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。

传入参数

参数名 类型 说明
forwardStreamInfos List 跨房间媒体流转发目标房间信息。参看 ForwardStreamInfo。

返回值

0: 方法调用成功
<0: 方法调用失败

注意

stopForwardStreamToRooms

public abstract void com.ss.bytertc.engine.RTCRoom.stopForwardStreamToRooms()

停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。

注意

pauseForwardStreamToAllRooms

public abstract void com.ss.bytertc.engine.RTCRoom.pauseForwardStreamToAllRooms()

暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。

注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。

resumeForwardStreamToAllRooms

public abstract void com.ss.bytertc.engine.RTCRoom.resumeForwardStreamToAllRooms()

恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。

getRangeAudio

public abstract IRangeAudio com.ss.bytertc.engine.RTCRoom.getRangeAudio()

获取范围语音接口实例。

返回值 方法调用结果:

注意 首次调用该方法须在创建房间后、加入房间前。

getSpatialAudio

public abstract ISpatialAudio com.ss.bytertc.engine.RTCRoom.getSpatialAudio()

获取空间音频接口实例。 空间音频相关 API 和调用时序详见空间音频。

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

注意