RTCRoom
public abstract class com.ss.bytertc.engine.RTCRoom
java
成员函数
返回名称
abstract voiddestroy
abstract intjoinRoom
abstract voidsetRTCRoomEventHandler
abstract voidleaveRoom
abstract voidsetUserVisibility
abstract intupdateToken
abstract longsendUserMessage
abstract longsendUserBinaryMessage
abstract longsendRoomMessage
abstract longsendRoomBinaryMessage
abstract voidsetMultiDeviceAVSync
abstract intsetRemoteVideoConfig
abstract voidpublishStream
abstract voidunpublishStream
abstract voidpublishScreen
abstract voidunpublishScreen
abstract intsubscribeStream
abstract intsubscribeAllStreams
abstract intunsubscribeStream
abstract intunsubscribeAllStreams
abstract intsubscribeScreen
abstract intunsubscribeScreen
abstract voidpauseAllSubscribedStream
abstract voidresumeAllSubscribedStream
abstract intstartForwardStreamToRooms
abstract intupdateForwardStreamToRooms
abstract voidstopForwardStreamToRooms
abstract voidpauseForwardStreamToAllRooms
abstract voidresumeForwardStreamToAllRooms
abstract IRangeAudiogetRangeAudio
abstract ISpatialAudiogetSpatialAudio
abstract voidsetRemoteRoomAudioPlaybackVolume
abstract int[deprecated] subscribeUserStream
函数说明

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

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

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

加入房间。

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

传入参数

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

返回值

注意

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

通过设置 RTCRoom 对象的事件句柄,监听此对象对应的回调事件。

传入参数

参数名类型说明
rtcRoomEventHandlerIRTCRoomEventHandler参看 IRTCRoomEventHandler

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

离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。

注意

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

设置用户可见性。未调用该接口前,本地用户默认对他人可见。

传入参数

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

注意

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

更新 Token。
Token 中同时包含进房、发布和订阅权限,各权限有一定的有效期,并且到期前 30 秒会触发回调,提示用户更新 Token 相关权限。此时需要重新获取 Token,并调用此方法更新 Token,以保证通话的正常进行。

传入参数

参数名类型说明
tokenString重新获取的有效 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 -1010 提示传入的 Token 无效。

返回值
方法调用结果:

注意

  1. 3.50(不含)以前的版本中,Token 中的发布和订阅权限为保留参数,无实际控制权限;3.50 及以后版本开放 Token 发布订阅控制权限,如需通过 Token 控制连麦权限,请联系技术支持团队开通白名单后支持。
  2. 请勿同时调用 updateToken 和 joinRoom 方法更新 Token。若因 Token 过期或无效导致加入房间失败或已被移出房间,你应该在获取新的有效 Token 后调用 joinRoom 重新加入房间。

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

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

传入参数

参数名类型说明
userIdString消息接收用户的 ID
messageStrString发送的文本消息内容。消息不超过 64 KB。
configMessageConfig消息发送的可靠/有序类型,参看 MessageConfig

返回值

注意

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

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

传入参数

参数名类型说明
userIdString消息接收用户的 ID
bufferbyte[]发送的二进制消息内容。消息不超过 46KB。
configMessageConfig消息发送的可靠/有序类型,参看 MessageConfig。

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

设置发流端音画同步。

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

传入参数

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

注意

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

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

传入参数

参数名类型说明
userIdString期望配置订阅参数的远端视频流发布用户的 ID。
remoteVideoConfigRemoteVideoConfig期望配置的远端视频流参数,参看 RemoteVideoConfig。

返回值
方法调用结果:

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

subscribeUserStream
public abstract int com.ss.bytertc.engine.RTCRoom.subscribeUserStream(
    String uid,
    StreamIndex streamType,
    SubscribeMediaType mediaType,
    SubscribeVideoConfig subscribeVideoConfig)
java

Deprecated since 3.36 and will be deleted in 3.51, use subscribeStream, unsubscribeStream, subscribeScreen and unsubscribeScreen instead.

订阅房间内指定的远端音视频流。

无论自动订阅还是手动订阅模式,用户都可以调用此方法按需订阅房间中的音视频流。

该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

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

注意

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

订阅房间内指定的通过摄像头/麦克风采集的媒体流,或更新对指定远端用户的订阅选项

传入参数

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

返回值
方法调用结果:

注意

subscribeAllStreams
public abstract int com.ss.bytertc.engine.RTCRoom.subscribeAllStreams(
    MediaStreamType type)
java

订阅房间内所有通过摄像头/麦克风采集的媒体流,或更新订阅选项。

传入参数

参数名类型说明
typeMediaStreamType媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

返回值

注意

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

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

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

返回值
方法调用结果:

注意

unsubscribeAllStreams
public abstract int com.ss.bytertc.engine.RTCRoom.unsubscribeAllStreams(
    MediaStreamType type)
java

取消订阅房间内所有的通过摄像头/麦克风采集的媒体流。

自动订阅和手动订阅的流都可以通过本方法取消订阅。

传入参数

参数名类型说明
typeMediaStreamType媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

返回值
方法调用结果:

注意

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

订阅房间内指定的远端屏幕共享音视频流,或更新对指定远端用户的订阅选项

传入参数

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

返回值
方法调用结果:

注意

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

取消订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

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

传入参数

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

返回值

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

注意

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

更新跨房间媒体流转发信息。

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

传入参数

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

返回值

注意

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

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

注意

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

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

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

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

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

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

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

获取范围语音接口实例。

返回值
方法调用结果:

注意
首次调用该方法须在创建房间后、加入房间前。范围语音相关 API 和调用时序详见范围语音。

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

获取空间音频接口实例。

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

注意

setRemoteRoomAudioPlaybackVolume
public abstract void com.ss.bytertc.engine.RTCRoom.setRemoteRoomAudioPlaybackVolume(
    int volume)
java

调节某个房间内所有远端用户的音频播放音量。

传入参数

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

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

RTCVideo
public abstract class com.ss.bytertc.engine.RTCVideo
java

RTCVideo Class

静态函数
返回名称
static synchronized RTCVideocreateRTCVideo
static synchronized RTCVideocreateRTCFovVideo
static synchronized voiddestroyRTCVideo
static synchronized voiddestroyRTCFovVideo
static StringgetSDKVersion
static StringgetErrorDescription
static int[deprecated] setDeviceId
static int[deprecated] setEnv
成员函数
返回名称
abstract voidsetRtcVideoEventHandler
abstract IRTCAudioDeviceManagergetAudioDeviceManager
abstract voidstartVideoCapture
abstract voidstopVideoCapture
abstract voidstartAudioCapture
abstract voidstopAudioCapture
abstract voidsetAudioScenario
abstract voidsetAudioProfile
abstract intsetVoiceChangerType
abstract intsetVoiceReverbType
abstract intsetLocalVoiceEqualization
abstract intsetLocalVoiceReverbParam
abstract intenableLocalVoiceReverb
abstract intsetLocalVideoCanvas
abstract voidupdateLocalVideoCanvas
abstract voidsetLocalVideoSink
abstract voidsetRemoteVideoSink
abstract voidupdateRemoteStreamVideoCanvas
abstract voidsetRemoteVideoCanvas
abstract voidsetLocalVideoMirrorType
abstract voidsetVideoRotationMode
abstract voidswitchCamera
abstract voidsetAudioRoute
abstract AudioRoutegetAudioRoute
abstract intsetDefaultAudioRoute
abstract voidenableExternalSoundCard
abstract voidsetCaptureVolume
abstract voidsetPlaybackVolume
abstract voidsetLocalVoicePitch
abstract voidenableVocalInstrumentBalance
abstract voidenablePlaybackDucking
abstract longlogin
abstract voidlogout
abstract voidupdateLoginToken
abstract voidsetServerParams
abstract voidgetPeerOnlineStatus
abstract longsendUserMessageOutsideRoom
abstract longsendUserBinaryMessageOutsideRoom
abstract longsendServerMessage
abstract longsendServerBinaryMessage
abstract NetworkDetectionStartReturnstartNetworkDetection
abstract voidstopNetworkDetection
abstract voidenableAudioFrameCallback
abstract voiddisableAudioFrameCallback
abstract voidregisterAudioFrameObserver
abstract voidregisterAudioProcessor
abstract voidenableAudioProcessor
abstract voiddisableAudioProcessor
abstract intregisterLocalVideoProcessor
abstract voidregisterLocalEncodedVideoFrameObserver
abstract voidregisterRemoteEncodedVideoFrameObserver
abstract voidsetVideoSourceType
abstract intpushExternalVideoFrame
abstract voidstartLiveTranscoding
abstract voidstopLiveTranscoding
abstract voidupdateLiveTranscoding
abstract voidstartPushSingleStreamToCDN
abstract voidstopPushStreamToCDN
abstract intsetVideoCaptureConfig
abstract voidenableSimulcastMode
abstract intsetVideoEncoderConfig
abstract intsetVideoEncoderConfig
abstract intsetScreenVideoEncoderConfig
abstract intsetAudioSourceType
abstract intsetAudioRenderType
abstract intpushExternalAudioFrame
abstract intpullExternalAudioFrame
abstract intpushScreenVideoFrame
abstract intsetRemoteAudioPlaybackVolume
abstract voidsetAudioAlignmentProperty
abstract RTCRoomcreateRTCRoom
abstract voidsetPublishFallbackOption
abstract voidsetSubscribeFallbackOption
abstract intsetRemoteUserPriority
abstract intsendSEIMessage
abstract intsetBusinessId
abstract voidsetEncryptInfo
abstract voidsetCustomizeEncryptHandler
abstract IVideoEffectgetVideoEffectInterface
abstract intenableEffectBeauty
abstract intsetBeautyIntensity
abstract voidsetVideoOrientation
abstract voidsetRuntimeParameters
abstract intfeedback
abstract voidstartASR
abstract voidstopASR
abstract intstartFileRecording
abstract voidstopFileRecording
abstract intstartAudioRecording
abstract intstopAudioRecording
abstract IAudioMixingManagergetAudioMixingManager
abstract voidsetScreenAudioSourceType
abstract voidsetScreenAudioStreamIndex
abstract intpushScreenAudioFrame
abstract voidstartScreenCapture
abstract voidupdateScreenCapture
abstract voidstopScreenCapture
abstract voidsetExternalVideoEncoderEventHandler
abstract intpushExternalEncodedVideoFrame
abstract voidsetVideoDecoderConfig
abstract voidrequestRemoteVideoKeyFrame
abstract voidsetEarMonitorMode
abstract voidsetEarMonitorVolume
abstract voidenableAudioPropertiesReport
abstract intsendStreamSyncInfo
abstract booleanisCameraTorchSupported
abstract booleanisCameraZoomSupported
abstract intsetCameraZoomRatio
abstract floatgetCameraZoomMaxRatio
abstract intsetCameraTorch
abstract booleanisCameraFocusPositionSupported
abstract intsetCameraFocusPosition
abstract booleanisCameraExposurePositionSupported
abstract intsetCameraExposurePosition
abstract intsetCameraExposureCompensation
abstract intstartPushPublicStream
abstract intstopPushPublicStream
abstract intupdatePublicStreamParam
abstract intstartPlayPublicStream
abstract intstopPlayPublicStream
abstract intsetPublicStreamVideoCanvas
abstract intsetPublicStreamVideoSink
abstract intstartEchoTest
abstract intstopEchoTest
abstract voidsetVideoWatermark
abstract voidclearVideoWatermark
abstract intsetDummyCaptureImagePath
abstract longtakeLocalSnapshot
abstract longtakeRemoteSnapshot
abstract voidstartCloudProxy
abstract voidstopCloudProxy
abstract ISingScoringManagergetSingScoringManager
abstract NetworkTimeInfogetNetworkTimeInfo
abstract KTVManagergetKTVManager
abstract void[deprecated] setInternalEventHandler
abstract int[deprecated] replaceBackground
abstract int[deprecated] setAudioPlaybackDevice
abstract void[deprecated] registerLocalAudioProcessor
abstract int[deprecated] setVideoEncoderConfig
abstract int[deprecated] setVideoEncoderConfig
abstract void[deprecated] setOnDestroyCompletedCallback
abstract int[deprecated] sendSEIMessage
abstract int[deprecated] checkVideoEffectLicense
abstract void[deprecated] setVideoEffectAlgoModelPath
abstract int[deprecated] enableVideoEffect
abstract int[deprecated] setVideoEffectNodes
abstract int[deprecated] updateVideoEffectNode
abstract int[deprecated] setBackgroundSticker
abstract int[deprecated] setVideoEffectColorFilter
abstract int[deprecated] setVideoEffectColorFilterIntensity
abstract int[deprecated] registerFaceDetectionObserver
abstract void[deprecated] muteAudioPlayback
函数说明

createRTCVideo
public static synchronized RTCVideo com.ss.bytertc.engine.RTCVideo.createRTCVideo(
    Context context,
    String appId,
    IRTCVideoEventHandler handler,
    Object eglContext,
    JSONObject parameters)
java

创建引擎对象

如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

如果当前进程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。

传入参数

参数名类型说明
contextContextAndroid Application Context
appIdString每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。
handlerIRTCVideoEventHandlerSDK 回调给应用层的 Handler,详见 IRTCVideoEventHandler
eglContextObject如果需要支持外部纹理硬编码,则需要以 JObject 方式传入 eglContext。
parametersJSONObject私有参数。如需使用请联系技术支持人员。

返回值

注意
你应注意保持 handler 的生命周期必须大于 RTCVideo 的生命周期,即 handler 必须在调用 destroyRTCVideo 之后销毁。

createRTCFovVideo
public static synchronized RTCVideo com.ss.bytertc.engine.RTCVideo.createRTCFovVideo(
    Context context,
    String appId,
    IRTCVideoEventHandler handler,
    Object eglContext,
    JSONObject parameters)
java

创建全景视频引擎对象。

在发送端和接收端调用此方法,以使用 RTC 提供的全景视频的音视频能力。

传入参数

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

返回值

注意

destroyRTCVideo
public static synchronized void com.ss.bytertc.engine.RTCVideo.destroyRTCVideo()
java

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

注意

destroyRTCFovVideo
public static synchronized void com.ss.bytertc.engine.RTCVideo.destroyRTCFovVideo()
java

销毁由 createRTCFovVideo 所创建的全景视频引擎实例,并释放所有相关资源。

注意

getSDKVersion
public static String com.ss.bytertc.engine.RTCVideo.getSDKVersion()
java

获取 SDK 当前的版本号。

返回值
SDK 当前的版本号。

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

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

传入参数

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

返回值
String 描述文字

setDeviceId
public static int com.ss.bytertc.engine.RTCVideo.setDeviceId(
    String deviceId)
java

Deprecated since 3.45 and will be deleted in 3.51.

设置设备 ID 。

传入参数

参数名类型说明
deviceIdString设备 ID 。

返回值

setEnv
public static int com.ss.bytertc.engine.RTCVideo.setEnv(
    RTCEngine.Env env)
java

Deprecated since 3.45 and will be deleted in 3.51.

设置 SDK 当前使用的服务器环境。

传入参数

参数名类型说明
envRTCEngine.EnvSDK 使用的环境参数。

返回值

注意

setInternalEventHandler
public abstract void com.ss.bytertc.engine.RTCVideo.setInternalEventHandler(
    IRTCEngineInternalEventHandler handler)
java

Deprecated since 3.45 and will be deleted in 3.51.

设置内部事件回调 Handler

传入参数

参数名类型说明
handlerIRTCEngineInternalEventHandler内部事件回调 handler,详见IRTCEngineInternalEventHandler

setRtcVideoEventHandler
public abstract void com.ss.bytertc.engine.RTCVideo.setRtcVideoEventHandler(
    IRTCVideoEventHandler engineEventHandler)
java

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

传入参数

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

注意

getAudioDeviceManager
public abstract IRTCAudioDeviceManager com.ss.bytertc.engine.RTCVideo.getAudioDeviceManager()
java

获取音频设备管理接口

返回值
音频设备管理接口 IRTCAudioDeviceManager

startVideoCapture
public abstract void com.ss.bytertc.engine.RTCVideo.startVideoCapture()
java

立即开启内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。

本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

注意

stopVideoCapture
public abstract void com.ss.bytertc.engine.RTCVideo.stopVideoCapture()
java

立即关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法,本地用户会收到 onVideoDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

注意

startAudioCapture
public abstract void com.ss.bytertc.engine.RTCVideo.startAudioCapture()
java

开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。
调用该方法开启后,本地用户会收到 onAudioDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

注意

stopAudioCapture
public abstract void com.ss.bytertc.engine.RTCVideo.stopAudioCapture()
java

立即关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。
调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。

注意

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

设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,SDK 会自动根据客户端音频采集播放设备和状态,适用通话音量/媒体音量。

传入参数

参数名类型说明
audioScenarioAudioScenarioType音频场景类型,参看 AudioScenarioType。

注意

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

设置音质档位。

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

传入参数

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

注意

setVoiceChangerType
public abstract int com.ss.bytertc.engine.RTCVideo.setVoiceChangerType(
    VoiceChangerType voiceChanger)
java

设置变声特效类型

传入参数

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

返回值
方法调用结果:

注意

setVoiceReverbType
public abstract int com.ss.bytertc.engine.RTCVideo.setVoiceReverbType(
    VoiceReverbType voiceReverb)
java

Valid since 3.32

设置混响特效类型

传入参数

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

返回值
方法调用结果:

注意

setLocalVoiceEqualization
public abstract int com.ss.bytertc.engine.RTCVideo.setLocalVoiceEqualization(
    VoiceEqualizationConfig voiceEqualizationConfig)
java

设置本地采集语音的均衡效果。包含内部采集和外部采集,但不包含混音音频文件。

传入参数

参数名类型说明
voiceEqualizationConfigVoiceEqualizationConfig语音均衡效果,参看 VoiceEqualizationConfig

返回值

注意
根据奈奎斯特采样率,音频采样率必须大于等于设置的中心频率的两倍,否则,设置不生效。

setLocalVoiceReverbParam
public abstract int com.ss.bytertc.engine.RTCVideo.setLocalVoiceReverbParam(
    VoiceReverbConfig config)
java

设置本地采集音频的混响效果。包含内部采集和外部采集,但不包含混音音频文件。

传入参数

参数名类型说明
configVoiceReverbConfig混响效果,参看 VoiceReverbConfig

返回值

注意
调用 enableLocalVoiceReverb 开启混响效果。

enableLocalVoiceReverb
public abstract int com.ss.bytertc.engine.RTCVideo.enableLocalVoiceReverb(
    boolean enable)
java

开启本地音效混响效果

传入参数

参数名类型说明
enableboolean是否开启

返回值

注意
调用 setLocalVoiceReverbParam 设置混响效果。

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

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

传入参数

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

返回值

注意

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

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

传入参数

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

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

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

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

传入参数

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

注意

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

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

传入参数

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

注意

updateRemoteStreamVideoCanvas
public abstract void com.ss.bytertc.engine.RTCVideo.updateRemoteStreamVideoCanvas(
    RemoteStreamKey stream_key,
    int renderMode,
    int background_color)
java

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

传入参数

参数名类型说明
stream_keyRemoteStreamKey远端流信息。参看 RemoteStreamKey
renderModeint渲染模式,参看 VideoCanvas.renderMode
background_colorint背景颜色,参看 VideoCanvas.background_color

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

setRemoteVideoCanvas
public abstract void com.ss.bytertc.engine.RTCVideo.setRemoteVideoCanvas(
    RemoteStreamKey stream_key,
    VideoCanvas videoCanvas)
java

渲染来自指定远端用户的视频流时,设置使用的视图和渲染模式。

要解除绑定,将 videoCanvas 设置为空。

传入参数

参数名类型说明
stream_keyRemoteStreamKey远端流信息。参看 RemoteStreamKey
videoCanvasVideoCanvas视图信息和渲染模式,参看 VideoCanvas

注意
本地用户离开房间时,会解除调用此 API 建立的绑定关系;远端用户离开房间则不会影响。

setLocalVideoMirrorType
public abstract void com.ss.bytertc.engine.RTCVideo.setLocalVideoMirrorType(
    MirrorType mirrorType)
java

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

传入参数

参数名类型说明
mirrorTypeMirrorType镜像类型,参看 MirrorType

注意

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

setVideoRotationMode
public abstract void com.ss.bytertc.engine.RTCVideo.setVideoRotationMode(
    VideoRotationMode rotationMode)
java

设置采集视频的旋转模式。默认以 App 方向为旋转参考系。

接收端渲染视频时,将按照和发送端相同的方式进行旋转。

传入参数

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

注意

switchCamera
public abstract void com.ss.bytertc.engine.RTCVideo.switchCamera(
    CameraId cameraId)
java

切换视频内部采集时使用的前置/后置摄像头

调用此接口后,在本地会触发 onVideoDeviceStateChanged 回调。

传入参数

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

返回值

注意

replaceBackground
public abstract int com.ss.bytertc.engine.RTCVideo.replaceBackground(
    BackgroundMode mode,
    DivideModel divide_model)
java

Deprecated since 3.45 and will be deleted in 3.51.

视频图像分割,替换背景

传入参数

参数名类型说明
modeBackgroundMode背景模式,用于设置预置背景,是否虚化等 详见 BackgroundMode
divide_modelDivideModel选择使用哪种分割模型,@return
分割模型类型详见 DivideModel
• 0: 方法调用成功;
• < 0: 方法调用失败;

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

Deprecated since 3.38 and will be deleted in 3.51, use setAudioRoute instead.

设置音频播放设备为扬声器或者听筒,默认使用扬声器。

音频播放设备发生变化时,会收到 onAudioPlaybackDeviceChanged 回调。

传入参数

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

返回值

注意

setAudioRoute
public abstract void com.ss.bytertc.engine.RTCVideo.setAudioRoute(
    AudioRoute audioRoute)
java

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

传入参数

参数名类型说明
audioRouteAudioRoute音频播放路由,参见 AudioRoute。
对 Android 设备,不同的音频设备连接状态下,可切换的音频设备情况不同。参见移动端设置音频路由。

注意

getAudioRoute
public abstract AudioRoute com.ss.bytertc.engine.RTCVideo.getAudioRoute()
java

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

返回值
详见 AudioRoute

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

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

将默认的音频播放设备设置为听筒或扬声器。

当所有音频外设(耳机,音箱等)移除后,音频路由将被切换到默认设备。发生切换时会收到 onAudioRouteChanged 回调。

传入参数

参数名类型说明
routeAudioRoute音频播放设备。参看 AudioRoute。仅支持听筒或扬声器。

返回值

注意
参见移动端设置音频路由。

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

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

传入参数

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

注意

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

调节音频采集音量

传入参数

参数名类型说明
indexStreamIndex流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex
volumeint采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
只改变音频数据的音量信息,不涉及本端硬件的音量调节。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

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

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

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

播放音频前或播放音频时,你都可以使用此接口设定播放音量。

传入参数

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

注意
假设某远端用户 A 始终在被调节的目标用户范围内,当该方法与 setRemoteAudioPlaybackVolume 或 setRemoteRoomAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。

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

开启本地语音变调功能,多用于 K 歌场景。

使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

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

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

开启/关闭音量均衡功能。

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

传入参数

参数名类型说明
enableboolean是否开启音量均衡功能:
• true: 是
• false: 否

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

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

打开/关闭音量闪避功能,适用于在 RTC 通话过程中会同时播放短视频或音乐的场景,如“一起看”、“在线 KTV”等。

开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名类型说明
enableboolean是否开启音量闪避:
• true: 是
• false: 否

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

必须先登录,才能调用 sendUserMessageOutsideRoom 和 sendServerMessage 发送房间外点对点消息和向应用服务器发送消息

在调用本接口登录后,如果想要登出,需要调用 logout。

传入参数

参数名类型说明
tokenString用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。
uidString用户 ID
用户 ID 在 appid的维度下是唯一的。

返回值

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

logout
public abstract void com.ss.bytertc.engine.RTCVideo.logout()
java

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

注意

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

更新用户用于登录的 Token

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

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

传入参数

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

注意

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

设置应用服务器参数

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

传入参数

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

注意

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

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

传入参数

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

注意

sendUserMessageOutsideRoom
public abstract long com.ss.bytertc.engine.RTCVideo.sendUserMessageOutsideRoom(
    String uid,
    String message,
    MessageConfig config)
java

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

开启通话前网络探测

传入参数

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

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

注意

stopNetworkDetection
public abstract void com.ss.bytertc.engine.RTCVideo.stopNetworkDetection()
java

停止通话前网络探测

注意

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

设置并开启指定的音频数据帧回调

传入参数

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

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

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

关闭音频回调

传入参数

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

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

registerAudioFrameObserver
public abstract void com.ss.bytertc.engine.RTCVideo.registerAudioFrameObserver(
    IAudioFrameObserver observer)
java

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

传入参数

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

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

registerLocalAudioProcessor
public abstract void com.ss.bytertc.engine.RTCVideo.registerLocalAudioProcessor(
    IAudioProcessor audioProcessor,
    AudioFormat audioFormat)
java

Deprecated since 3.42 and will be deleted in 3.51, use registerAudioProcessor instead.

设置自定义音频处理器。

使用该处理器,你可以调用 processAudioFrame 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。

SDK 只持有 processor 的弱引用,你应保证其生命周期。

传入参数

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

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

registerAudioProcessor
public abstract void com.ss.bytertc.engine.RTCVideo.registerAudioProcessor(
    IAudioFrameProcessor processor)
java

注册自定义音频处理器。

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

传入参数

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

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

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

设置并开启指定的音频帧回调,进行自定义处理。

传入参数

参数名类型说明
methodAudioProcessorMethod音频帧类型,参看 AudioProcessorMethod。可多次调用此接口,处理不同类型的音频帧。
选择不同类型的音频帧将收到对应的回调:
• 选择本地采集的音频时,会收到 onProcessRecordAudioFrame。
• 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame。
• 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame。
• 选择软件耳返音频时,会收到 onProcessEarMonitorAudioFrame。
• 选择屏幕共享音频流时,会收到 onProcessScreenAudioFrame。
formatAudioFormat设定自定义处理时获取的音频帧格式,参看 AudioFormat。

注意

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

关闭自定义音频处理。

传入参数

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

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

设置自定义视频前处理器。

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

传入参数

参数名类型说明
processorIVideoProcessor自定义视频处理器,详见 IVideoProcessor。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
configVideoPreprocessorConfig自定义视频前处理器适用的设置,详见 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.RTCVideo.registerLocalEncodedVideoFrameObserver(
    ILocalEncodedVideoFrameObserver observer)
java

注册本地视频帧监测器。

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

传入参数

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

注意
该方法可在进房前后的任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调

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

注册远端编码后视频数据回調。

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

传入参数

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

注意

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

设置向 SDK 输入的视频源,包括屏幕流
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。

传入参数

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

注意

pushExternalVideoFrame
public abstract int com.ss.bytertc.engine.RTCVideo.pushExternalVideoFrame(
    VideoFrame frame)
java

推送外部视频帧。

传入参数

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

返回值
方法调用结果:

注意

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

新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。

同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

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

注意

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

停止转推直播,会收到 onStreamMixingEvent 回调。

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

传入参数

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

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

更新转推直播参数,会收到 onStreamMixingEvent 回调。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

传入参数

参数名类型说明
taskIdString转推直播任务 ID。指定想要更新参数设置的转推直播任务。
transcodingLiveTranscoding转推直播配置参数,参看 LiveTranscoding。除特殊说明外,均支持过程中更新。
调用时,结构体中没有传入值的属性,会被更新为默认值。

startPushSingleStreamToCDN
public abstract void com.ss.bytertc.engine.RTCVideo.startPushSingleStreamToCDN(
    String taskId,
    PushSingleStreamParam param,
    IPushSingleStreamToCDNObserver observer)
java

新增单流转推直播任务。

传入参数

参数名类型说明
taskIdString任务 ID。
你可以发起多个转推直播任务,并用不同的任务 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
paramPushSingleStreamParam转推直播配置参数。详见 PushSingleStreamParam。
observerIPushSingleStreamToCDNObserver单流转推直播观察者。详见 IPushSingleStreamToCDNObserver。
通过注册 observer 接收单流转推直播相关的回调。

注意

stopPushStreamToCDN
public abstract void com.ss.bytertc.engine.RTCVideo.stopPushStreamToCDN(
    String taskId)
java

停止转推直播。

关于启动转推直播,参看 startPushSingleStreamToCDN。

传入参数

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

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

设置 RTC SDK 内部采集时的视频采集参数。

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

传入参数

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

返回值

注意

enableSimulcastMode
public abstract void com.ss.bytertc.engine.RTCVideo.enableSimulcastMode(
    boolean enabled)
java

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

传入参数

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

注意

setVideoEncoderConfig
public abstract int com.ss.bytertc.engine.RTCVideo.setVideoEncoderConfig(
    List<VideoStreamDescription> videoStreamDescriptions,
    VideoEncoderConfiguration.OrientationMode orientationMode)
java

Deprecated since 3.37 and will be deleted in 3.51, use setVideoEncoderConfig instead.

设置推送多路流时的各路视频参数,以及视频旋转角度。

传入参数

参数名类型说明
videoStreamDescriptionsList要推送的多路视频流参数,参看 VideoStreamDescription
orientationModeVideoEncoderConfiguration.OrientationMode视频编码的方向模式,参看 OrientationMode

返回值

注意

setVideoEncoderConfig
public abstract int com.ss.bytertc.engine.RTCVideo.setVideoEncoderConfig(
    StreamIndex streamIndex,
    List<VideoStreamDescription> videoStreamDescriptions)
java

Deprecated since 3.37 and will be deleted in 3.51, use setVideoEncoderConfig instead.

设置推送多路流时的各路视频参数,以及视频旋转角度。

传入参数

参数名类型说明
streamIndexStreamIndex视频流属性。采集的视频流/屏幕视频流,参看 StreamIndex
videoStreamDescriptionsList要推送的多路视频流参数,参看 VideoStreamDescription

返回值

注意
该接口已经废弃,请使用同名新接口代替;若仍需使用该旧接口,请注意无需先调用 enableSimulcastMode 开启推送多路流模式。

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

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、网络不佳时的回退策略等。

该接口支持设置一路视频流参数,设置多路参数请使用重载 API:setVideoEncoderConfig

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

返回值
方法调用结果:

注意

setScreenVideoEncoderConfig
public abstract int com.ss.bytertc.engine.RTCVideo.setScreenVideoEncoderConfig(
    ScreenVideoEncoderConfig screen_solution)
java

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

传入参数

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

返回值

注意
建议在采集视频前设置编码参数。若采集前未设置编码参数,则使用默认编码参数: 分辨率 1920px × 1080px,帧率 15fps。

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

切换音频采集方式

传入参数

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

返回值
方法调用结果:

注意

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

切换音频渲染方式

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

返回值
方法调用结果

注意

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

拉取远端音频数据。

可用于自定义音频渲染。

传入参数

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

返回值
方法调用结果

注意

pushScreenVideoFrame
public abstract int com.ss.bytertc.engine.RTCVideo.pushScreenVideoFrame(
    VideoFrame videoFrame)
java

推送屏幕视频帧

传入参数

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

返回值
方法调用结果:

setOnDestroyCompletedCallback
public abstract void com.ss.bytertc.engine.RTCVideo.setOnDestroyCompletedCallback(
    Runnable callback)
java

Deprecated since 3.45 and will be deleted in 3.51.

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

传入参数

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

setRemoteAudioPlaybackVolume
public abstract int com.ss.bytertc.engine.RTCVideo.setRemoteAudioPlaybackVolume(
    String roomId,
    String uid,
    int volume)
java

调节来自指定远端用户的音频播放音量。

传入参数

参数名类型说明
roomIdString远端用户所属的房间 ID
uidString音频来源的远端用户 ID
volumeint音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
只改变音频数据的音量信息,不涉及本端硬件的音量调节。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量,默认值
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

返回值
方法调用结果:

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteRoomAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

setAudioAlignmentProperty
public abstract void com.ss.bytertc.engine.RTCVideo.setAudioAlignmentProperty(
    RemoteStreamKey streamKey,
    AudioAlignmentMode mode)
java

在听众端,设置订阅的所有远端音频流精准对齐后播放。

传入参数

参数名类型说明
streamKeyRemoteStreamKey作为对齐基准的远端音频流。参看 RemoteStreamKey。
一般选择主唱的音频流。
你必须在收到 onUserPublishStream, 确认此音频流已发布后,调用此 API。
modeAudioAlignmentMode是否对齐,默认不对齐。参看 AudioAlignmentMode。

注意

createRTCRoom
public abstract RTCRoom com.ss.bytertc.engine.RTCVideo.createRTCRoom(
    String roomId)
java

创建房间实例。
调用此方法仅返回一个房间实例,你仍需调用 joinRoom 才能真正地创建/加入房间。
多次调用此方法以创建多个 RTCRoom 实例。分别调用各 RTCRoom 实例中的 joinRoom 方法,同时加入多个房间。
多房间模式下,用户可以同时订阅各房间的音视频流。

传入参数

参数名类型说明
roomIdString标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

返回值
创建的 RTCRoom 房间实例。

注意

setPublishFallbackOption
public abstract void com.ss.bytertc.engine.RTCVideo.setPublishFallbackOption(
    PublishFallbackOption option)
java

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

你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。

传入参数

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

注意

setSubscribeFallbackOption
public abstract void com.ss.bytertc.engine.RTCVideo.setSubscribeFallbackOption(
    SubscribeFallbackOptions option)
java

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

你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。

传入参数

参数名类型说明
optionSubscribeFallbackOptions订阅的音视频流回退选项,参看 SubscribeFallbackOptions。

注意

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

设置用户优先级。

传入参数

参数名类型说明
roomidString房间 ID
uidString远端用户的 ID 。
priorityRemoteUserPriority远端用户的优先级,详见枚举类型 RemoteUserPriority 。

返回值

注意

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

Deprecated since 3.50 and will be deleted in 3.55, use sendSEIMessage instead.

通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
streamIndexStreamIndex指定携带 SEI 数据的媒体流类型,参看 StreamIndex。
语音通话场景下,该值需设为 STREAM_INDEX_MAIN,否则 SEI 数据会被丢弃从而无法送达远端。
messagebyte[]SEI 消息。长度不超过 4KB。
repeatCountint消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount 个视频帧中。

返回值

注意

sendSEIMessage
public abstract int com.ss.bytertc.engine.RTCVideo.sendSEIMessage(
    StreamIndex streamIndex,
    byte[] message,
    int repeatCount,
    SEICountPerFrame mode)
java

通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
streamIndexStreamIndex指定携带 SEI 数据的媒体流类型,参看 StreamIndex。
语音通话场景下,该值需设为 STREAM_INDEX_MAIN,否则 SEI 数据会被丢弃从而无法送达远端。
messagebyte[]SEI 消息,建议每帧 SEI 数据总长度不超过 4 KB。超过长度限制的消息会被丢弃。
repeatCountint消息发送重复次数。取值范围是 [0, max{29, %{视频帧率}-1}]。推荐范围 [2,4]。
调用此接口后,这些 SEI 数据会添加到从当前视频帧开始的连续 %{repeatCount} 个视频帧中。
modeSEICountPerFrameSEI 发送模式,参看 SEICountPerFrame。

返回值

注意

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

设置业务标识参数

可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

传入参数

参数名类型说明
businessIdString用户设置的自己的 businessId 值
businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意

setEncryptInfo
public abstract void com.ss.bytertc.engine.RTCVideo.setEncryptInfo(
    int aesType,
    String key)
java

设置传输时使用内置加密的方式。

传入参数

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

注意

setCustomizeEncryptHandler
public abstract void com.ss.bytertc.engine.RTCVideo.setCustomizeEncryptHandler(
    RTCEncryptHandler handler)
java

设置自定义加密和解密方式。

传入参数

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

注意

getVideoEffectInterface
public abstract IVideoEffect com.ss.bytertc.engine.RTCVideo.getVideoEffectInterface()
java

获取视频特效接口。

返回值
视频特效接口,参看 IVideoEffect。

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

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource instead.

视频特效许可证检查

传入参数

参数名类型说明
contextContextAndroid Context 对象
licenseFileString许可证文件绝对路径

返回值

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

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

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource instead.

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

传入参数

参数名类型说明
modelPathString模型路径

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

Deprecated since 3.50 and will be deleted in 3.55, use enableVideoEffect instead.

创建/销毁视频特效引擎

传入参数

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

返回值

注意

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

Deprecated since 3.50 and will be deleted in 3.55, use setEffectNodes instead.

设置视频特效素材包

传入参数

参数名类型说明
effectNodesList特效素材包路径数组
要取消当前视频特效,将此参数设置为 null。

返回值

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

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

Deprecated since 3.50 and will be deleted in 3.55, use updateEffectNode instead.

设置特效强度

传入参数

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

返回值

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

setBackgroundSticker
public abstract int com.ss.bytertc.engine.RTCVideo.setBackgroundSticker(
    String modelPath,
    VirtualBackgroundSource source)
java

Deprecated since 3.50 and will be deleted in 3.55, use enableVirtualBackground instead.

将摄像头采集画面中的人像背景替换为指定图片或纯色背景。
若要取消背景特效,将背景贴纸特效素材路径设置为null。

传入参数

参数名类型说明
modelPathString传入背景贴纸特效素材路径。
sourceVirtualBackgroundSource设置背景特效图片的本地路径。参看 VirtualBackgroundSource。

返回值

注意
调用此接口前需依次调用以下接口:1、检查视频特效许可证 checkVideoEffectLicense;2、设置视频特效算法模型路径 setVideoEffectAlgoModelPath;3、开启视频特效 enableVideoEffect。

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

Deprecated since 3.50 and will be deleted in 3.55, use setColorFilter instead.

设置颜色滤镜

传入参数

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

返回值

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

Deprecated since 3.50 and will be deleted in 3.55, use setColorFilterIntensity instead.

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

传入参数

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

返回值

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

Deprecated since 3.50 and will be deleted in 3.55, use registerFaceDetectionObserver instead.

注册人脸检测结果回调观察者

注册此观察者后,你会周期性收到 onFaceDetectResult 回调。

传入参数

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

返回值

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

开启/关闭基础美颜

传入参数

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

返回值

注意

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

调整基础美颜强度

传入参数

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

返回值

注意

setVideoOrientation
public abstract void com.ss.bytertc.engine.RTCVideo.setVideoOrientation(
    VideoOrientation orientation)
java

在自定义视频前处理及编码前,设置 RTC 链路中的视频帧朝向,默认为 Adaptive 模式。
移动端开启视频特效贴纸,或使用自定义视频前处理时,建议固定视频帧朝向为 Portrait 模式。单流转推场景下,建议根据业务需要固定视频帧朝向为 Portrait 或 Landscape 模式。不同模式的具体显示效果参看视频帧朝向。

传入参数

参数名类型说明
orientationVideoOrientation视频帧朝向,参看 VideoOrientation。

注意

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

设置运行时的参数

传入参数

参数名类型说明
paramsJSONObject保留参数

注意
该接口需在 joinRoom 和 startAudioCapture 之前调用。

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

将用户反馈的问题上报到 RTC

传入参数

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

返回值

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

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

开启自动语音识别服务。

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

传入参数

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

stopASR
public abstract void com.ss.bytertc.engine.RTCVideo.stopASR()
java

关闭语音识别服务

startFileRecording
public abstract int com.ss.bytertc.engine.RTCVideo.startFileRecording(
    StreamIndex type,
    RecordingConfig config,
    RecordingType recordingType)
java

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

传入参数

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

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

注意

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

停止本地录制

传入参数

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

注意

startAudioRecording
public abstract int com.ss.bytertc.engine.RTCVideo.startAudioRecording(
    AudioRecordingConfig config)
java

开启录制语音通话,生成本地文件。

传入参数

参数名类型说明
configAudioRecordingConfig参看 AudioRecordingConfig

返回值

注意

stopAudioRecording
public abstract int com.ss.bytertc.engine.RTCVideo.stopAudioRecording()
java

停止音频文件录制

返回值

注意
调用 startAudioRecording 开启本地录制后,你必须调用该方法停止录制。

getAudioMixingManager
public abstract IAudioMixingManager com.ss.bytertc.engine.RTCVideo.getAudioMixingManager()
java

混音管理接口创建

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

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

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

传入参数

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

注意

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

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

传入参数

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

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

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

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

传入参数

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

返回值
方法调用结果

注意

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

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

传入参数

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

注意

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

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

传入参数

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

返回值

注意
在 startScreenCapture 后调用该方法。

stopScreenCapture
public abstract void com.ss.bytertc.engine.RTCVideo.stopScreenCapture()
java

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

注意

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

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

传入参数

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

注意

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

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

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

打开/关闭耳返功能。

传入参数

参数名类型说明
modeEarMonitorMode耳返功能是否开启,详见 EarMonitorMode。

注意

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

设置耳返音量。

传入参数

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

注意

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

启用音频信息提示。开启提示后,你可以收到 onLocalAudioPropertiesReport,onRemoteAudioPropertiesReport 和 onActiveSpeaker。

传入参数

参数名类型说明
configAudioPropertiesConfig详见 AudioPropertiesConfig

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

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

传入参数

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

返回值

注意

isCameraTorchSupported
public abstract boolean com.ss.bytertc.engine.RTCVideo.isCameraTorchSupported()
java

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

返回值

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

isCameraZoomSupported
public abstract boolean com.ss.bytertc.engine.RTCVideo.isCameraZoomSupported()
java

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

返回值

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

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

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

传入参数

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

返回值

注意

getCameraZoomMaxRatio
public abstract float com.ss.bytertc.engine.RTCVideo.getCameraZoomMaxRatio()
java

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

返回值
最大变焦倍数

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

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

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

传入参数

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

返回值

注意

isCameraFocusPositionSupported
public abstract boolean com.ss.bytertc.engine.RTCVideo.isCameraFocusPositionSupported()
java

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

返回值

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

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

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

传入参数

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

返回值

注意

isCameraExposurePositionSupported
public abstract boolean com.ss.bytertc.engine.RTCVideo.isCameraExposurePositionSupported()
java

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

返回值

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

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

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

Deprecated since 3.45 and will be deleted in 3.51, use setPlaybackVolume instead.

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

传入参数

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

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

startPushPublicStream
public abstract int com.ss.bytertc.engine.RTCVideo.startPushPublicStream(
    String publicStreamId,
    PublicStreaming publicStream)
java

发布一路公共流

用户可以指定房间内多个用户发布的媒体流合成一路公共流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。

传入参数

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

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

注意

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

停止发布当前用户发布的公共流

关于发布公共流,查看 startPushPublicStream

传入参数

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

返回值

updatePublicStreamParam
public abstract int com.ss.bytertc.engine.RTCVideo.updatePublicStreamParam(
    String publicStreamId,
    PublicStreaming transcoding)
java

更新公共流参数

关于发布公共流,查看 startPushPublicStream。

传入参数

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

返回值

注意
调用本接口前需要通过 onPushPublicStreamResult 确认公共流是否已经成功启动。

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

订阅指定公共流

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

传入参数

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

返回值

注意

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

取消订阅指定公共流

关于订阅公共流,查看 startPlayPublicStream。

传入参数

参数名类型说明
publicStreamIdString公共流ID

返回值

setPublicStreamVideoCanvas
public abstract int com.ss.bytertc.engine.RTCVideo.setPublicStreamVideoCanvas(
    String publicStreamId,
    VideoCanvas canvas)
java

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

传入参数

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

返回值

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

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

传入参数

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

返回值
方法调用结果:

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

开启音视频回路测试。

在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。

开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。

传入参数

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

返回值
方法调用结果:

注意

stopEchoTest
public abstract int com.ss.bytertc.engine.RTCVideo.stopEchoTest()
java

停止音视频回路测试。

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

返回值
方法调用结果:

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

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

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

传入参数

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

注意

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

移除指定视频流的水印。

传入参数

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

setDummyCaptureImagePath
public abstract int com.ss.bytertc.engine.RTCVideo.setDummyCaptureImagePath(
    String filePath)
java

摄像头处于关闭状态时,使用静态图片填充本地推送的视频流。
可重复调用该接口来更新图片。若要停止发送图片,可传入空字符串或启用内部摄像头采集。

传入参数

参数名类型说明
filePathString设置静态图片的路径。
支持本地文件绝对路径和 Asset 资源路径(/assets/xx.png),不支持网络链接,长度限制为 512 字节。
静态图片支持类型为 JPEG/JPG、PNG、BMP。
若图片宽高比与设置的编码宽高比不一致,图片会被等比缩放,黑边填充空白区域。推流帧率与码率与设置的编码参数一致。

返回值

注意

takeLocalSnapshot
public abstract long com.ss.bytertc.engine.RTCVideo.takeLocalSnapshot(
    StreamIndex streamIndex,
    ISnapshotResultCallback callback)
java

截取本地视频画面

传入参数

参数名类型说明
streamIndexStreamIndex截图的视频流的属性,参看 StreamIndex。
callbackISnapshotResultCallback本地截图的回调。参看 ISnapshotResultCallback。

返回值
本地截图任务的编号,从 1 开始递增。

注意

takeRemoteSnapshot
public abstract long com.ss.bytertc.engine.RTCVideo.takeRemoteSnapshot(
    RemoteStreamKey streamKey,
    ISnapshotResultCallback callback)
java

截取远端视频画面

传入参数

参数名类型说明
streamKeyRemoteStreamKey截图的视频流,参看 RemoteStreamKey。
callbackISnapshotResultCallback参看 ISnapshotResultCallback。

返回值
远端截图任务的编号,从 1 开始递增。

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

开启云代理

传入参数

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

注意

stopCloudProxy
public abstract void com.ss.bytertc.engine.RTCVideo.stopCloudProxy()
java

关闭云代理

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

getSingScoringManager
public abstract ISingScoringManager com.ss.bytertc.engine.RTCVideo.getSingScoringManager()
java

创建 K 歌评分管理接口。

返回值
K 歌评分管理接口,参看 ISingScoringManager。

getNetworkTimeInfo
public abstract NetworkTimeInfo com.ss.bytertc.engine.RTCVideo.getNetworkTimeInfo()
java

通过 NTP 协议,获取网络时间。

返回值
网络时间。参看 NetworkTimeInfo。

注意

getKTVManager
public abstract KTVManager com.ss.bytertc.engine.RTCVideo.getKTVManager()
java

创建 KTV 管理接口。

返回值
KTV 管理接口,参看 KTVManager。

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

混音管理类

成员函数
返回名称
abstract voidstartAudioMixing
abstract voidstopAudioMixing
abstract voidstopAllAudioMixing
abstract voidpauseAudioMixing
abstract voidpauseAllAudioMixing
abstract voidresumeAudioMixing
abstract voidresumeAllAudioMixing
abstract voidpreloadAudioMixing
abstract voidunloadAudioMixing
abstract voidsetAllAudioMixingVolume
abstract voidsetAudioMixingVolume
abstract intgetAudioMixingDuration
abstract intgetAudioMixingCurrentPosition
abstract voidsetAudioMixingPosition
abstract intgetAudioMixingPlaybackDuration
abstract voidsetAudioMixingDualMonoMode
abstract voidsetAudioMixingPitch
abstract intsetAudioMixingPlaybackSpeed
abstract voidsetAudioMixingLoudness
abstract voidsetAudioMixingProgressInterval
abstract voidenableAudioMixingFrame
abstract voiddisableAudioMixingFrame
abstract intpushAudioMixingFrame
abstract intgetAudioTrackCount
abstract voidselectAudioTrack
abstract voidregisterAudioFileFrameObserver
函数说明

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

开始播放音频文件。

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

传入参数

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






mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOS/macOSYYYYYY
WindowsYYYYYYYY
LinuxY

不同平台支持的在线音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYY
iOS/macOSYYYY
WindowsYYYYYYY
configAudioMixingConfig混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig

注意

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

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

传入参数

参数名类型说明
mixIdint混音 ID

注意

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

停止播放所有音频文件。

注意

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

暂停播放音频文件及混音。

传入参数

参数名类型说明
mixIdint混音 ID

注意

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

暂停播放所有音频文件。

注意

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

恢复播放音频文件及混音。

传入参数

参数名类型说明
mixIdint混音 ID

注意

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

恢复播放所有音频文件。

注意

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

预加载指定音乐文件到内存中,以避免频繁播放同一文件时的重复加载,减少 CPU 占用。

传入参数

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





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

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

卸载指定音乐文件。

传入参数

参数名类型说明
mixIdint混音 ID

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

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

设置默认的混音音量大小,包括音频文件混音和 PCM 混音。

传入参数

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

注意
该接口的优先级低于 setAudioMixingVolume,即通过 setAudioMixingVolume 单独设置了音量的混音 ID,不受该接口设置的影响。

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

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

传入参数

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

注意
该方法仅对指定混音 ID 生效,若想调节全部混音文件播放音量,则需调用 setAllAudioMixingVolume。

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

获取音频文件时长。

传入参数

参数名类型说明
mixIdint混音 ID

返回值

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

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

获取音频文件播放进度。

传入参数

参数名类型说明
mixIdint混音 ID

返回值

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

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

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

传入参数

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

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

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

获取混音音频文件的实际播放时长(单位:毫秒)。

传入参数

参数名类型说明
mixIdint混音ID。

返回值

注意

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

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

传入参数

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

注意

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

开启本地播放音乐文件变调功能,多用于 K 歌场景。

使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

参数名类型说明
mixIdint混音 ID
pitchint相对于音乐文件原始音调的升高/降低值,取值范围[-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)
java

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

传入参数

参数名类型说明
mixIdint混音 ID
speedint播放速度与原始文件速度的比例,单位:%,取值范围为 [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)
java

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

传入参数

参数名类型说明
mixIdint混音 ID
loudnessfloat原始响度,单位: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)
java

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

传入参数

参数名类型说明
mixIdint混音 ID
可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。
intervallong音频文件播放进度回调的时间间隔,单位毫秒。
• 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)
java

启动 PCM 音频数据混音。

要实现多个 PCM 音频数据混音,多次调用本方法,并传入不同的 id。

传入参数

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

注意

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

关闭 PCM 混音

传入参数

参数名类型说明
mixIdint混音 ID。

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

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

传入参数

参数名类型说明
mixIdint混音 ID。
audioFrameAudioFrame音频帧,详见 AudioFrame。

返回值

注意

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

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

传入参数

参数名类型说明
mixIdint混音 ID

返回值
方法调用结果

注意

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

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

传入参数

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

注意

registerAudioFileFrameObserver
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.registerAudioFileFrameObserver(
    IAudioFileFrameObserver observer)
java

注册本地音频文件混音的音频帧观察者。
当本地音频文件混音时,会收到相关回调。

传入参数

参数名类型说明
observerIAudioFileFrameObserver参看 IAudioFileFrameObserver。
IRangeAudio
public interface com.ss.bytertc.engine.audio.IRangeAudio
java

范围语音接口实例

成员函数
返回名称
voidenableRangeAudio
intupdatePosition
intupdateReceiveRange
intsetAttenuationModel
voidsetNoAttenuationFlags
函数说明

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

开启/关闭范围语音功能。

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

传入参数

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

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

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

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

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

返回值
方法调用结果:

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

设置范围语音的音量衰减模式。

传入参数

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

返回值
调用是否成功

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

setNoAttenuationFlags
void com.ss.bytertc.engine.audio.IRangeAudio.setNoAttenuationFlags(
    List<String> flags)
java

添加标签组,用于标记相互之间通话不衰减的用户组。

在同一个 RTC 房间中,如果多个用户的标签组之间有交集,那么,他们之间互相通话时,通话不衰减。

比如,用户身处多个队伍,队伍成员间通话不衰减。那么,可以为每个队伍绑定专属标签,每个用户的标签组包含用户所属各个队伍的标签。

传入参数

参数名类型说明
flagsList标签组
ISingScoringManager
public abstract class com.ss.bytertc.engine.audio.ISingScoringManager
java

K 歌评分管理接口。

成员函数
返回名称
abstract intinitSingScoring
abstract intsetSingScoringConfig
abstract ListgetStandardPitchInfo
abstract intstartSingScoring
abstract intstopSingScoring
abstract intgetLastSentenceScore
abstract intgetTotalScore
abstract intgetAverageScore
函数说明

initSingScoring
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.initSingScoring(
    String singScoringAppkey,
    String singAcoringToken,
    ISingScoringEventHandler handler)
java

初始化 K 歌评分。

传入参数

参数名类型说明
singScoringAppkeyStringK 歌评分密钥,用于鉴权验证 K 歌功能是否开通。
singAcoringTokenStringK 歌评分密钥,用于鉴权验证 K 歌功能是否开通。
handlerISingScoringEventHandlerK 歌评分事件回调类,详见 ISingScoringEventHandler。

返回值

注意
输入正确的鉴权信息才可以使用 K 歌评分相关的功能,鉴权方式为离线鉴权,根据包名(bundleID)绑定 Appkey 及 Token,K 歌评分密钥请联系技术支持同学申请。

setSingScoringConfig
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.setSingScoringConfig(
    SingScoringConfig config)
java

设置 K 歌评分参数。

传入参数

参数名类型说明
configSingScoringConfigK 歌评分的各项参数,详见 SingScoringConfig。

返回值

getStandardPitchInfo
public abstract List<StandardPitchInfo> com.ss.bytertc.engine.audio.ISingScoringManager.getStandardPitchInfo(
    String midiFilepath)
java

获取标准音高数据。

传入参数

参数名类型说明
midiFilepathString歌曲 midi 文件路径。

返回值
StandardPitchInfo 标准音高数据数组。

注意

startSingScoring
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.startSingScoring(
    int position,
    int scoringInfoInterval)
java

开始 K 歌评分。

传入参数

参数名类型说明
positionint开始评分时,音乐的播放进度,单位:ms。
scoringInfoIntervalint实时回调的时间间隔,单位:ms;默认 50 ms。最低间隔为 20 ms。

返回值

注意

stopSingScoring
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.stopSingScoring()
java

停止 K 歌评分。

返回值

getLastSentenceScore
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.getLastSentenceScore()
java

获取上一句的演唱评分。调用 startSingScoring 开始评分后可以调用该接口。

返回值

getTotalScore
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.getTotalScore()
java

获取当前演唱总分。调用 startSingScoring 开始评分后可以调用该接口。

返回值

getAverageScore
public abstract int com.ss.bytertc.engine.audio.ISingScoringManager.getAverageScore()
java

获取当前演唱歌曲的平均分。

返回值

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

空间音频接口实例

成员函数
返回名称
voidenableSpatialAudio
intupdatePosition
intupdateSelfOrientation
voiddisableRemoteOrientation
intupdateListenerPosition
intupdateListenerOrientation
函数说明

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

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

传入参数

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

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

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

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

如果未调用 updateListenerPosition 设定收听位置,默认的收听位置和发声位置一致。

传入参数

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

返回值

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

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

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

如果未调用 updateListenerOrientation 设定收听朝向,默认的收听位朝向和发声朝向一致。

传入参数

参数名类型说明
orientationHumanOrientation参看 HumanOrientation。

返回值
方法调用结果:

注意

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

关闭本地用户朝向对本地用户发声效果的影响。

调用此接口后,房间内的其他用户收听本地发声时,声源都在收听者正面。

注意

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

更新在房间内收听音频时的位置。

通过此接口,你可以设定本地发声位置和收听位置不同。

传入参数

参数名类型说明
posPosition空间直角坐标系下的坐标值。参看 Position。
如果未调用此接口设定收听位置,那么默认值为通过 updatePosition 设定的值。

返回值

注意

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

更新在房间内收听音频时的朝向。

通过此接口,你可以设定本地用户的发声朝向和收听朝向不同。

传入参数

参数名类型说明
orientationHumanOrientation自身朝向信息,参看 HumanOrientation。
如果未调用此接口设定收听朝向,那么默认值为通过 updateSelfOrientation 设定的值。

返回值
方法调用结果:

注意
空间音频相关 API 和调用时序详见空间音频。

IVideoEffect
public abstract class com.ss.bytertc.engine.video.IVideoEffect
java

高级视频特效。

成员函数
返回名称
abstract intinitCVResource
abstract intenableVideoEffect
abstract intdisableVideoEffect
abstract intsetEffectNodes
abstract intupdateEffectNode
abstract intsetColorFilter
abstract intsetColorFilterIntensity
abstract intenableVirtualBackground
abstract intdisableVirtualBackground
abstract intenableFaceDetection
abstract intdisableFaceDetection
abstract int[deprecated] registerFaceDetectionObserver
函数说明

initCVResource
public abstract int com.ss.bytertc.engine.video.IVideoEffect.initCVResource(
    String license_file,
    String algo_model_dir)
java

检查视频特效证书,设置算法模型路径,并初始化特效模块。

传入参数

参数名类型说明
license_fileString证书文件的绝对路径,用于鉴权。
algo_model_dirString算法模型绝对路径,即存放特效 SDK 所有算法模型的目录。

返回值

enableVideoEffect
public abstract int com.ss.bytertc.engine.video.IVideoEffect.enableVideoEffect()
java

开启高级美颜、滤镜等视频特效。

返回值

注意

disableVideoEffect
public abstract int com.ss.bytertc.engine.video.IVideoEffect.disableVideoEffect()
java

关闭视频特效。

返回值

注意
调用 enableVideoEffect 开启视频特效。

setEffectNodes
public abstract int com.ss.bytertc.engine.video.IVideoEffect.setEffectNodes(
    List<String> effect_nodes)
java

设置视频特效素材包。

传入参数

参数名类型说明
effect_nodesList特效素材包绝对路径数组。
要取消当前视频特效,将此参数设置为 null。

返回值

注意
调用本方法前,必须先调用 enableVideoEffect。

updateEffectNode
public abstract int com.ss.bytertc.engine.video.IVideoEffect.updateEffectNode(
    String effect_node,
    String key,
    float value)
java

设置特效强度。

传入参数

参数名类型说明
effect_nodeString特效素材包绝对路径,参考素材包结构说明。
keyString需要设置的素材 key 名称,参考素材 key 对应说明。
valuefloat特效强度值,取值范围 [0,1],超出范围时设置无效。

返回值

setColorFilter
public abstract int com.ss.bytertc.engine.video.IVideoEffect.setColorFilter(
    String filter_res)
java

设置颜色滤镜。

传入参数

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

返回值

注意
调用 setColorFilterIntensity 设置已启用颜色滤镜的强度。设置强度为 0 时即关闭颜色滤镜。

setColorFilterIntensity
public abstract int com.ss.bytertc.engine.video.IVideoEffect.setColorFilterIntensity(
    float intensity)
java

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

传入参数

参数名类型说明
intensityfloat滤镜强度。取值范围 [0,1],超出范围时设置无效。
当设置滤镜强度为 0 时即关闭颜色滤镜。

返回值

enableVirtualBackground
public abstract int com.ss.bytertc.engine.video.IVideoEffect.enableVirtualBackground(
    String bg_sticker_res,
    VirtualBackgroundSource source)
java

将摄像头采集画面中的人像背景替换为指定图片或纯色背景。

传入参数

参数名类型说明
bg_sticker_resString背景贴纸特效素材绝对路径。
sourceVirtualBackgroundSource背景贴纸对象,参看 VirtualBackgroundSource。

返回值

注意

disableVirtualBackground
public abstract int com.ss.bytertc.engine.video.IVideoEffect.disableVirtualBackground()
java

关闭虚拟背景。

返回值

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

registerFaceDetectionObserver
public abstract int com.ss.bytertc.engine.video.IVideoEffect.registerFaceDetectionObserver(
    IFaceDetectionObserver observer,
    int interval_ms)
java

Deprecated since 3.50 and will be deleted in 3.55, use enableFaceDetection and disableFaceDetection instead.

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

传入参数

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

返回值

enableFaceDetection
public abstract int com.ss.bytertc.engine.video.IVideoEffect.enableFaceDetection(
    IFaceDetectionObserver observer,
    int interval_ms,
    String face_model_path)
java

开启人脸识别功能,并设置人脸检测结果回调观察者。
此观察者后,你会周期性收到 onFaceDetectResult 回调。

传入参数

参数名类型说明
observerIFaceDetectionObserver人脸检测结果回调观察者,参看 IFaceDetectionObserver。
interval_msint两次回调之间的最小时间间隔,必须大于 0,单位为毫秒。实际收到回调的时间间隔大于 interval_ms,小于 interval_ms+视频采集帧间隔。
face_model_pathString人脸检测算法模型文件路径,一般为 ttfacemodel 文件夹中 tt_face_vXXX.model 文件的绝对路径。

返回值

disableFaceDetection
public abstract int com.ss.bytertc.engine.video.IVideoEffect.disableFaceDetection()
java

关闭人脸识别功能。

返回值

IVideoProcessor
public abstract class com.ss.bytertc.engine.video.IVideoProcessor
java
成员函数
返回名称
abstract VideoFrameprocessVideoFrame
voidonGLEnvInitiated
voidonGLEnvRelease
函数说明

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

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

传入参数

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

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

注意

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

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

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

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

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

IRTCAudioDeviceManager
public interface com.ss.bytertc.engine.IRTCAudioDeviceManager
java

IRTCAudioDeviceManager 接口

成员函数
返回名称
abstract intstartAudioPlaybackDeviceTest
abstract intstopAudioPlaybackDeviceTest
abstract intstartAudioDeviceRecordTest
abstract intstopAudioDeviceRecordAndPlayTest
abstract intstopAudioDevicePlayTest
函数说明

startAudioPlaybackDeviceTest
public abstract int com.ss.bytertc.engine.IRTCAudioDeviceManager.startAudioPlaybackDeviceTest(
    String testAudioFilePath,
    int interval)
java

启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。

传入参数

参数名类型说明
testAudioFilePathString指定播放设备检测的音频文件网络地址。支持的格式包括 mp3,aac,m4a,3gp 和 wav。
intervalint设置 onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 10 毫秒。

返回值
方法调用结果

注意

stopAudioPlaybackDeviceTest
public abstract int com.ss.bytertc.engine.IRTCAudioDeviceManager.stopAudioPlaybackDeviceTest()
java

停止音频播放测试。

返回值
方法调用结果

注意
调用 startAudioPlaybackDeviceTest 后,调用本方法停止测试。

startAudioDeviceRecordTest
public abstract int com.ss.bytertc.engine.IRTCAudioDeviceManager.startAudioDeviceRecordTest(
    int interval)
java

开始音频采集设备和音频播放设备测试。

传入参数

参数名类型说明
intervalint测试中会收到 enableAudioPropertiesReport 回调,本参数指定了该周期回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。

返回值
方法调用结果

注意

stopAudioDeviceRecordAndPlayTest
public abstract int com.ss.bytertc.engine.IRTCAudioDeviceManager.stopAudioDeviceRecordAndPlayTest()
java

停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。

调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。

返回值
方法调用结果

注意
调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。

stopAudioDevicePlayTest
public abstract int com.ss.bytertc.engine.IRTCAudioDeviceManager.stopAudioDevicePlayTest()
java

停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。

返回值
方法调用结果

KTVManager
public abstract class com.ss.bytertc.ktv.KTVManager
java

KTV 管理接口。

成员函数
返回名称
abstract voidsetKTVEventHandler
abstract voidsetMaxCacheSize
abstract voidgetMusicList
abstract voidsearchMusic
abstract voidgetHotMusic
abstract voidgetMusicDetail
abstract intdownloadMusic
abstract intdownloadLyric
abstract intdownloadMidi
abstract voidcancelDownload
abstract voidclearCache
abstract KTVPlayergetKTVPlayer
函数说明

setKTVEventHandler
public abstract void com.ss.bytertc.ktv.KTVManager.setKTVEventHandler(
    IKTVEventHandler ktvEventHandler)
java

设置 KTV 回调接口。

传入参数

参数名类型说明
ktvEventHandlerIKTVEventHandlerKTV 回调类,参看 IKTVEventHandler。

setMaxCacheSize
public abstract void com.ss.bytertc.ktv.KTVManager.setMaxCacheSize(
    int maxCacheSizeMB)
java

设置歌曲文件最大占用的本地缓存。

传入参数

参数名类型说明
maxCacheSizeMBint本地缓存,单位 MB。
设置值小于等于 0 时,使用默认值 1024 MB。

getMusicList
public abstract void com.ss.bytertc.ktv.KTVManager.getMusicList(
    int pageNum,
    int pageSize,
    @NonNull MusicFilterType[] filters)
java

获取歌曲列表。

传入参数

参数名类型说明
pageNumint页码,默认从 1 开始。
pageSizeint每页显示歌曲的最大数量,取值范围 [1,99]。
filters@NonNull MusicFilterType[]歌曲过滤方式,参看 MusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 onMusicListResult 回调歌曲列表。

searchMusic
public abstract void com.ss.bytertc.ktv.KTVManager.searchMusic(
    @NonNull String keyWord,
    int pageNum,
    int pageSize,
    @NonNull MusicFilterType[] filters)
java

根据关键词搜索歌曲。

传入参数

参数名类型说明
keyWord@NonNull String关键词,字符串长度最大为 20 个字符。
pageNumint页码,默认从 1 开始。
pageSizeint每页显示歌曲的最大数量,取值范围 [1,99]。
filters@NonNull MusicFilterType[]歌曲过滤方式,参看 MusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 onSearchMusicResult 回调歌曲列表。

getHotMusic
public abstract void com.ss.bytertc.ktv.KTVManager.getHotMusic(
    @NonNull MusicHotType[] hotTypes,
    @NonNull MusicFilterType[] filters)
java

根据热榜类别获取每个榜单的歌曲列表。

传入参数

参数名类型说明
hotTypes@NonNull MusicHotType[]热榜类别,参看 MusicHotType。多个热榜类别可以按位或组合。
filters@NonNull MusicFilterType[]歌曲过滤方式,参看 MusicFilterType。多个过滤方式可以按位或组合。

注意
调用接口后,你会收到 onHotMusicResult 回调歌曲列表。

getMusicDetail
public abstract void com.ss.bytertc.ktv.KTVManager.getMusicDetail(
    @NonNull String musicId)
java

获取音乐详细信息。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

注意
调用接口后,你会收到 onMusicDetailResult 回调。

downloadMusic
public abstract int com.ss.bytertc.ktv.KTVManager.downloadMusic(
    @NonNull String musicId)
java

下载音乐。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

返回值
下载任务 ID。

注意

downloadLyric
public abstract int com.ss.bytertc.ktv.KTVManager.downloadLyric(
    @NonNull String musicId,
    @NonNull DownloadLyricType lyricType)
java

下载歌词。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
lyricType@NonNull DownloadLyricType歌词文件类型,参看 DownloadLyricType。

返回值
下载任务 ID。

注意

downloadMidi
public abstract int com.ss.bytertc.ktv.KTVManager.downloadMidi(
    @NonNull String musicId)
java

下载 MIDI 文件。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

返回值
下载任务 ID。

注意

cancelDownload
public abstract void com.ss.bytertc.ktv.KTVManager.cancelDownload(
    int downloadId)
java

取消下载任务。

传入参数

参数名类型说明
downloadIdint下载任务 ID。

clearCache
public abstract void com.ss.bytertc.ktv.KTVManager.clearCache()
java

清除当前音乐缓存文件,包括音乐音频和歌词。

getKTVPlayer
public abstract KTVPlayer com.ss.bytertc.ktv.KTVManager.getKTVPlayer()
java

获取 KTV 播放器。

返回值
KTV 播放器接口,参看 KTVPlayer。

KTVPlayer
public abstract class com.ss.bytertc.ktv.KTVPlayer
java

KTV 播放器接口。

成员函数
返回名称
abstract voidsetPlayerEventHandler
abstract voidplayMusic
abstract voidpauseMusic
abstract voidresumeMusic
abstract voidstopMusic
abstract voidseekMusic
abstract voidsetMusicVolume
abstract voidswitchAudioTrackType
abstract voidsetMusicPitch
函数说明

setPlayerEventHandler
public abstract void com.ss.bytertc.ktv.KTVPlayer.setPlayerEventHandler(
    IKTVPlayerEventHandler playerEventHandler)
java

设置 KTV 播放器进度及状态回调接口。

传入参数

参数名类型说明
playerEventHandlerIKTVPlayerEventHandlerKTV 播放器回调类,参看 IKTVPlayerEventHandler。

playMusic
public abstract void com.ss.bytertc.ktv.KTVPlayer.playMusic(
    @NonNull String musicId,
    @NonNull AudioTrackType trackType,
    @NonNull AudioPlayType playType)
java

播放歌曲。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
若同一 musicId 的歌曲正在播放,再次调用接口会从开始位置重新播放。若 musicId 对应的音频文件不存在会触发报错。
trackType@NonNull AudioTrackType原唱伴唱类型,参看 AudioTrackType。
playType@NonNull AudioPlayType音乐播放类型。参看 AudioPlayType。

注意

pauseMusic
public abstract void com.ss.bytertc.ktv.KTVPlayer.pauseMusic(
    @NonNull String musicId)
java

暂停播放歌曲。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

注意

resumeMusic
public abstract void com.ss.bytertc.ktv.KTVPlayer.resumeMusic(
    @NonNull String musicId)
java

继续播放歌曲。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

注意

stopMusic
public abstract void com.ss.bytertc.ktv.KTVPlayer.stopMusic(
    @NonNull String musicId)
java

停止播放歌曲。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

注意

seekMusic
public abstract void com.ss.bytertc.ktv.KTVPlayer.seekMusic(
    @NonNull String musicId,
    int position)
java

设置音乐文件的起始播放位置。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
positionint音乐起始位置,单位为毫秒,取值小于音乐文件总时长。

注意

setMusicVolume
public abstract void com.ss.bytertc.ktv.KTVPlayer.setMusicVolume(
    @NonNull String musicId,
    int volume)
java

设置歌曲播放音量,只能在开始播放后进行设置。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
volumeint歌曲播放音量,调节范围:[0,400]。
• 0:静音。
• 100:原始音量。
• 400: 原始音量的 4 倍(自带溢出保护)。

注意

switchAudioTrackType
public abstract void com.ss.bytertc.ktv.KTVPlayer.switchAudioTrackType(
    @NonNull String musicId)
java

切换歌曲原唱伴唱。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。

注意
调用本接口时音乐必须处于播放中状态。

setMusicPitch
public abstract void com.ss.bytertc.ktv.KTVPlayer.setMusicPitch(
    @NonNull String musicId,
    int pitch)
java

对播放中的音乐设置升降调信息。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
pitchint相对于音乐文件原始音调的升高/降低值,取值范围 [-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。

注意