IRTCEngineEventHandler

public abstract class com.ss.bytertc.engine.handler.IRTCEngineEventHandler

音视频引擎事件回调接口

成员函数

返回 名称
void onJoinRoomResult
void onWarning
void onError
void onLeaveRoom
void onRoomStats
void onSysStats
void onAudioVolumeIndication
void onNetworkTypeChanged
void onUserJoined
void onUserLeave
void onUserMuteAudio
void onUserMuteVideo
void onUserStartVideoCapture
void onUserStopVideoCapture
void onUserStartAudioCapture
void onUserStopAudioCapture
void onSimulcastSubscribeFallback
void onLocalStreamStats
void onRemoteStreamStats
void onLocalAudioStateChanged
void onRemoteAudioStateChanged
void onLocalVideoStateChanged
void onRemoteVideoStateChanged
void onFirstRemoteVideoFrameRendered
void onFirstLocalVideoFrameCaptured
void onLocalVideoSizeChanged
void onRemoteVideoSizeChanged
void onConnectionStateChanged
void onStreamAdd
void onStreamRemove
void onAudioMixingFinished
void onAudioPlaybackDeviceChanged
void onFirstLocalAudioFrame
void onFirstRemoteAudioFrame
void onAudioEffectFinished
void onLogReport
void onRoomMessageReceived
void onRoomBinaryMessageReceived
void onLiveTranscodingResult
void onUserMessageReceived
void onUserBinaryMessageReceived
void onUserMessageSendResult
void onRoomMessageSendResult
void onLoginResult
void onLogout
void onServerParamsSetResult
void onGetPeerOnlineStatus
void onUserMessageReceivedOutsideRoom
void onUserBinaryMessageReceivedOutsideRoom
void onUserMessageSendResultOutsideRoom
void onServerMessageSendResult
void onPerformanceAlarms
void onAudioFrameSendStateChanged
void onVideoFrameSendStateChanged
void onScreenVideoFrameSendStateChanged
void onAudioFramePlayStateChanged
void onVideoFramePlayStateChanged
void onScreenVideoFramePlayStateChanged
void onMirrorStateChanged
void onMediaDeviceStateChanged
void onHttpProxyState
void onHttpsProxyState
void onSocks5ProxyState
void onRecordingStateUpdate
void onRecordingProgressUpdate
void onAudioMixingStateChanged

函数说明

onJoinRoomResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onJoinRoomResult(
    String roomId,
    String uid,
    int errorCode,
    int joinType,
    int elapsed)

首次加入房间/重连加入房间的回调。此回调表示调用 joinRoom 的结果,根据错误码判断成功/失败以及区别是否为重连。

传入参数

参数名 类型 说明
roomId String 房间 ID。
uid String 用户 ID。
errorCode int 用户加入房间回调的状态码。
• 0: 加入房间成功;
• 非 0: 加入房间失败,具体原因参看 ErrorCode 以及 WarningCode。
joinType int 用户加入房间的类型。
• 0: 首次加入房间。用户手动调用 joinRoom,收到加入成功。
• 1: 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。
elapsed int 重连耗时。本地用户从连接断开到重连成功所经历的时间间隔,单位为 ms。

onWarning

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onWarning(
    int warn)

发生警告回调。

传入参数

参数名 类型 说明
warn int 警告代码,参见 WarningCode

注意 SDK 运行时出现了(网络或媒体相关的)警告。SDK 通常会自动恢复,警告信息可以忽略。

onError

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onError(
    int err)

发生错误回调。

传入参数

参数名 类型 说明
err int 错误代码,详情定义见: ErrorCode

注意 SDK 运行时出现了(网络或媒体相关的)错误。SDK 通常无法自动恢复,你可能需要干预。

onLeaveRoom

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLeaveRoom(
    RTCRoomStats stats)

离开房间成功回调。
用户调用 LeaveRoomleaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
离开房间后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备导致初始化失败。

传入参数

参数名 类型 说明
stats RTCRoomStats 本次通话的统计数据。详见 RTCRoomStats。

注意

onRoomStats

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRoomStats(
    RTCRoomStats stats)

房间通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。

传入参数

参数名 类型 说明
stats RTCRoomStats 当前 RtcEngine 统计数据,详见 RTCRoomStats

onSysStats

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onSysStats(
    SysStats stats)

每2秒发生回调,通知当前cpu,内存使用的信息。

传入参数

参数名 类型 说明
stats SysStats cpu,内存信息。详见 SysStats 数据类型。

onAudioVolumeIndication

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioVolumeIndication(
    IRTCEngineEventHandler.AudioVolumeInfo[] speakers,
    int totalRemoteVolume)

提示本地采集的音量信息和在房间内订阅的远端用户的音量信息。
本回调默认不开启。你可以通过调用 setAudioVolumeIndicationInterval 开启。

传入参数

参数名 类型 说明
speakers IRTCEngineEventHandler.AudioVolumeInfo[] 本地用户和订阅的远端用户的 ID 和音量。 参看 AudioVolumeInfo。
totalRemoteVolume int speakers 中包含的所有音频音量之和,取值范围是:[0,255]

注意

onNetworkTypeChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onNetworkTypeChanged(
    int type)

SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。

传入参数

参数名 类型 说明
type int 网络类型。
• -1: 网络连接类型未知。
• 0: 网络连接已断开。
• 1: 网络类型为 LAN 。
• 2: 网络类型为 Wi-Fi(包含热点)。
• 3: 网络类型为 2G 移动网络。
• 4: 网络类型为 3G 移动网络。
• 5: 网络类型为 4G 移动网络。

onUserJoined

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserJoined(
    UserInfo userInfo,
    int elapsed)

远端可见用户加入房间,或房内隐身用户切换为可见的回调。
1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。

传入参数

参数名 类型 说明
userInfo UserInfo 用户信息,参看 UserInfo。
elapsed int 主播角色用户调用 joinRoom 加入房间到房间内其他用户收到该事件经历的时间,单位为 ms。

onUserLeave

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserLeave(
    String uid,
    int reason)

远端可见用户离开房间,或从可见切换为隐身的回调。
发生以下情形时,房间内其他用户会收到此事件:
1.远端可见用户调用 leaveRoom 方法离开房间时;
2.远端可见用户调用 setUserVisibility 方法切换至隐身时。
3.远端主播角色用户断网,且一直未恢复。

传入参数

参数名 类型 说明
uid String 离开房间,或切至隐身的的远端用户 ID。
reason int 用户离开房间的原因:
• 0: 远端用户调用 leaveRoom 主动退出房间,或切换至隐身。
• 1: 远端用户因网络等原因掉线。

onUserMuteAudio

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMuteAudio(
    String uid,
    MuteState muteState)

房间内某用户调用 muteLocalAudio 改变本地音频发送状态时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 改变本地音频发送状态的用户 ID
muteState MuteState 发送状态,详见 MuteState

onUserMuteVideo

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMuteVideo(
    String uid,
    MuteState muteState)

房间内用户暂停/恢复发送视频流时,房间内其他用户将收到此回调。
参看 muteLocalVideo。

传入参数

参数名 类型 说明
uid String 暂停/恢复发送视频流的用户 ID。
muteState MuteState 暂停/恢复发送视频流的状态。参看 MuteState。

onUserStartVideoCapture

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserStartVideoCapture(
    String uid)

房间内的用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 开启视频采集的远端用户 ID

onUserStopVideoCapture

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserStopVideoCapture(
    String uid)

房间内的用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 关闭视频采集的远端用户 ID

onUserStartAudioCapture

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserStartAudioCapture(
    String uid)

房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 开启音频采集的远端用户 ID

onUserStopAudioCapture

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserStopAudioCapture(
    String uid)

房间内的用户调用 stopAudioCapture 开启音频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 关闭音频采集的远端用户 ID

onSimulcastSubscribeFallback

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onSimulcastSubscribeFallback(
    RemoteStreamSwitch event)

因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。

传入参数

参数名 类型 说明
event RemoteStreamSwitch 流切换信息。详见 RemoteStreamSwitch。

注意 必须先通过 API 或控制台设置音视频流订阅回退功能时,你才能收到此回调。

onLocalStreamStats

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLocalStreamStats(
    LocalStreamStats stats)

反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。
本地用户发布音视频流成功后,每隔 2s 收到此回调。

传入参数

参数名 类型 说明
stats LocalStreamStats 音视频流以及网络状况统计信息。参见 LocalStreamStats。

onRemoteStreamStats

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRemoteStreamStats(
    RemoteStreamStats stats)

通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况,每 2s 触发一次。 反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。

传入参数

参数名 类型 说明
stats RemoteStreamStats 音视频流以及网络状况统计信息。参见 RemoteStreamStats。

onLocalAudioStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLocalAudioStateChanged(
    LocalAudioStreamState state,
    LocalAudioStreamError error)

本地音频流的状态发生改变时,该回调通知当前的本地音频流状态。

传入参数

参数名 类型 说明
state LocalAudioStreamState 本地音频设备的状态,详见 LocalAudioStreamState
error LocalAudioStreamError 本地音频流状态改变时的错误码,详见 LocalAudioStreamError

onRemoteAudioStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRemoteAudioStateChanged(
    RemoteStreamKey key,
    RemoteAudioState state,
    RemoteAudioStateChangeReason reason)

用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。

传入参数

参数名 类型 说明
key RemoteStreamKey 远端流信息, 详见 RemoteStreamKey
state RemoteAudioState 远端音频流状态,详见 RemoteAudioState
reason RemoteAudioStateChangeReason 远端音频流状态改变的原因,详见 RemoteAudioStateChangeReason

onLocalVideoStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLocalVideoStateChanged(
    StreamIndex streamIndex,
    LocalVideoStreamState state,
    LocalVideoStreamError error)

本地视频流的状态发生改变时,收到该事件。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
state LocalVideoStreamState 本地视频流状态,参看 LocalVideoStreamState
error LocalVideoStreamError 本地视频状态改变时的错误码,参看 LocalVideoStreamError

onRemoteVideoStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRemoteVideoStateChanged(
    RemoteStreamKey streamKey,
    RemoteVideoState videoState,
    RemoteVideoStateChangeReason videoStateReason)

远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。

传入参数

参数名 类型 说明
streamKey RemoteStreamKey 远端视频流信息,房间、用户 ID、流属性等,参看 RemoteStreamKey
videoState RemoteVideoState 远端视频流状态,参看 RemoteVideoState
videoStateReason RemoteVideoStateChangeReason 远端视频流状态改变原因,参看 RemoteVideoStateChangeReason

onFirstRemoteVideoFrameRendered

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onFirstRemoteVideoFrameRendered(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo)

第一帧远端视频流在视图上渲染成功后,收到此回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端流信息,参看 RemoteStreamKey
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onFirstLocalVideoFrameCaptured

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onFirstLocalVideoFrameCaptured(
    StreamIndex streamIndex,
    VideoFrameInfo frameInfo)

第一帧本地采集的视频/屏幕共享画面采集完成时,收到此回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
VideoFrameInfo **** 视频信息,参看 VideoFrameInfo

onLocalVideoSizeChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLocalVideoSizeChanged(
    StreamIndex streamIndex,
    VideoFrameInfo frameInfo)

本地视频大小或旋转信息发生改变时,收到此回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onRemoteVideoSizeChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRemoteVideoSizeChanged(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo)

远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端流信息,参看 StreamIndex
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onConnectionStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onConnectionStateChanged(
    int state,
    int reason)

回调 SDK 与信令服务器连接状态相关事件。当 SDK 与信令服务器的网络连接状态改变时回调该事件。

传入参数

参数名 类型 说明
state int 当前 SDK 与信令服务器连接状态。 详细定义参见 ConnectionState
reason int 引起信令服务器连接状态发生改变的原因,目前未启用固定为 -1 。

注意

onStreamAdd

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onStreamAdd(
    RTCStream stream)

房间内新流发布回调。
房间内的远端用户发布新的音视频流时,本地用户会收到此回调通知。

传入参数

参数名 类型 说明
stream RTCStream 流的属性,详见 RTCStream 数据类型。

onStreamRemove

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onStreamRemove(
    RTCStream stream,
    StreamRemoveReason reason)

房间内远端流移除回调。
房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。

传入参数

参数名 类型 说明
stream RTCStream 流的属性,参看 RTCStream。
reason StreamRemoveReason 远端流移除的原因,参看 StreamRemoveReason。

onAudioMixingFinished

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioMixingFinished()

本地音乐文件播放已结束回调。 当调用 startAudioMixing 启动的混音文件播放结束后,会触发该回调。

onAudioPlaybackDeviceChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioPlaybackDeviceChanged(
    AudioPlaybackDevice device)

音频播放设备变化时,收到该回调。

传入参数

参数名 类型 说明
device AudioPlaybackDevice 新的音频设备,详见 AudioPlaybackDevice

注意 音频设备设置与音频路由策略,详见 setAudioPlaybackDevice

onFirstLocalAudioFrame

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onFirstLocalAudioFrame(
    StreamIndex streamIndex)

本地采集到第一帧音频帧时,收到该回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 音频流属性, 详见 StreamIndex

onFirstRemoteAudioFrame

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onFirstRemoteAudioFrame(
    RemoteStreamKey remoteStreamKey)

接收到来自远端某音频流的第一帧时,收到该回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端音频流信息, 详见 RemoteStreamKey

注意 用户刚收到房间内订阅的每一路音频流时,都会收到该回调。

onAudioEffectFinished

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioEffectFinished(
    int soundId)

本地音效文件播放已结束回调。

传入参数

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

注意 当调用 startAudioMixing 方法开始播放指定音效文件, 音效文件播放结束后, 应用会收到该回调。

onLogReport

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLogReport(
    String logType,
    JSONObject logContent)

上报日志时回调该事件。

传入参数

参数名 类型 说明
logType String 日志类型。
logContent JSONObject 日志内容。

onRoomMessageReceived

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRoomMessageReceived(
    String uid,
    String message)

接收到房间内广播消息的回调。
房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message String 收到的消息内容

onRoomBinaryMessageReceived

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRoomBinaryMessageReceived(
    String uid,
    ByteBuffer message)

接收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message ByteBuffer 收到的二进制消息内容

onLiveTranscodingResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLiveTranscodingResult(
    String url,
    int error)

转推直播错误回调。
调用 startLiveTranscoding 接口或直接在服务端启动转推直播功能后,你会通过此回调收到启动结果和推流过程中的错误。

传入参数

参数名 类型 说明
url String 推流地址的 URL。
error int 转推直播功能错误码,详见枚举类型 TranscodingError。

onUserMessageReceived

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMessageReceived(
    String uid,
    String message)

收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者的用户 ID 。
message String 收到的文本消息内容。

onUserBinaryMessageReceived

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserBinaryMessageReceived(
    String uid,
    ByteBuffer message)

收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者的用户 ID 。
message ByteBuffer 收到的二进制消息内容。

onUserMessageSendResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMessageSendResult(
    long msgid,
    int error)

向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。

传入参数

参数名 类型 说明
msgid long 本条消息的 ID。
error int 文本或二进制消息发送结果,详见 UserMessageSendResult

注意 调用 sendUserMessage 或 sendUserBinaryMessage 接口,才能收到此回调。

onRoomMessageSendResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRoomMessageSendResult(
    long msgid,
    int error)

向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。

传入参数

参数名 类型 说明
msgid long 本条消息的 ID。
error int 消息发送结果,详见 UserMessageSendResult

注意 调用 sendRoomMessage 或 sendRoomBinaryMessage 接口,才能收到此回调。

onLoginResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLoginResult(
    String uid,
    int error_code,
    int elapsed)

登录结果回调

传入参数

参数名 类型 说明
uid String 登录用户 ID
error_code int 登录结果
详见 LoginErrorCode。
elapsed int 从调用 login 接口开始到返回结果所用时长。
单位为 ms。

注意 调用 login 后,会收到此回调。

onLogout

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onLogout()

登出结果回调

注意 调用 logout 后,会收到此回调。

onServerParamsSetResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onServerParamsSetResult(
    int error)

设置业务服务器参数的返回结果

传入参数

参数名 类型 说明
error int 设置结果
• 返回 200,设置成功
• 返回其他,设置失败

注意 调用 setServerParams 后,会收到此回调。

onGetPeerOnlineStatus

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onGetPeerOnlineStatus(
    String peerUserId,
    int status)

查询对端或本端用户登录状态的返回结果

传入参数

参数名 类型 说明
peerUserId String 需要查询的用户 ID
status int 查询的用户登录状态
详见 USER_ONLINE_STATUS.

注意 必须先调用 getPeerOnlineStatus,才能收到此回调。

onUserMessageReceivedOutsideRoom

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMessageReceivedOutsideRoom(
    String uid,
    String message)

收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message String 收到的文本消息内容

onUserBinaryMessageReceivedOutsideRoom

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserBinaryMessageReceivedOutsideRoom(
    String uid,
    ByteBuffer message)

收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message ByteBuffer 收到的二进制消息内容

onUserMessageSendResultOutsideRoom

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserMessageSendResultOutsideRoom(
    long msgid,
    int error)

给房间外指定的用户发送消息的回调

传入参数

参数名 类型 说明
msgid long 本条消息的 ID
所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error int 消息发送结果
详见 UserMessageSendResult。

注意 当调用 sendUserMessageOutsideRoom 或 sendUserBinaryMessageOutsideRoom 发送消息后,会收到此回调。

onServerMessageSendResult

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onServerMessageSendResult(
    long msgid,
    int error)

给业务服务器发送消息的回调

传入参数

参数名 类型 说明
msgid long 本条消息的 ID
所有的 P2P 和 P2Server 消息共用一个 ID 序列。
error int 消息发送结果
详见 UserMessageSendResult。

注意 当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。

onPerformanceAlarms

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onPerformanceAlarms(
    PerformanceAlarmMode mode,
    String roomId,
    PerformanceAlarmReason reason,
    SourceWantedData data)

本地未开启发布性能回退,检测到设备性能不足时,收到此回调。
本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。

传入参数

参数名 类型 说明
mode PerformanceAlarmMode 指示本地是否开启发布回退功能。参看 PerformanceAlarmMode
• 当发布端未开启发布性能回退时,mode 值为 PERFORMANCE_ALARM_MODE_NORMAL。
• 当发布端开启发布性能回退时,mode 值为 PERFORMANCE_ALARM_MODE_SIMULCAST。
roomId String • 未开启发布性能回退时,roomId 为空
• 开启发布性能回退时,roomId 是告警影响的房间 ID。
reason PerformanceAlarmReason 告警原因,参看 PerformanceAlarmReason
data SourceWantedData 性能回退相关数据,详见 SourceWantedData。

onAudioFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioFrameSendStateChanged(
    RtcUser user,
    FirstFrameSendState state)

本地音频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onVideoFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onVideoFrameSendStateChanged(
    RtcUser user,
    FirstFrameSendState state)

本地视频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onScreenVideoFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onScreenVideoFrameSendStateChanged(
    RtcUser user,
    FirstFrameSendState state)

屏幕共享流的视频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onAudioFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioFramePlayStateChanged(
    RtcUser user,
    FirstFramePlayState state)

音频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

onVideoFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onVideoFramePlayStateChanged(
    RtcUser user,
    FirstFramePlayState state)

视频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

onScreenVideoFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onScreenVideoFramePlayStateChanged(
    RtcUser user,
    FirstFramePlayState state)

屏幕共享流视频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user RtcUser 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

onMirrorStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onMirrorStateChanged(
    boolean mirrored)

当本地视频镜像状态改变时回调该事件。默认回调该事件。

传入参数

参数名 类型 说明
mirrored boolean 当前是否开启镜像。
• true: 当前本地视频状态为开启镜像;
• false: 当前本地视频状态为关闭镜像。

onMediaDeviceStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onMediaDeviceStateChanged(
    String device_id,
    int device_type,
    int device_state,
    int device_error)

媒体设备状态回调。提示音频采集、音频渲染、视频采集三种媒体设备的状态。

传入参数

参数名 类型 说明
device_id String 设备id
device_type int 设备类型,详见 MediaDeviceType
device_state int 设备状态,详见 MediaDeviceState
device_error int 设备错误类型,详见 MediaDeviceError

注意

onHttpProxyState

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onHttpProxyState(
    int state)

HTTP 代理连接状态改变时,收到该回调。

传入参数

参数名 类型 说明
state int 当前 HTTP 代理连接状态

onHttpsProxyState

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onHttpsProxyState(
    int state)

HTTPS 代理连接状态改变时,收到该回调。

传入参数

参数名 类型 说明
state int 当前 HTTPS 代理连接状态

onSocks5ProxyState

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onSocks5ProxyState(
    int state,
    String cmd,
    String proxy_address,
    String local_address,
    String remote_address)

SOCKS5 代理状态改变时,收到该回调。

传入参数

参数名 类型 说明
state int SOCKS5 代理连接状态

onRecordingStateUpdate

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRecordingStateUpdate(
    StreamIndex type,
    RecordingState state,
    RecordingErrorCode errorCode,
    RecordingInfo info)

获取本地录制状态回调。
该回调由 startFileRecording 或 stopFileRecording 触发。

传入参数

参数名 类型 说明
type StreamIndex 录制流的流属性,参看 StreamIndex
state RecordingState 录制状态,参看 RecordingState
errorCode RecordingErrorCode 录制错误码,参看 RecordingErrorCode
info RecordingInfo 录制文件的详细信息,参看 RecordingInfo

onRecordingProgressUpdate

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onRecordingProgressUpdate(
    StreamIndex type,
    RecordingProgress progress,
    RecordingInfo info)

本地录制进度回调。
该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。

传入参数

参数名 类型 说明
type StreamIndex 录制流的流属性,参看 StreamIndex
progress RecordingProgress 录制进度,参看 RecordingProgress
info RecordingInfo 录制文件的详细信息,参看 RecordingInfo

onAudioMixingStateChanged

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onAudioMixingStateChanged(
    int id,
    AudioMixingState state,
    AudioMixingError error)

音频混音文件播放状态改变时回调

传入参数

参数名 类型 说明
id int 混音 ID
使用 IAudioMixingManager 相关接口时传入的唯一 ID。
state AudioMixingState 混音状态
其混音状态可参考:AudioMixingState。
error AudioMixingError 错误码
详见 AudioMixingError。

注意

IRTCEncryptionHandler

public interface com.ss.bytertc.engine.handler.IRTCEncryptionHandler

加密事件回调接口

成员函数

返回 名称
byte[] onEncryptData
byte[] onDecryptData

函数说明

onEncryptData

public byte[] com.ss.bytertc.engine.handler.IRTCEncryptionHandler.onEncryptData(
    byte[] data)

传入参数

参数名 类型 说明
data byte[] 未加密的数据。

返回值 加密后的数据

onDecryptData

public byte[] com.ss.bytertc.engine.handler.IRTCEncryptionHandler.onDecryptData(
    byte[] data)

传入参数

参数名 类型 说明
data byte[] 加密过的数据。

返回值 解密后的数据

ILiveTranscodingObserver

public interface com.ss.bytertc.engine.live.ILiveTranscodingObserver

转推直播观察者。

成员函数

返回 名称
boolean isSupportClientPushStream
void onStreamMixingEvent
void onMixingAudioFrame
void onMixingVideoFrame
void onDataFrame

函数说明

isSupportClientPushStream

boolean com.ss.bytertc.engine.live.ILiveTranscodingObserver.isSupportClientPushStream()

是否具有推流能力。

注意

onStreamMixingEvent

void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onStreamMixingEvent(
    int eventType,
    String eventData,
    int error,
    int mixType)

转推直播状态回调

传入参数

参数名 类型 说明
eventType int 合流状态
eventData String 事件参数,包含事件的状态信息
error int 转推直播错误码,详见枚举类型 TranscodingError 。
mixType int 合流类型,详见 StreamMixingType。

onMixingAudioFrame

void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingAudioFrame(
    byte[] audioFrame,
    int frameNum)

端云一体合流音频 PCM 回调

传入参数

参数名 类型 说明
audioFrame byte[] PCM 合流音频数据帧
frameNum int PCM 音频数据采样点数

注意

onMixingVideoFrame

void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingVideoFrame(
    VideoFrame VideoFrame)

端云一体合流视频 YUV 回调

传入参数

参数名 类型 说明
VideoFrame **** YUV 合流视频数据帧,参看:org.webrtc.VideoFrame

注意

onDataFrame

void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onDataFrame(
    byte[] dataFrame,
    long time)

端云一体合流视频 SEI 数据

传入参数

参数名 类型 说明
dataFrame byte[] SEI 数据
time long 时间信息

ILocalEncodedVideoFrameObserver

public interface com.ss.bytertc.engine.mediaio.ILocalEncodedVideoFrameObserver

本地视频帧监测器

成员函数

返回 名称
void onLocalEncodedVideoFrame

函数说明

onLocalEncodedVideoFrame

void com.ss.bytertc.engine.mediaio.ILocalEncodedVideoFrameObserver.onLocalEncodedVideoFrame(
    StreamIndex streamIndex,
    RTCEncodedVideoFrame encodedVideoFrame)

调用 registerLocalEncodedVideoFrameObserver 后,SDK 收到本地视频帧信息时,回调该事件

传入参数

参数名 类型 说明
streamIndex StreamIndex 本地视频帧类型,参看 StreamIndex
encodedVideoFrame RTCEncodedVideoFrame 本地视频帧信息,参看 RTCEncodedVideoFrame

IAudioFrameObserver

public interface com.ss.bytertc.engine.IAudioFrameObserver

音频数据回调观察者

成员函数

返回 名称
void onRecordAudioFrame
void onPlaybackAudioFrame
void onMixedAudioFrame

函数说明

onRecordAudioFrame

void com.ss.bytertc.engine.IAudioFrameObserver.onRecordAudioFrame(
    AudioFrame audioFrame)

返回麦克风录制的音频数据

传入参数

参数名 类型 说明
audioFrame AudioFrame 麦克风录制的音频数据, 详见:AudioFrame

onPlaybackAudioFrame

void com.ss.bytertc.engine.IAudioFrameObserver.onPlaybackAudioFrame(
    AudioFrame audioFrame)

返回远端所有用户混音后的音频数据

传入参数

参数名 类型 说明
audioFrame AudioFrame 远端所有用户混音后的音频数据, 详见:AudioFrame

onMixedAudioFrame

void com.ss.bytertc.engine.IAudioFrameObserver.onMixedAudioFrame(
    AudioFrame audioFrame)

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

传入参数

参数名 类型 说明
audioFrame AudioFrame 本地麦克风录制和远端所有用户混音后的音频数据, 详见:AudioFrame

IMetadataObserver

public interface com.ss.bytertc.engine.IMetadataObserver

metadata 观察者,可以接收媒体流中的 metadata, 或者向媒体流中添加 metadata

成员函数

返回 名称
void onMetadataReceived
byte[] onReadyToSendMetadata

函数说明

onMetadataReceived

public void com.ss.bytertc.engine.IMetadataObserver.onMetadataReceived(
    byte[] buffer,
    String uid,
    long timeStampMs)

当SDK收到的视频帧包含 medatada时,会回调该接口

传入参数

参数名 类型 说明
buffer byte[] metadata
uid String 当前帧所属的用户ID
timeStampMs long 包含 metadata 视频帧的时间戳,单位为毫秒

注意 回调中不能有耗时操作,以免影响视频卡顿

onReadyToSendMetadata

public byte[] com.ss.bytertc.engine.IMetadataObserver.onReadyToSendMetadata(
    long timeStampMs)

当SDK准备发送一个视频帧时,会回调该接口,向你询问是否需要在该视频帧中添加 metadata

传入参数

参数名 类型 说明
timeStampMs long 待添加 metadata 视频帧的时间戳, 单位毫秒

返回值 byte[] 待发送的数据,大小不能超过1024bytes

注意

IRTCRoomEventHandler

public abstract class com.ss.bytertc.engine.handler.IRTCRoomEventHandler

房间事件回调接口

成员函数

返回 名称
abstract void onLeaveRoom
abstract void onJoinRoomResult
abstract void onRoomWarning
abstract void onRoomError
abstract void onAudioVolumeIndication
abstract void onRtcStats
abstract void onUserJoined
abstract void onUserLeave
abstract void onUserMuteAudio
abstract void onLocalStreamStats
abstract void onRemoteStreamStats
abstract void onFirstLocalAudioFrame
abstract void onFirstRemoteAudioFrame
abstract void onStreamRemove
abstract void onStreamAdd
abstract void onRoomMessageReceived
abstract void onRoomBinaryMessageReceived
abstract void onUserMessageReceived
abstract void onUserBinaryMessageReceived
abstract void onUserMessageSendResult
abstract void onRoomMessageSendResult
abstract void onLiveTranscodingResult
abstract void onFirstLocalVideoFrameCaptured
abstract void onLocalVideoSizeChanged
abstract void onRemoteVideoSizeChanged
abstract void onFirstRemoteVideoFrameRendered
abstract void onUserMuteVideo
abstract void onUserStartVideoCapture
abstract void onUserStopVideoCapture
abstract void onUserStartAudioCapture
abstract void onUserStopAudioCapture
void onLocalAudioStateChanged
void onRemoteAudioStateChanged
void onLocalVideoStateChanged
void onRemoteVideoStateChanged
void onSimulcastSubscribeFallback
void onAudioFrameSendStateChanged
void onVideoFrameSendStateChanged
void onScreenVideoFrameSendStateChanged
void onAudioFramePlayStateChanged
void onVideoFramePlayStateChanged
void onScreenVideoFramePlayStateChanged

函数说明

onLeaveRoom

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLeaveRoom(
    IRTCEngineEventHandler.RTCRoomStats stats)

离开房间成功回调。
用户调用 LeaveRoomleaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
离开房间后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用音视频设备导致初始化失败。

传入参数

参数名 类型 说明
stats IRTCEngineEventHandler.RTCRoomStats 本次通话的统计数据。详见 RTCRoomStats。

注意

onJoinRoomResult

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onJoinRoomResult(
    String roomId,
    String uid,
    int errorCode,
    int joinType,
    int elapsed)

首次加入房间/重连加入房间的回调。此回调表示调用 joinRoom 的结果,根据错误码判断成功/失败以及区别是否为重连。

传入参数

参数名 类型 说明
roomId String 房间 ID。
uid String 用户 ID。
errorCode int 用户加入房间回调的状态码。
0 为加入房间成功;非 0 为加入房间失败。
具体参看 ErrorCode 以及 WarningCode。
joinType int 用户加入房间的类型。
• 0: 首次加入房间。用户手动调用 joinRoom,收到加入成功回调。
• 1: 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功回调。
elapsed int 重连耗时。本地用户从连接断开到重连成功所经历的时间间隔,单位为 ms。

返回值

onRoomWarning

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomWarning(
    int warn)

发生警告回调。

传入参数

参数名 类型 说明
warn int 警告代码,参见 WarningCode

注意 SDK 运行时出现了(网络或媒体相关的)警告。SDK 通常会自动恢复,警告信息可以忽略。

onRoomError

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomError(
    int err)

发生错误回调。

传入参数

参数名 类型 说明
err int 错误代码,详情定义见: ErrorCode

注意 SDK 运行时出现了(网络或媒体相关的)错误。SDK 通常无法自动恢复,你可能需要干预。

onAudioVolumeIndication

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAudioVolumeIndication(
    IRTCEngineEventHandler.AudioVolumeInfo[] speakers,
    int speakerNumber,
    int totalRemoteVolume)

提示本地采集的音量信息和在房间内订阅的远端用户的音量信息。
本回调默认不开启。你可以通过调用 setAudioVolumeIndicationInterval 开启。

传入参数

参数名 类型 说明
speakers IRTCEngineEventHandler.AudioVolumeInfo[] 本地用户和订阅的远端用户的 ID 和音量。 参看 AudioVolumeInfo。
speakerNumber int speakers 的长度。
totalRemoteVolume int speakers 中包含的所有音频音量之和,取值范围是:[0,255]

注意

onRtcStats

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRtcStats(
    IRTCEngineEventHandler.RTCRoomStats stats)

房间通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。

传入参数

参数名 类型 说明
stats IRTCEngineEventHandler.RTCRoomStats 房间内的汇总统计数据。详见 RTCRoomStats。

onUserJoined

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserJoined(
    UserInfo userInfo,
    int elapsed)

可见用户加入房间,或房内隐身用户切换为可见的回调。
1.远端可见用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。

传入参数

参数名 类型 说明
userInfo UserInfo 用户信息。参看 UserInfo。
elapsed int 主播角色用户调用 joinRoom 加入房间到房间内其他用户收到该事件经历的时间,单位为 ms。

onUserLeave

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserLeave(
    String uid,
    int reason)

远端见用户离开房间,或从可见切换为隐身的回调。
发生以下情形时,房间内其他用户会收到此事件:
1. 远端可见用户调用 leaveRoom 方法离开房间时。
2. 远端可见用户调用 setUserVisibility 方法切换至隐身时。
3. 远端主播角色用户断网,且一直未恢复。

传入参数

参数名 类型 说明
uid String 离开房间,或切至隐身的的远端用户 ID。
reason int 用户离开房间的原因:
• 0: 远端用户调用 leaveRoom 主动退出房间,或或切换至隐身。
• 1: 远端用户因网络等原因掉线。

onUserMuteAudio

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMuteAudio(
    String uid,
    MuteState muteState)

房间内某用户调用 muteLocalAudio 改变本地音频发送状态时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 改变本地音频发送状态的用户 ID
muteState MuteState 发送状态,详见 MuteState

onLocalStreamStats

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalStreamStats(
    IRTCEngineEventHandler.LocalStreamStats stats)

反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调。
本地用户发布音视频流成功后,每隔 2s 收到此回调。

传入参数

参数名 类型 说明
stats IRTCEngineEventHandler.LocalStreamStats 音视频流以及网络状况统计信息。参见 LocalStreamStats。

onRemoteStreamStats

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteStreamStats(
    IRTCEngineEventHandler.RemoteStreamStats stats)

通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况,每 2s 触发一次。 反映通话中本地设备接收订阅的远端音/视频流的统计信息以及网络状况的回调。每隔 2s 收到此回调。

传入参数

参数名 类型 说明
stats IRTCEngineEventHandler.RemoteStreamStats 音视频流以及网络状况统计信息。参见 RemoteStreamStats。

onFirstLocalAudioFrame

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onFirstLocalAudioFrame(
    StreamIndex streamIndex)

本地采集到第一帧音频帧时,收到该回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 音频流属性, 详见 StreamIndex

onFirstRemoteAudioFrame

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onFirstRemoteAudioFrame(
    RemoteStreamKey remoteStreamKey)

接收到来自远端某音频流的第一帧时,收到该回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端音频流信息, 详见 RemoteStreamKey

注意 用户刚收到房间内订阅的每一路音频流时,都会收到该回调。

onStreamRemove

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamRemove(
    RTCStream stream,
    IRTCEngineEventHandler.StreamRemoveReason reason)

房间内远端流移除回调。
房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。

传入参数

参数名 类型 说明
stream RTCStream 流的属性,参看 RTCStream。
reason IRTCEngineEventHandler.StreamRemoveReason 远端流移除的原因,参看 StreamRemoveReason。

onStreamAdd

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamAdd(
    RTCStream stream)

房间内新流发布回调。
房间内的远端用户发布新的音视频流时,本地用户会收到此回调通知。

传入参数

参数名 类型 说明
stream RTCStream 流的属性,详见 RTCStream 数据类型。

onRoomMessageReceived

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomMessageReceived(
    String uid,
    String message)

接收到房间内广播消息的回调。
房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message String 收到的消息内容

onRoomBinaryMessageReceived

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomBinaryMessageReceived(
    String uid,
    ByteBuffer message)

接收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者 ID
message ByteBuffer 收到的二进制消息内容

onUserMessageReceived

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMessageReceived(
    String uid,
    String message)

收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者的用户 ID 。
message String 收到的文本消息内容。

onUserBinaryMessageReceived

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserBinaryMessageReceived(
    String uid,
    ByteBuffer message)

收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。

传入参数

参数名 类型 说明
uid String 消息发送者的用户 ID 。
message ByteBuffer 收到的二进制消息内容。

onUserMessageSendResult

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMessageSendResult(
    long msgid,
    int error)

向房间内单个用户发送点对点文本或点对点二进制消息后,消息发送方会收到该消息发送结果回调。

传入参数

参数名 类型 说明
msgid long 本条消息的 ID。
error int 文本或二进制消息发送结果,详见 UserMessageSendResult

注意 调用 sendUserMessage 或 sendUserBinaryMessage 接口,才能收到此回调。

onRoomMessageSendResult

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomMessageSendResult(
    long msgid,
    int error)

向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。

传入参数

参数名 类型 说明
msgid long 本条消息的 ID。
error int 消息发送结果,详见 UserMessageSendResult

注意 调用 sendRoomMessage 或 sendRoomBinaryMessage 接口,才能收到此回调。

onLiveTranscodingResult

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLiveTranscodingResult(
    String url,
    int error)

合流转推错误回调。
调用 startLiveTranscoding 接口或直接在服务端启动合流转推功能后,你会通过此回调收到启动结果和推流过程中的错误。

传入参数

参数名 类型 说明
url String 推流地址的 URL。
error int 合流转推功能错误码,详见枚举类型 TranscodingError。

onFirstLocalVideoFrameCaptured

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onFirstLocalVideoFrameCaptured(
    StreamIndex streamIndex,
    VideoFrameInfo videoFrameInfo)

第一帧本地采集的视频/屏幕共享画面采集完成时,收到此回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
VideoFrameInfo **** 视频信息,参看 VideoFrameInfo

onLocalVideoSizeChanged

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalVideoSizeChanged(
    StreamIndex streamIndex,
    VideoFrameInfo frameInfo)

本地视频大小或旋转信息发生改变时,收到此回调。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onRemoteVideoSizeChanged

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteVideoSizeChanged(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo)

远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端流信息,参看 StreamIndex
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onFirstRemoteVideoFrameRendered

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onFirstRemoteVideoFrameRendered(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo)

第一帧远端视频流在视图上渲染成功后,收到此回调。

传入参数

参数名 类型 说明
remoteStreamKey RemoteStreamKey 远端流信息,参看 RemoteStreamKey
frameInfo VideoFrameInfo 视频帧信息,参看 VideoFrameInfo

onUserMuteVideo

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMuteVideo(
    String uid,
    MuteState muteState)

房间内用户调用 muteLocalVideo 暂停/恢复发送视频流时,房间内其他用户将收到此回调。

传入参数

参数名 类型 说明
uid String 暂停/恢复发送视频流的用户 ID。
muteState MuteState 暂停/恢复发送视频流的状态。参看 MuteState。

onUserStartVideoCapture

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserStartVideoCapture(
    String uid)

房间内的用户调用 startVideoCapture 开启视频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 开启视频采集的远端用户 ID

onUserStopVideoCapture

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserStopVideoCapture(
    String uid)

房间内的用户调用 stopVideoCapture 关闭视频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 关闭视频采集的远端用户 ID

onUserStartAudioCapture

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserStartAudioCapture(
    String uid)

房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 开启音频采集的远端用户 ID

onUserStopAudioCapture

public abstract void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserStopAudioCapture(
    String uid)

房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
uid String 关闭音频采集的远端用户 ID

onLocalAudioStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalAudioStateChanged(
    LocalAudioStreamState state,
    LocalAudioStreamError error)

本地音频流的状态发生改变时,该回调通知当前的本地音频流状态。

传入参数

参数名 类型 说明
state LocalAudioStreamState 本地音频设备的状态,详见 LocalAudioStreamState
error LocalAudioStreamError 本地音频流状态改变时的错误码,详见 LocalAudioStreamError

onRemoteAudioStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteAudioStateChanged(
    RemoteStreamKey key,
    RemoteAudioState state,
    RemoteAudioStateChangeReason reason)

用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。

传入参数

参数名 类型 说明
key RemoteStreamKey 远端流信息, 详见 RemoteStreamKey
state RemoteAudioState 远端音频流状态,详见 RemoteAudioState
reason RemoteAudioStateChangeReason 远端音频流状态改变的原因,详见 RemoteAudioStateChangeReason

onLocalVideoStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalVideoStateChanged(
    StreamIndex streamIndex,
    IRTCEngineEventHandler.LocalVideoStreamState state,
    IRTCEngineEventHandler.LocalVideoStreamError error)

本地视频流的状态发生改变时,收到该事件。

传入参数

参数名 类型 说明
streamIndex StreamIndex 流属性,参看 StreamIndex
state IRTCEngineEventHandler.LocalVideoStreamState 本地视频流状态,参看 LocalVideoStreamState
error IRTCEngineEventHandler.LocalVideoStreamError 本地视频状态改变时的错误码,参看 LocalVideoStreamError

onRemoteVideoStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteVideoStateChanged(
    RemoteStreamKey streamKey,
    IRTCEngineEventHandler.RemoteVideoState videoState,
    IRTCEngineEventHandler.RemoteVideoStateChangeReason videoStateReason)

远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。

传入参数

参数名 类型 说明
streamKey RemoteStreamKey 远端视频流信息,房间、用户 ID、流属性等,参看 RemoteStreamKey
videoState IRTCEngineEventHandler.RemoteVideoState 远端视频流状态,参看 RemoteVideoState
videoStateReason IRTCEngineEventHandler.RemoteVideoStateChangeReason 远端视频流状态改变原因,参看 RemoteVideoStateChangeReason

onSimulcastSubscribeFallback

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSimulcastSubscribeFallback(
    IRTCEngineEventHandler.RemoteStreamSwitch event)

因发布/订阅性能回退或退出回退状态,订阅的音视频流,发生流的切换时,收到该回调。

传入参数

参数名 类型 说明
event IRTCEngineEventHandler.RemoteStreamSwitch 流切换信息。详见 RemoteStreamSwitch。

注意 必须先通过 API 或控制台设置音视频流订阅回退功能时,你才能收到此回调。

onAudioFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAudioFrameSendStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFrameSendState state)

本地音频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 本地用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onVideoFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onVideoFrameSendStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFrameSendState state)

本地视频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 本地用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onScreenVideoFrameSendStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onScreenVideoFrameSendStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFrameSendState state)

屏幕共享流的视频首帧发送状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 本地用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

onAudioFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAudioFramePlayStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFramePlayState state)

音频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 远端用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

onVideoFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onVideoFramePlayStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFramePlayState state)

视频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 远端用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

onScreenVideoFramePlayStateChanged

public void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onScreenVideoFramePlayStateChanged(
    IRTCEngineEventHandler.RtcUser user,
    IRTCEngineEventHandler.FirstFramePlayState state)

屏幕共享流视频首帧播放状态发生改变时,收到此回调

传入参数

参数名 类型 说明
user IRTCEngineEventHandler.RtcUser 远端用户信息,详见 RtcUser
state IRTCEngineEventHandler.FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState