IRTCEngineEventHandler

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

音视频引擎事件回调接口

成员函数

返回 名称
void onJoinRoomResult
void onWarning
void onError
void onResponse
void onLeaveRoom
void onRoomStats
void onSysStats
void onAudioVolumeIndication
void onNetworkTypeChanged
void onUserJoined
void onUserLeave
void onMuteAllRemoteVideo
void onUserMuteAudio
void onUserMuteVideo
void onUserStartVideoCapture
void onUserStopVideoCapture
void onUserEnableLocalAudio
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 onActiveSpeaker
void onAudioEffectFinished
void onLogReport
void onRoomMessageReceived
void onRoomBinaryMessageReceived
void onLiveTranscodingResult
void onUserMessageReceived
void onUserBinaryMessageReceived
void onUserMessageSendResult
void onRoomMessageSendResult
void onPerformanceAlarms
void onAudioFrameSendStateChanged
void onVideoFrameSendStateChanged
void onScreenVideoFrameSendStateChanged
void onAudioFramePlayStateChanged
void onVideoFramePlayStateChanged
void onScreenVideoFramePlayStateChanged
void onMirrorStateChanged
void onMediaDeviceStateChanged
void onHttpProxyState
void onHttpsProxyState
void onSocks5ProxyState

函数说明

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 用户加入房间回调的状态码,参看 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上报的警告信息App可以忽略,SDK会自动恢复。

onError

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

当 SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。

传入参数

参数名 类型 说明
err int 错误代码,参看 ErrorCode

onResponse

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onResponse(
    String res)

API 响应回调。

传入参数

参数名 类型 说明
res String 响应内容

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.远端主播角色用户调用 joinRoom 方法加入房间时,房间内其他用户将收到该事件。
2.远端主播角色用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.远端静默观众角色用户调用 setUserRole 方法将角色切换至主播时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的主播角色用户的进房回调通知。

传入参数

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

onUserLeave

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

远端用户离开房间回调。
发生以下情形时,房间内其他用户会收到此事件:
1.远端主播角色用户调用 LeaveRoomleaveRoom 方法离开房间时。
2.远端主播角色用户调用 setUserRole 方法将角色切换至静默观众。
3.远端主播角色用户断网,且一直未恢复。

传入参数

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

onMuteAllRemoteVideo

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

房间内用户暂停/恢复接收所有视频流时,房间内其他用户收到此回调。参看 muteAllRemoteVideo。

传入参数

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

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

onUserEnableLocalAudio

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.onUserEnableLocalAudio(
    String uid,
    boolean enabled)

远端用户已开启/关闭音频设备采集时,房间内其他用户会收到这个回调。

传入参数

参数名 类型 说明
uid String 远端用户ID
enabled boolean 该用户是否开启了音频设备采集
• true:该用户开启了音频设备采集
• false:该用户关闭了音频设备采集
• 该接口已废弃,请使用 onUserStartAudioCapture 以及 onUserStopAudioCapture

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。

注意

onLocalStreamStats

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

反映通话中本地设备发送音/视频流的统计信息以及网络状况的回调,每 2s 触发一次。

传入参数

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

onRemoteStreamStats

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

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

传入参数

参数名 类型 说明
stats RemoteStreamStats 当前 RtcEngine 统计数据,详见 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 新的音频设备,详见 AudioPlaybackDeviceCAudioPlaybackDevice

注意 音频设备设置与音频路由策略,详见 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

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

onActiveSpeaker

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

监测到活跃用户回调。

传入参数

参数名 类型 说明
uid String 当前时间段声音最大的用户的uid。如果返回的uid为0,则默认为本地用户

注意 如果用户开启了 enableAudioVolumeIndication功能,则当音量检测模块监测到频道内有新的活跃用户说话时,会通过本回调返回该用户的 uid。

onAudioEffectFinished

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

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

传入参数

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

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

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)

接收到房间内广播消息的回调。

传入参数

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

注意 1.同一房间内其他用户调用 sendRoomMessage 发送广播消息时会收到该回调。

onRoomBinaryMessageReceived

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

接收到房间内广播二进制消息的回调。

传入参数

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

注意 1.同一房间内其他用户调用 sendRoomBinaryMessage 发送广播消息时会收到该回调。

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)

收到来自房间中其他用户发来的文本消息时(P2P),会收到此回调。

传入参数

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

注意

onUserBinaryMessageReceived

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

收到来自房间中其他用户发来的二进制消息时(P2P),会收到此回调。

传入参数

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

注意

onUserMessageSendResult

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

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

传入参数

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

注意

onRoomMessageSendResult

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

当调用 sendRoomMessage 函数发送消息后,回调此条消息的发送结果(反馈)。

传入参数

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

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(
    int device_type,
    int device_state,
    int device_error)

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

传入参数

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

注意

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 代理连接状态

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 时间信息

RTCNativeLibraryLoader

public interface com.ss.bytertc.engine.loader.RTCNativeLibraryLoader

用户自定义动态库加载器实现

成员函数

返回 名称
boolean load

函数说明

load

boolean com.ss.bytertc.engine.loader.RTCNativeLibraryLoader.load(
    String libraryName)

SDK在需要加载动态库时通过该方法回调

传入参数

参数名 类型 说明
libraryName String 要加载的动态库名称

IVideoSink

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

视频数据回调接口。

成员函数

返回 名称
boolean onInitialize
boolean onStart
void onStop
void onDispose
EGLContext getEGLContextHandle
int getBufferType
int getPixelFormat

函数说明

onInitialize

boolean com.ss.bytertc.engine.mediaio.IVideoSink.onInitialize()

初始化渲染器。

返回值 true:Media Engine 会认为自定义的渲染器已经初始化好 false:Media Engine 会认为自定义的渲染器初始化失败,不继续往下运行

注意 MediaEngine初始化渲染器的时候调用这个方法。开发者可以在这个方法中做渲染器的初始化工作。如果是耗时操作,也可以提前初始化好,然后在这个方法中告知 Media Engine 自定义渲染器已初始化好。 该方法需要开发者自己输入 true 或 false,以告知 Media Engine 自定义渲染器的状态。

onStart

boolean com.ss.bytertc.engine.mediaio.IVideoSink.onStart()

启动渲染器。

返回值 true:MediaEngine继续进行渲染 false:MediaEngine认为出错而停止渲染器的功能

注意 MediaEngine 在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。该方法需要开发者输入 true 或 false,Media Engine 会根据返回值做对应的动作。

onStop

void com.ss.bytertc.engine.mediaio.IVideoSink.onStop()

停止渲染器。

注意 MediaEngine在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。

onDispose

void com.ss.bytertc.engine.mediaio.IVideoSink.onDispose()

释放渲染器。

注意 MediaEngine通知开发者渲染器即将被废弃。在onDispose()返回之后,开发者就可以释放掉资源了。

getEGLContextHandle

EGLContext com.ss.bytertc.engine.mediaio.IVideoSink.getEGLContextHandle()

获取 EGLContextHandle。

返回值 返回创建好的EGLContext

注意 Media Engine 在需要创建 EGLContext 的时候,首先会从自定义的渲染器中查询,是都已经创建了 EGLContext。如果自定义渲染器中已经创建了并管理 EGL 环境,这个方法就会返回 EGLContext 的 Native Handle 并共享给 Media Engine。 如果自定义渲染器中没有创建 EGLContext,会返回 0。

getBufferType

@RTCVideoFrame.BufferType int com.ss.bytertc.engine.mediaio.IVideoSink.getBufferType()

获取Buffer类型。

返回值 Buffer类型

注意 开发者在返回值中指定一种 Buffer 类型并告知 Media Engine。

getPixelFormat

@RTCVideoFrame.PixelFormat int com.ss.bytertc.engine.mediaio.IVideoSink.getPixelFormat()

获取像素格式。

返回值 PixelFormat像素格式

注意 用于自定义渲染器的时候,还需要指定视频数据的像素格式。当自定义渲染器希望得到 ByteArray 或者 ByteBuffer 类型的视频数据时,可以选择 YUV(YUV420P格式; 当自定义渲染器希望直接得到 Texture 时,也可以选择 Texture。

IVideoFrameConsumer

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

视频帧回调接口

成员函数

返回 名称
void consumeVideoFrame

函数说明

consumeVideoFrame

void com.ss.bytertc.engine.mediaio.IVideoFrameConsumer.consumeVideoFrame(
    RTCVideoFrame frame)

视频帧回调

传入参数

参数名 类型 说明
frame RTCVideoFrame 视频帧结构类,详见RTCVideoFrame

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

注意