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

房间事件回调接口

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonLeaveRoom
voidonRoomStateChanged
voidonStreamStateChanged
voidonAVSyncStateChange
voidonRoomStats
voidonUserJoined
voidonUserLeave
voidonTokenWillExpire
voidonPublishPrivilegeTokenWillExpire
voidonSubscribePrivilegeTokenWillExpire
voidonUserPublishStream
voidonUserUnpublishStream
voidonUserPublishScreen
voidonUserUnpublishScreen
voidonLocalStreamStats
voidonRemoteStreamStats
voidonStreamSubscribed
voidonRoomMessageReceived
voidonRoomBinaryMessageReceived
voidonUserMessageReceived
voidonUserBinaryMessageReceived
voidonUserMessageSendResult
voidonRoomMessageSendResult
voidonVideoStreamBanned
voidonAudioStreamBanned
voidonForwardStreamStateChanged
voidonForwardStreamEvent
voidonNetworkQuality
voidonSetRoomExtraInfoResult
voidonRoomExtraInfoUpdate
voidonUserVisibilityChanged
voidonSubtitleStateChanged
voidonSubtitleMessageReceived
void[deprecated] onRoomWarning
void[deprecated] onRoomError
void[deprecated] onStreamRemove
void[deprecated] onStreamAdd
函数说明

onLeaveRoom
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLeaveRoom(RTCRoomStats stats)
java

离开房间成功回调。

用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。

传入参数

参数名类型说明
statsRTCRoomStats保留参数,目前为空。

注意

onRoomStateChanged
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomStateChanged(
    String roomId,
    String uid,
    int state,
    String extraInfo
)
java

房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。

传入参数

参数名类型说明
roomIdString房间 ID。
uidString用户 ID。
stateint房间状态码。
  • 0: 加入房间成功。
  • !0: 加入房间失败、异常退房、发生房间相关的警告或错误。具体原因参看 ErrorCode 及 WarningCode。
extraInfoString额外信息,如 {"elapsed":1187,"join_type":0}。
join_type 表示加入房间的类型,0为首次进房,1为重连进房。
elapsed 表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。

onStreamStateChanged
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamStateChanged(
    String roomId,
    String uid,
    int state,
    String extraInfo
)
java

流状态改变回调,发生流相关的警告或错误时会收到此回调。

传入参数

参数名类型说明
roomIdString房间 ID。
uidString用户 ID。
stateint流状态码,参看 ErrorCode 及 WarningCode。
extraInfoString附加信息,目前为空。

onAVSyncStateChange
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAVSyncStateChange(AVSyncState state)
java

发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。

传入参数

参数名类型说明
stateAVSyncState音视频同步状态,参看 AVSyncState。

onRoomStats
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomStats(RTCRoomStats stats)
java

房间内通话统计信息回调。

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

传入参数

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

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

远端可见用户加入房间,或房内不可见用户切换为可见的回调。

1.远端用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。

2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。

3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。

4.新进房用户也会收到进房前已在房内的可见用户的进房回调通知。

传入参数

参数名类型说明
userInfoUserInfo用户信息。参看 UserInfo。
elapsedint保留字段,无意义。

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

远端用户离开房间,或切至不可见时,房间内其他用户会收到此事件

传入参数

参数名类型说明
uidString离开房间,或切至不可见的的远端用户 ID。
reasonint用户离开房间的原因:
  • 0: 远端用户调用 leaveRoom 主动退出房间。
  • 1: 远端用户因 Token 过期或网络原因等掉线。详细信息请参看连接状态提示
  • 2: 远端用户调用 setUserVisibility 切换至不可见状态。
  • 3: 服务端调用 OpenAPI 将该远端用户踢出房间。

onTokenWillExpire
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onTokenWillExpire()
java

Token 进房权限过期前 30 秒将触发该回调。

收到该回调后,你需调用 updateToken 更新 Token 进房权限。

注意

若 Token 进房权限过期且未及时更新:

onPublishPrivilegeTokenWillExpire
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onPublishPrivilegeTokenWillExpire()
java

Token 发布权限过期前 30 秒将触发该回调。

收到该回调后,你需调用 updateToken 更新 Token 发布权限。

注意

若收到该回调后未及时更新 Token,Token 发布权限过期后:

onSubscribePrivilegeTokenWillExpire
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubscribePrivilegeTokenWillExpire()
java

Token 订阅权限过期前 30 秒将触发该回调。

收到该回调后,你需调用 updateToken 更新 Token 订阅权限有效期。

注意

若收到该回调后未及时更新 Token,Token 订阅权限过期后,尝试新订阅流会失败,已订阅的流会取消订阅,并且会收到 onStreamStateChanged 回调,提示错误码为 -1003 没有订阅权限。

onUserPublishStream
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserPublishStream(
    String uid,
    MediaStreamType type
)
java

房间内新增远端摄像头/麦克风采集的媒体流的回调。

传入参数

参数名类型说明
uidString远端流发布用户的用户 ID。
typeMediaStreamType远端媒体流的类型,参看 MediaStreamType。

注意

当房间内的远端用户调用 publishStream 成功发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。

onUserUnpublishStream
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserUnpublishStream(
    String uid,
    MediaStreamType type,
    StreamRemoveReason reason
)
java

房间内远端摄像头/麦克风采集的媒体流移除的回调。

传入参数

参数名类型说明
uidString移除的远端流发布用户的用户 ID。
typeMediaStreamType移除的远端流类型,参看 MediaStreamType。
reasonStreamRemoveReason远端流移除的原因,参看 StreamRemoveReason。

注意

收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。

onUserPublishScreen
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserPublishScreen(
    String uid,
    MediaStreamType type
)
java

房间内新增远端屏幕共享音视频流的回调。

传入参数

参数名类型说明
uidString远端流发布用户的用户 ID。
typeMediaStreamType远端媒体流的类型,参看 MediaStreamType。

注意

当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。

onUserUnpublishScreen
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserUnpublishScreen(
    String uid,
    MediaStreamType type,
    StreamRemoveReason reason
)
java

房间内远端屏幕共享音视频流移除的回调。

传入参数

参数名类型说明
uidString移除的远端流发布用户的用户 ID。
typeMediaStreamType移除的远端流类型,参看 MediaStreamType。
reasonStreamRemoveReason远端流移除的原因,参看 StreamRemoveReason。

注意

收到该回调通知后,你可以自行选择是否调用 unsubscribeScreen 取消订阅此流。

onLocalStreamStats
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalStreamStats(LocalStreamStats stats)
java

本地流数据统计以及网络质量回调。

本地用户发布流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的流在此次统计周期内的质量统计信息。

统计信息通过 LocalStreamStats 类型的回调参数传递给用户,其中包括发送音视频比特率、发送帧率、编码帧率,网络质量等。

传入参数

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

onRemoteStreamStats
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteStreamStats(RemoteStreamStats stats)
java

本地订阅的远端音/视频流数据统计以及网络质量回调。

本地用户订阅流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的流在此次统计周期内的质量统计信息,包括:发送音视频比特率、发送帧率、编码帧率,网络质量等。

传入参数

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

onStreamSubscribed
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamSubscribed(
    int stateCode,
    String userId,
    SubscribeConfig info
)
java

关于订阅媒体流状态改变的回调

传入参数

参数名类型说明
stateCodeint订阅媒体流状态,参看 SubscribeState
userIdString流发布用户的用户 ID
infoSubscribeConfig流的属性,参看 SubscribeConfig

注意

本地用户收到该回调的时机包括:

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

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

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

传入参数

参数名类型说明
uidString消息发送者 ID
messageString收到的消息内容

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

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

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

传入参数

参数名类型说明
uidString消息发送者 ID
messageByteBuffer收到的二进制消息内容

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

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

传入参数

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

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

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

传入参数

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

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

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

传入参数

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

注意

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

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

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

传入参数

参数名类型说明
msgidlong本条消息的 ID。
errorint消息发送结果,详见 RoomMessageSendResult

onVideoStreamBanned
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onVideoStreamBanned(
    String uid,
    boolean banned
)
java

通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。

传入参数

参数名类型说明
uidString被禁用/解禁的视频流用户 ID
bannedboolean视频流发送状态
  • true: 视频流发送被禁用
  • false: 视频流发送被解禁

注意

onAudioStreamBanned
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAudioStreamBanned(
    String uid,
    boolean banned
)
java

通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。

传入参数

参数名类型说明
uidString被禁用/解禁的音频流用户 ID
bannedboolean音频流发送状态
  • true: 音频流发送被禁用
  • false: 音频流发送被解禁

注意

onForwardStreamStateChanged
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onForwardStreamStateChanged(ForwardStreamStateInfo[] stateInfos)
java

跨房间媒体流转发状态和错误回调

传入参数

参数名类型说明
stateInfosForwardStreamStateInfo[]跨房间媒体流转发目标房间信息数组,详见 ForwardStreamStateInfo

onForwardStreamEvent
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onForwardStreamEvent(ForwardStreamEventInfo[] eventInfos)
java

跨房间媒体流转发事件回调

传入参数

参数名类型说明
eventInfosForwardStreamEventInfo[]跨房间媒体流转发目标房间事件数组,详见 ForwardStreamEventInfo

onNetworkQuality
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onNetworkQuality(
    NetworkQualityStats localQuality,
    NetworkQualityStats[] remoteQualities
)
java

加入房间并发布或订阅流后, 以每 2 秒一次的频率,报告本地用户和已订阅的远端用户的上下行网络质量信息。

传入参数

参数名类型说明
localQualityNetworkQualityStats本地网络质量,详见 NetworkQualityStats。
remoteQualitiesNetworkQualityStats[]已订阅用户的网络质量,详见 NetworkQualityStats。

注意

更多通话中的监测接口,详见通话中质量监测。

onSetRoomExtraInfoResult
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSetRoomExtraInfoResult(
    long taskId,
    SetRoomExtraInfoResult error
)
java

Available since 3.52

调用 setRoomExtraInfo 设置房间附加信息结果的回调。

传入参数

参数名类型说明
taskIdlong调用 setRoomExtraInfo 的任务编号。
errorSetRoomExtraInfoResult设置房间附加信息的结果,详见 SetRoomExtraInfoResult

onRoomExtraInfoUpdate
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomExtraInfoUpdate(
    String key,
    String value,
    String lastUpdateUserId,
    long lastUpdateTimeMs
)
java

Available since 3.52

接收同一房间内,其他用户调用 setRoomExtraInfo 设置的房间附加信息的回调。

传入参数

参数名类型说明
keyString房间附加信息的键值
valueString房间附加信息的内容
lastUpdateUserIdString最后更新本条信息的用户 ID。
lastUpdateTimeMslong最后更新本条信息的 Unix 时间,单位:毫秒。

注意

新进房的用户会收到进房前房间内已有的全部附加信息通知。

onUserVisibilityChanged
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserVisibilityChanged(
    boolean currentUserVisibility,
    UserVisibilityChangeError errorCode
)
java

Available since 3.54

用户调用 setUserVisibility 设置用户可见性的回调。

传入参数

参数名类型说明
currentUserVisibilityboolean当前用户的可见性。
  • true: 可见,用户可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
  • false: 不可见,用户不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
errorCodeUserVisibilityChangeError设置用户可见性错误码,参看 UserVisibilityChangeError。

onSubtitleStateChanged
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubtitleStateChanged(
    SubtitleState state,
    SubtitleErrorCode errorCode,
    String errorMessage
)
java

字幕状态发生改变回调。

当用户调用 startSubtitle 和 stopSubtitle 使字幕状态发生改变或字幕任务出现错误时,触发该回调。

传入参数

参数名类型说明
stateSubtitleState字幕状态。参看 SubtitleState。
errorCodeSubtitleErrorCode字幕任务错误码。参看 SubtitleErrorCode。
errorMessageString与第三方服务有关的错误信息。

onSubtitleMessageReceived
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubtitleMessageReceived(SubtitleMessage[] subtitles)
java

字幕相关内容回调。

当用户成功调用 startSubtitle 后会收到此回调,通知字幕的相关信息。

传入参数

参数名类型说明
subtitlesSubtitleMessage[]字幕消息内容。参看 SubtitleMessage。

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

Deprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.

发生警告回调。

传入参数

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

注意

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

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

Deprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.

发生错误回调。

传入参数

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

注意

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

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

Deprecated since 3.36 and will be deleted in 3.51, use onUserUnpublishStream and onUserUnpublishScreen instead.

房间内远端流移除回调。

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

传入参数

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

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

Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream and onUserPublishScreen instead.

房间内新流发布回调。

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

传入参数

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

IKTVPlayerEventHandler
public abstract class com.ss.bytertc.ktv.IKTVPlayerEventHandler
java

KTV 播放器回调接口。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
abstract voidonPlayProgress
abstract voidonPlayStateChanged
函数说明

onPlayProgress
abstract void com.ss.bytertc.ktv.IKTVPlayerEventHandler.onPlayProgress(
    @NonNull String musicId,
    long progress
)
java

音乐播放进度回调。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
progresslong音乐播放进度,单位为毫秒。

onPlayStateChanged
abstract void com.ss.bytertc.ktv.IKTVPlayerEventHandler.onPlayStateChanged(
    @NonNull String musicId,
    @NonNull PlayState playState,
    KTVPlayerErrorCode errorCode
)
java

音乐播放状态改变回调。

传入参数

参数名类型说明
musicId@NonNull String音乐 ID。
playState@NonNull PlayState音乐播放状态,参看 PlayState。
errorCodeKTVPlayerErrorCode错误码,参看 KTVPlayerErrorCode。

注意

此回调被触发的时机汇总如下:

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

IAudioEffectPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。

成员函数
返回名称
voidonAudioEffectPlayerStateChanged
函数说明

onAudioEffectPlayerStateChanged
void com.ss.bytertc.engine.IAudioEffectPlayerEventHandler.onAudioEffectPlayerStateChanged(
    int effectId,
    PlayerState state,
    PlayerError error
)
java

播放状态改变时回调。

传入参数

参数名类型说明
effectIdintIAudioEffectPlayer 的 ID。通过 getAudioEffectPlayer 设置。
statePlayerState混音状态。参考 PlayerState。
errorPlayerError错误码。参考 PlayerError。

IPushSingleStreamToCDNObserver
public interface com.ss.bytertc.engine.live.IPushSingleStreamToCDNObserver
java

单流转推直播观察者。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonStreamPushEvent
函数说明

onStreamPushEvent
void com.ss.bytertc.engine.live.IPushSingleStreamToCDNObserver.onStreamPushEvent(
    ByteRTCStreamSinglePushEvent eventType,
    String taskId,
    int error
)
java

单流转推直播状态回调

传入参数

参数名类型说明
eventTypeByteRTCStreamSinglePushEvent任务状态, 参看 ByteRTCStreamSinglePushEvent
taskIdString任务 ID
errorint错误码,参看 ByteRTCTranscoderErrorCode

IRemoteEncodedVideoFrameObserver
public abstract class com.ss.bytertc.engine.mediaio.IRemoteEncodedVideoFrameObserver
java

远端编码后视频数据监测器

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
abstract voidonRemoteEncodedVideoFrame
函数说明

onRemoteEncodedVideoFrame
abstract void com.ss.bytertc.engine.mediaio.IRemoteEncodedVideoFrameObserver.onRemoteEncodedVideoFrame(
    RemoteStreamKey streamKey,
    RTCEncodedVideoFrame encodedVideoFrame
)
java

调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调

传入参数

参数名类型说明
streamKeyRemoteStreamKey收到的远端流信息,参看 RemoteStreamKey
encodedVideoFrameRTCEncodedVideoFrame收到的远端视频帧信息,参看 RTCEncodedVideoFrame

注意

encodedVideoFrame 只在回调函数作用域内有效,不要存储该参数并在其它函数内访问该参数的内存数据

IKTVManagerEventHandler
public abstract class com.ss.bytertc.ktv.IKTVManagerEventHandler
java

KTV 事件回调接口。

成员函数
返回名称
abstract voidonMusicListResult
abstract voidonSearchMusicResult
abstract voidonHotMusicResult
abstract voidonMusicDetailResult
abstract voidonDownloadSuccess
abstract voidonDownloadFailed
abstract voidonDownloadMusicProgress
abstract voidonClearCacheResult
函数说明

onMusicListResult
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onMusicListResult(
    MusicInfo[] musicInfos,
    int totalSize,
    KTVErrorCode errorCode
)
java

歌曲列表回调。

传入参数

参数名类型说明
musicInfosMusicInfo[]歌曲数据数组,参看 MusicInfo。
totalSizeint数据条目总数。
errorCodeKTVErrorCode错误码,成功时返回 0,其余值参看 KTVErrorCode。

onSearchMusicResult
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onSearchMusicResult(
    MusicInfo[] musicInfos,
    int totalSize,
    KTVErrorCode errorCode
)
java

搜索歌曲结果回调。

传入参数

参数名类型说明
musicInfosMusicInfo[]歌曲数据数组,参看 MusicInfo。
totalSizeint数据条目总数。
errorCodeKTVErrorCode错误码,成功时返回 0,其余值参看 KTVErrorCode。

onHotMusicResult
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onHotMusicResult(
    HotMusicInfo[] hotMusics,
    KTVErrorCode errorCode
)
java

热榜歌曲结果回调。

传入参数

参数名类型说明
hotMusicsHotMusicInfo[]热榜歌曲数据数组,参看 HotMusicInfo。
errorCodeKTVErrorCode错误码,成功时返回 0,其余值参看 KTVErrorCode。

onMusicDetailResult
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onMusicDetailResult(
    MusicInfo musicInfo,
    KTVErrorCode errorCode
)
java

歌曲详细信息回调。

传入参数

参数名类型说明
musicInfoMusicInfo歌曲数据,参看 MusicInfo。
errorCodeKTVErrorCode错误码,成功时返回 0,其余值参看 KTVErrorCode。

onDownloadSuccess
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadSuccess(
    int downloadId,
    DownloadResult result
)
java

下载成功回调。

传入参数

参数名类型说明
downloadIdint下载任务 ID。
resultDownloadResult下载信息,参看 DownloadResult。

onDownloadFailed
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadFailed(
    int downloadId,
    KTVErrorCode errorCode
)
java

下载失败回调。

传入参数

参数名类型说明
downloadIdint下载任务 ID。
errorCodeKTVErrorCode错误码,成功时返回 0,其余值参看 KTVErrorCode。

onDownloadMusicProgress
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadMusicProgress(
    int downloadId,
    int downloadProgress
)
java

歌曲文件下载进度回调。

传入参数

参数名类型说明
downloadIdint下载任务 ID。
downloadProgressint下载进度百分比,取值范围 [0,100]。

onClearCacheResult
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onClearCacheResult(KTVErrorCode errorCode)
java

清理文件缓存结果回调。

传入参数

参数名类型说明
errorCodeKTVErrorCode错误码,非 0 为失败,参看 KTVErrorCode。

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

K 歌评分事件回调类。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonCurrentScoringInfo
函数说明

onCurrentScoringInfo
void com.ss.bytertc.engine.ISingScoringEventHandler.onCurrentScoringInfo(SingScoringRealtimeInfo info)
java

实时评分信息回调。调用 startSingScoring 后,会收到该回调。

传入参数

参数名类型说明
infoSingScoringRealtimeInfo实时评分信息。详见 SingScoringRealtimeInfo。

IFaceDetectionObserver
public interface com.ss.bytertc.engine.video.IFaceDetectionObserver
java

人脸检测结果回调观察者

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonFaceDetectResult
函数说明

onFaceDetectResult
void com.ss.bytertc.engine.video.IFaceDetectionObserver.onFaceDetectResult(FaceDetectionResult result)
java

特效 SDK 进行人脸检测结果的回调。

调用 enableFaceDetection 注册了 IFaceDetectionObserver,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。

传入参数

参数名类型说明
resultFaceDetectionResult人脸检测结果, 参看 FaceDetectionResult。

IMixedStreamObserver
public interface com.ss.bytertc.engine.live.IMixedStreamObserver
java

转推直播观察者。

成员函数
返回名称
booleanisSupportClientPushStream
voidonMixingEvent
voidonMixingAudioFrame
voidonMixingVideoFrame
voidonMixingDataFrame
函数说明

isSupportClientPushStream
boolean com.ss.bytertc.engine.live.IMixedStreamObserver.isSupportClientPushStream()
java

是否具有推流能力。

注意

onMixingEvent
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingEvent(
    ByteRTCStreamMixingEvent eventType,
    String taskId,
    ByteRTCTranscoderErrorCode error,
    MixedStreamType mixType
)
java

转推直播状态回调

传入参数

参数名类型说明
eventTypeByteRTCStreamMixingEvent转推直播任务状态, 参看 ByteRTCStreamMixingEvent
taskIdString转推直播任务 ID
errorByteRTCTranscoderErrorCode转推直播错误码,参看 ByteRTCTranscoderErrorCode
mixTypeMixedStreamType转推直播类型,参看 MixedStreamType

onMixingAudioFrame
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingAudioFrame(
    String taskId,
    byte[] audioFrame,
    int frameNum,
    long timeStampMs
)
java

端云一体合流音频 PCM 回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
audioFramebyte[]PCM 编码的合流音频数据帧
frameNumintPCM 编码的音频数据帧数
timeStampMslong时间戳,单位毫秒

注意

收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。

onMixingVideoFrame
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingVideoFrame(
    String taskId,
    VideoFrame videoFrame
)
java

端云一体合流视频 YUV 回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
videoFrameVideoFrameYUV 合流视频数据帧,参看 VideoFrame

注意

onMixingDataFrame
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingDataFrame(
    String taskId,
    byte[] dataFrame,
    long time
)
java

端云一体合流视频 SEI 数据回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
dataFramebyte[]SEI 数据
timelong时间信息

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

本地音频文件混音的音频帧观察者。

成员函数
返回名称
voidonFrame
函数说明

onFrame
void com.ss.bytertc.engine.IMediaPlayerAudioFrameObserver.onFrame(
    int playerId,
    IAudioFrame frame
)
java

当本地音频文件混音时,回调播放的音频帧。

传入参数

参数名类型说明
playerIdint-
frameIAudioFrame参看 IAudioFrame。

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

本地音频文件混音的音频帧观察者。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonAudioFileFrame
函数说明

onAudioFileFrame
void com.ss.bytertc.engine.IAudioFileFrameObserver.onAudioFileFrame(
    int mixID,
    IAudioFrame audioFrame
)
java

当本地音频文件混音时,回调播放的音频帧。

传入参数

参数名类型说明
mixIDint混音 ID。
audioFrameIAudioFrame参看 IAudioFrame。

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

转推直播观察者。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
booleanisSupportClientPushStream
voidonStreamMixingEvent
voidonMixingAudioFrame
voidonMixingVideoFrame
voidonMixingDataFrame
函数说明

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

是否具有推流能力。

注意

如果需要开启端云一体转推直播功能,你必须确保你的 App 包含 librtmp,具有推流能力。此时,设置该回调为 true。

onStreamMixingEvent
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onStreamMixingEvent(
    ByteRTCStreamMixingEvent eventType,
    String taskId,
    ByteRTCTranscoderErrorCode error,
    ByteRTCStreamMixingType mixType
)
java

转推直播状态回调

传入参数

参数名类型说明
eventTypeByteRTCStreamMixingEvent转推直播任务状态, 参看 ByteRTCStreamMixingEvent
taskIdString转推直播任务 ID
errorByteRTCTranscoderErrorCode转推直播错误码,参看 ByteRTCTranscoderErrorCode
mixTypeByteRTCStreamMixingType转推直播类型,参看 ByteRTCStreamMixingType

onMixingAudioFrame
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingAudioFrame(
    String taskId,
    byte[] audioFrame,
    int frameNum,
    long timeStampMs
)
java

端云一体合流音频 PCM 回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
audioFramebyte[]PCM 编码的合流音频数据帧
frameNumintPCM 编码的音频数据帧数
timeStampMslong时间戳,单位毫秒

注意

收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。

onMixingVideoFrame
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingVideoFrame(
    String taskId,
    VideoFrame videoFrame
)
java

端云一体合流视频 YUV 回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
videoFrameVideoFrameYUV 合流视频数据帧,参看 VideoFrame

注意

onMixingDataFrame
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingDataFrame(
    String taskId,
    byte[] dataFrame,
    long time
)
java

端云一体合流视频 SEI 数据回调

传入参数

参数名类型说明
taskIdString转推直播任务 ID
dataFramebyte[]SEI 数据
timelong时间信息

IRTCASREngineEventHandler
public interface com.ss.bytertc.engine.handler.IRTCASREngineEventHandler
java

语音识别服务使用状态回调

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonSuccess
voidonMessage
voidonError
函数说明

onSuccess
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onSuccess()
java

语音识别服务开启成功回调

onMessage
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onMessage(String message)
java

语音转文字成功后回调,该回调返回识别后的全量消息。

传入参数

参数名类型说明
messageString识别完成后得到的文字消息

注意

若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。

onError
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onError(
    int errorCode,
    String errorMessage
)
java

当语音识别服务内部发生错误事件时触发该回调。

传入参数

参数名类型说明
errorCodeint错误码
errorMessageString错误原因说明。

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

本地视频帧监测器

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonLocalEncodedVideoFrame
函数说明

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

调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。

传入参数

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

注意

encodedVideoFrame 只在回调函数作用域内有效,不要存储该参数并在其它函数内访问该参数的内存数据

IExternalVideoEncoderEventHandler
public abstract class com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler
java

自定义编码帧回调类

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
abstract voidonStart
abstract voidonStop
abstract voidonRateUpdate
abstract voidonRequestKeyFrame
abstract voidonActiveVideoLayer
函数说明

onStart
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onStart(StreamIndex index)
java

提示自定义编码帧可以开始推送的回调。

收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧

传入参数

参数名类型说明
indexStreamIndex可以推送的编码流的属性,参看 StreamIndex

onStop
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onStop(StreamIndex index)
java

当收到该回调时,你需停止向 SDK 推送自定义编码视频帧

传入参数

参数名类型说明
indexStreamIndex需停止推送的编码流的属性,参看 StreamIndex

onRateUpdate
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onRateUpdate(
    StreamIndex streamIndex,
    int videoIndex,
    int fps,
    int bitrateKbps
)
java

当自定义编码流的帧率或码率发生变化时,触发该回调

传入参数

参数名类型说明
streamIndexStreamIndex发生变化的编码流的属性,参看 StreamIndex
videoIndexint对应编码流的下标
fpsint变化后的帧率,单位:fps
bitrateKbpsint变化后的码率,单位:kbps

onRequestKeyFrame
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onRequestKeyFrame(
    StreamIndex streamIndex,
    int videoIndex
)
java

提示流发布端需重新生成关键帧的回调

传入参数

参数名类型说明
streamIndexStreamIndex远端编码流的属性,参看 StreamIndex
videoIndexint对应编码流的下标

onActiveVideoLayer
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onActiveVideoLayer(
    StreamIndex streamIndex,
    int videoIndex,
    boolean active
)
java

Available since 3.56

作为自定义编码视频流的发送端,你会在视频流可发送状态发生变化时,收到此回调。

你可以根据此回调的提示,仅对可发送的视频流进行编码,以降低本端视频编码性能消耗。此回调会根据多个因素综合判断触发,包括:本端设备性能和本端网络性能,以及按需订阅场景下,远端用户是否订阅。

传入参数

参数名类型说明
streamIndexStreamIndex远端编码流的属性,参看 StreamIndex
videoIndexint对应编码流的下标
activeboolean该路流可发送状态

注意

要收到此回调,必须调用 setVideoSourceType 设置视频源是自定义编码,且通过 setExternalVideoEncoderEventHandler 设置了回调句柄。

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

IMediaPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。

成员函数
返回名称
voidonMediaPlayerStateChanged
voidonMediaPlayerPlayingProgress
函数说明

onMediaPlayerStateChanged
void com.ss.bytertc.engine.IMediaPlayerEventHandler.onMediaPlayerStateChanged(
    int playerId,
    PlayerState state,
    PlayerError error
)
java

播放状态改变时回调。

传入参数

参数名类型说明
playerIdintIMediaPlayer 的 ID。通过 getMediaPlayer 设置。
statePlayerState混音状态。参考 PlayerState。
errorPlayerError错误码。参考 PlayerError。

onMediaPlayerPlayingProgress
void com.ss.bytertc.engine.IMediaPlayerEventHandler.onMediaPlayerPlayingProgress(
    int playerId,
    long progress
)
java

播放进度周期性回调。回调周期通过 setProgressInterval 设置。

传入参数

参数名类型说明
playerIdintIMediaPlayer 的 ID。通过 getMediaPlayer 设置。
progresslong进度。单位 ms。

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

音频数据回调观察者

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

本接口类中的单个回调的数据量为 20 ms 的数据量。回调周期在 20 ms 上下浮动。

成员函数
返回名称
voidonRecordAudioFrame
voidonPlaybackAudioFrame
voidonRemoteUserAudioFrame
voidonMixedAudioFrame
函数说明

onRecordAudioFrame
void com.ss.bytertc.engine.IAudioFrameObserver.onRecordAudioFrame(IAudioFrame audioFrame)
java

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

传入参数

参数名类型说明
audioFrameIAudioFrame音频数据, 参看 IAudioFrame。

onPlaybackAudioFrame
void com.ss.bytertc.engine.IAudioFrameObserver.onPlaybackAudioFrame(IAudioFrame audioFrame)
java

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

传入参数

参数名类型说明
audioFrameIAudioFrame音频数据, 参看 IAudioFrame。

onRemoteUserAudioFrame
void com.ss.bytertc.engine.IAudioFrameObserver.onRemoteUserAudioFrame(
    RemoteStreamKey streamKey,
    IAudioFrame audioFrame
)
java

返回远端单个用户的音频数据

传入参数

参数名类型说明
streamKeyRemoteStreamKey远端流信息,参看 RemoteStreamKey。
audioFrameIAudioFrame音频数据,参看 IAudioFrame。

注意

此回调在播放线程调用。不要在此回调中做任何耗时的事情,否则可能会影响整个音频播放链路。

onMixedAudioFrame
void com.ss.bytertc.engine.IAudioFrameObserver.onMixedAudioFrame(IAudioFrame audioFrame)
java

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

传入参数

参数名类型说明
audioFrameIAudioFrame音频数据, 参看 IAudioFrame。

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

加密事件回调接口

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
byte[]onEncryptData
byte[]onDecryptData
函数说明

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

自定义加密。

使用设定的自定义加密方式,对编码后传输前的音视频帧数据进行加密。

暂不支持对原始音视频帧进行加密。

传入参数

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

返回值

加密后的数据

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

自定义解密。

对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData。

传入参数

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

返回值

解密后的数据

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

内存播放数据源回调

成员函数
返回名称
intonReadData
longonSeek
函数说明

onReadData
int com.ss.bytertc.engine.IMediaPlayerCustomSourceProvider.onReadData(
    ByteBuffer buffer,
    int bufferSize
)
java

Available since 3.53

调用 openWithCustomSource 接口播放用户传入的内存音频数据时,会触发此回调,用户需要写入音频数据。

传入参数

参数名类型说明
bufferByteBuffer内存地址。在该地址中写入音频数据,写入音频数据的大小不超过 bufferSize 中填入的数值。支持的音频数据格式有: mp3,aac,m4a,3gp,wav。
bufferSizeint音频数据大小,单位为字节。如果你想停止播放内存音频数据,可在 bufferSize 中填入小于或等于 0 的数,此时 SDK 会停止调用此接口。

返回值

返回实际读取的音频数据大小。

注意

若 openWithCustomSource 接口调用失败,请在 buffer 和 bufferSize 两个参数中填入 0。 此时 SDK 会停止调用此接口。

onSeek
long com.ss.bytertc.engine.IMediaPlayerCustomSourceProvider.onSeek(
    long offset,
    MediaPlayerCustomSourceSeekWhence whence
)
java

Available since 3.53

根据设置好的内存音频数据的读取位置和读取偏移量对音频数据进行偏移,以便 SDK 读取和分析音频数据。

在调用 openWithCustomSource 接口传入内存音频数据,或者调用 setPosition 设置了音频数据的起始播放位置后,SDK 会对音频数据进行读取和分析,此时会触发该回调,你需要根据参数中设置的起始读取位置和偏移量进行操作。

传入参数

参数名类型说明
offsetlong音频数据读取偏移量,单位为字节,取值可正可负。
whenceMediaPlayerCustomSourceSeekWhence音频数据的起始读取位置。参看 MediaPlayerCustomSourceSeekWhence

返回值

定位成功,返回偏移后的位置信息,或返回音频数据的大小。

定位失败,返回 -1。

IRTCVideoEventHandler
public abstract class com.ss.bytertc.engine.handler.IRTCVideoEventHandler
java

音视频引擎事件回调接口

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonWarning
voidonError
voidonDeadLockError
voidonExtensionAccessError
voidonSysStats
voidonNetworkTypeChanged
voidonUserStartVideoCapture
voidonUserStopVideoCapture
voidonCreateRoomStateChanged
voidonUserStartAudioCapture
voidonUserStopAudioCapture
voidonLocalAudioStateChanged
voidonRemoteAudioStateChanged
voidonLocalVideoStateChanged
voidonRemoteVideoStateChanged
voidonRemoteVideoSuperResolutionModeChanged
voidonVideoDenoiseModeChanged
voidonFirstRemoteVideoFrameRendered
voidonFirstRemoteVideoFrameDecoded
voidonFirstLocalVideoFrameCaptured
voidonLocalVideoSizeChanged
voidonRemoteVideoSizeChanged
voidonConnectionStateChanged
voidonAudioRouteChanged
voidonFirstLocalAudioFrame
voidonFirstRemoteAudioFrame
voidonLogReport
voidonSEIMessageReceived
voidonSEIStreamUpdate
voidonLoginResult
voidonLogout
voidonServerParamsSetResult
voidonGetPeerOnlineStatus
voidonUserMessageReceivedOutsideRoom
voidonUserBinaryMessageReceivedOutsideRoom
voidonUserMessageSendResultOutsideRoom
voidonServerMessageSendResult
voidonNetworkDetectionResult
voidonNetworkDetectionStopped
voidonSimulcastSubscribeFallback
voidonPerformanceAlarms
voidonAudioFrameSendStateChanged
voidonVideoFrameSendStateChanged
voidonScreenVideoFrameSendStateChanged
voidonAudioFramePlayStateChanged
voidonVideoFramePlayStateChanged
voidonScreenVideoFramePlayStateChanged
voidonAudioDeviceStateChanged
voidonVideoDeviceStateChanged
voidonAudioDeviceWarning
voidonVideoDeviceWarning
voidonRecordingStateUpdate
voidonRecordingProgressUpdate
voidonAudioRecordingStateUpdate
voidonAudioMixingPlayingProgress
voidonLocalAudioPropertiesReport
voidonAudioPlaybackDeviceTestVolume
voidonRemoteAudioPropertiesReport
voidonActiveSpeaker
voidonStreamSyncInfoReceived
voidonPushPublicStreamResult
voidonPlayPublicStreamResult
voidonPublicStreamSEIMessageReceived
voidonPublicStreamDataMessageReceived
voidonFirstPublicStreamVideoFrameDecoded
voidonFirstPublicStreamAudioFrame
voidonEchoTestResult
voidonCloudProxyConnected
voidonNetworkTimeSynchronized
voidonHardwareEchoDetectionResult
voidonLocalProxyStateChanged
voidonExternalScreenFrameUpdate
void[deprecated] onUserMuteAudio
void[deprecated] onUserMuteVideo
void[deprecated] onAudioPlaybackDeviceChanged
void[deprecated] onMediaDeviceStateChanged
void[deprecated] onMediaDeviceWarning
void[deprecated] onHttpProxyState
void[deprecated] onHttpsProxyState
void[deprecated] onSocks5ProxyState
void[deprecated] onAudioMixingStateChanged
函数说明

onWarning
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onWarning(int warn)
java

发生警告回调。

SDK 运行时出现了警告。SDK 通常会自动恢复,警告信息可以忽略。

传入参数

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

onError
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onError(int err)
java

发生错误回调。

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

你可能需要干预.

传入参数

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

onDeadLockError
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onDeadLockError(DeadLockMsg deadLockMsg)
java

当 RTC 内部线程发生 block 时,会触发回调。线程名与持续次数

传入参数

参数名类型说明
deadLockMsgDeadLockMsg错误消息

onExtensionAccessError
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onExtensionAccessError(
    String extensionName,
    String msg
)
java

Available since 3.52

当访问插件失败时,收到此回调。

RTC SDK 将一些功能封装成插件。当使用这些功能时,如果插件不存在,功能将无法使用。

传入参数

参数名类型说明
extensionNameString插件名字
msgString失败说明

onSysStats
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSysStats(SysStats stats)
java

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

传入参数

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

onNetworkTypeChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkTypeChanged(int type)
java

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

传入参数

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

onUserStartVideoCapture
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStartVideoCapture(
    String roomId,
    String uid
)
java

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

传入参数

参数名类型说明
roomIdString开启视频采集的远端用户所在的房间 ID
uidString开启视频采集的远端用户 ID

onUserStopVideoCapture
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStopVideoCapture(
    String roomId,
    String uid
)
java

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

若发布视频数据前未开启采集,房间内所有可见用户会收到此回调。

传入参数

参数名类型说明
roomIdString关闭视频采集的远端用户所在的房间 ID
uidString关闭视频采集的远端用户 ID

onCreateRoomStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onCreateRoomStateChanged(
    String roomId,
    int errorCode
)
java

创建房间失败回调。

传入参数

参数名类型说明
roomIdString房间 ID。
errorCodeint创建房间错误码,具体原因参看 ErrorCode。

onUserStartAudioCapture
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStartAudioCapture(
    String roomId,
    String uid
)
java

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

传入参数

参数名类型说明
roomIdString开启音频采集的远端用户所在的房间 ID
uidString开启音频采集的远端用户 ID

onUserStopAudioCapture
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStopAudioCapture(
    String roomId,
    String uid
)
java

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

传入参数

参数名类型说明
roomIdString关闭音频采集的远端用户所在的房间 ID
uidString关闭音频采集的远端用户 ID

onLocalAudioStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalAudioStateChanged(
    LocalAudioStreamState state,
    LocalAudioStreamError error
)
java

本地音频流的状态发生改变时,收到此回调。

传入参数

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

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

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

传入参数

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

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

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

传入参数

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

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

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

传入参数

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

注意

本回调仅适用于主流,不适用于屏幕流。

onFirstRemoteVideoFrameRendered
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteVideoFrameRendered(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo
)
java

SDK 内部渲染成功远端视频流首帧后,收到此回调。

传入参数

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

onFirstRemoteVideoFrameDecoded
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteVideoFrameDecoded(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo
)
java

SDK 接收并解码远端视频流首帧后,收到此回调。

传入参数

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

注意

onFirstLocalVideoFrameCaptured
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstLocalVideoFrameCaptured(
    StreamIndex streamIndex,
    VideoFrameInfo frameInfo
)
java

RTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。

传入参数

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

注意

对于采集到的本地视频帧,你可以调用 setLocalVideoCanvas 或 setLocalVideoSink 在本地渲染。

onLocalVideoSizeChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalVideoSizeChanged(
    StreamIndex streamIndex,
    VideoFrameInfo frameInfo
)
java

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

传入参数

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

onRemoteVideoSizeChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteVideoSizeChanged(
    RemoteStreamKey remoteStreamKey,
    VideoFrameInfo frameInfo
)
java

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

传入参数

参数名类型说明
remoteStreamKeyRemoteStreamKey远端流信息,参看 RemoteStreamKey。
frameInfoVideoFrameInfo视频帧信息,参看 VideoFrameInfo

onConnectionStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onConnectionStateChanged(
    int state,
    int reason
)
java

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

传入参数

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

注意

更多信息参见 连接状态提示。

onAudioRouteChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioRouteChanged(AudioRoute route)
java

音频播放路由变化时,收到该回调。

传入参数

参数名类型说明
routeAudioRoute新的音频播放路由,详见 AudioRoute

注意

插拔音频外设,或调用 setAudioRoute 都可能触发音频路由切换,详见移动端设置音频路由 。

onFirstLocalAudioFrame
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstLocalAudioFrame(StreamIndex streamIndex)
java

发布音频流时,采集到第一帧音频帧,收到该回调。

传入参数

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

注意

如果发布音频流时,未开启本地音频采集,SDK 会推送静音帧,也会收到此回调。

onFirstRemoteAudioFrame
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteAudioFrame(RemoteStreamKey remoteStreamKey)
java

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

传入参数

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

注意

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

onLogReport
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLogReport(
    String logType,
    JSONObject logContent
)
java

上报日志时回调该事件。

传入参数

参数名类型说明
logTypeString
日志类型。
logContentJSONObject
日志内容。

onSEIMessageReceived
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSEIMessageReceived(
    RemoteStreamKey remoteStreamKey,
    ByteBuffer message
)
java

收到通过调用 sendSEIMessage 发送带有 SEI 消息的视频帧时,收到此回调。

传入参数

参数名类型说明
remoteStreamKeyRemoteStreamKey包含 SEI 发送者的用户名,所在的房间名和媒体流,详见 RemoteStreamKey
messageByteBuffer收到的 SEI 消息内容

onSEIStreamUpdate
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSEIStreamUpdate(
    RemoteStreamKey remoteStreamKey,
    SEIStreamUpdateEvent event
)
java

黑帧视频流发布状态回调。

在语音通话场景下,本地用户调用 sendSEIMessage 通过黑帧视频流发送 SEI 数据时,流的发送状态会通过该回调通知远端用户。

你可以通过此回调判断携带 SEI 数据的视频帧为黑帧,从而不对该视频帧进行渲染。

传入参数

参数名类型说明
remoteStreamKeyRemoteStreamKey远端流信息,参看 RemoteStreamKey。
eventSEIStreamUpdateEvent黑帧视频流状态,参看 SEIStreamUpdateEvent

onLoginResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLoginResult(
    String uid,
    int errorCode,
    int elapsed
)
java

登录结果回调

传入参数

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

注意

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

onLogout
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLogout(int reason)
java

登出结果回调

传入参数

参数名类型说明
reasonint用户登出的原因,参看 LogoutReason

注意

在以下两种情况下会收到此回调:调用 logout 接口主动退出;或其他用户以相同 UserId 进行 login 导致本地用户被动登出。

onServerParamsSetResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onServerParamsSetResult(int error)
java

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

传入参数

参数名类型说明
errorint
设置结果

注意

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

onGetPeerOnlineStatus
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onGetPeerOnlineStatus(
    String peerUserId,
    int status
)
java

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

传入参数

参数名类型说明
peerUserIdString
需要查询的用户 ID
statusint
查询的用户登录状态
详见 UserOnlineStatus.

注意

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

onUserMessageReceivedOutsideRoom
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMessageReceivedOutsideRoom(
    String uid,
    String message
)
java

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

传入参数

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

onUserBinaryMessageReceivedOutsideRoom
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserBinaryMessageReceivedOutsideRoom(
    String uid,
    ByteBuffer message
)
java

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

传入参数

参数名类型说明
uidString
消息发送者 ID
messageByteBuffer
收到的二进制消息内容

onUserMessageSendResultOutsideRoom
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMessageSendResultOutsideRoom(
    long msgid,
    int error
)
java

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

传入参数

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

注意

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

onServerMessageSendResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onServerMessageSendResult(
    long msgid,
    int error,
    ByteBuffer message
)
java

给应用服务器发送消息的回调。

传入参数

参数名类型说明
msgidlong本条消息的 ID
所有的 P2P 和 P2Server 消息共用一个 ID 序列。
errorint消息发送结果,详见 UserMessageSendResult。
messageByteBuffer应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。消息不超过 64 KB。

注意

本回调为异步回调。当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。

onNetworkDetectionResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkDetectionResult(
    NetworkDetectionLinkType type,
    int quality,
    int rtt,
    double lostRate,
    int bitrate,
    int jitter
)
java

通话前网络探测结果。

成功调用 startNetworkDetection 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。

传入参数

参数名类型说明
typeNetworkDetectionLinkType探测网络类型为上行/下行
qualityint探测网络的质量,参看 NetworkQuality。
rttint探测网络的 RTT,单位:ms
lostRatedouble探测网络的丢包率
bitrateint探测网络的带宽,单位:kbps
jitterint探测网络的抖动,单位:ms

onNetworkDetectionStopped
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkDetectionStopped(NetworkDetectionStopReason reason)
java

通话前网络探测结束

以下情况将停止探测并收到本一次本回调:

  1. 当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调;

  2. 当收到远端/本端音频首帧后,停止探测;

  3. 当探测超过 3 分钟后,停止探测;

  4. 当探测链路断开一定时间之后,停止探测。

传入参数

参数名类型说明
reasonNetworkDetectionStopReason
停止探测的原因类型,参考 NetworkDetectionStopReason

onSimulcastSubscribeFallback
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSimulcastSubscribeFallback(RemoteStreamSwitch event)
java

音视频流因网络环境变化等原因发生回退,或从回退中恢复时,触发该回调。

传入参数

参数名类型说明
eventRemoteStreamSwitch音视频流发生变化的信息。参看 RemoteStreamSwitch。

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

本地未通过 setPublishFallbackOption 开启发布性能回退,检测到设备性能不足时,收到此回调。

本地通过 setPublishFallbackOption 开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。

传入参数

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

onAudioFrameSendStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioFrameSendStateChanged(
    String roomId,
    RtcUser user,
    FirstFrameSendState state
)
java

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

传入参数

参数名类型说明
roomIdString音频发布用户所在的房间 ID
userRtcUser本地用户信息,详见 RtcUser
stateFirstFrameSendState首帧发送状态,详见 FirstFrameSendState

onVideoFrameSendStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoFrameSendStateChanged(
    String roomId,
    RtcUser user,
    FirstFrameSendState state
)
java

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

传入参数

参数名类型说明
roomIdString视频发布用户所在的房间 ID
userRtcUser本地用户信息,详见 RtcUser
stateFirstFrameSendState首帧发送状态,详见 FirstFrameSendState

onScreenVideoFrameSendStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onScreenVideoFrameSendStateChanged(
    String roomId,
    RtcUser user,
    FirstFrameSendState state
)
java

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

传入参数

参数名类型说明
roomIdString屏幕视频发布用户所在的房间 ID
userRtcUser本地用户信息,详见 RtcUser
stateFirstFrameSendState首帧发送状态,详见 FirstFrameSendState

onAudioFramePlayStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioFramePlayStateChanged(
    String roomId,
    RtcUser user,
    FirstFramePlayState state
)
java

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

传入参数

参数名类型说明
roomIdString音频发布用户所在的房间 ID
userRtcUser远端用户信息,详见 RtcUser
stateFirstFramePlayState首帧播放状态,详见 FirstFramePlayState

onVideoFramePlayStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoFramePlayStateChanged(
    String roomId,
    RtcUser user,
    FirstFramePlayState state
)
java

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

传入参数

参数名类型说明
roomIdString视频发布用户所在的房间 ID
userRtcUser远端用户信息,详见 RtcUser
stateFirstFramePlayState首帧播放状态,详见 FirstFramePlayState

onScreenVideoFramePlayStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onScreenVideoFramePlayStateChanged(
    String roomId,
    RtcUser user,
    FirstFramePlayState state
)
java

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

传入参数

参数名类型说明
roomIdString屏幕视频发布用户所在的房间 ID
userRtcUser远端用户信息,详见 RtcUser
stateFirstFramePlayState首帧播放状态,详见 FirstFramePlayState

onAudioDeviceStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioDeviceStateChanged(
    String deviceID,
    AudioDeviceType deviceType,
    int deviceState,
    int deviceError
)
java

音频设备状态回调。提示音频采集、音频播放等媒体设备的状态。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeAudioDeviceType设备类型,详见 AudioDeviceType。
deviceStateint设备状态,详见 MediaDeviceState。
deviceErrorint设备错误类型,详见 MediaDeviceError。

onVideoDeviceStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoDeviceStateChanged(
    String deviceID,
    VideoDeviceType deviceType,
    int deviceState,
    int deviceError
)
java

视频设备状态回调。提示摄像头视频采集、屏幕视频采集等媒体设备的状态。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeVideoDeviceType设备类型,详见 VideoDeviceType。
deviceStateint设备状态,详见 MediaDeviceState。
deviceErrorint设备错误类型,详见 MediaDeviceError。

onAudioDeviceWarning
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioDeviceWarning(
    String deviceID,
    AudioDeviceType deviceType,
    int deviceWarning
)
java

音频设备警告回调。音频设备包括音频采集设备、音频渲染设备等。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeAudioDeviceType参看 AudioDeviceType
deviceWarningint参看 MediaDeviceWarning

onVideoDeviceWarning
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoDeviceWarning(
    String deviceID,
    VideoDeviceType deviceType,
    int deviceWarning
)
java

视频设备警告回调,包括视频采集等设备。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeVideoDeviceType参看 VideoDeviceType
deviceWarningint参看 MediaDeviceWarning

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

获取本地录制状态回调。

该回调由 startFileRecording 或 stopFileRecording 触发。

传入参数

参数名类型说明
typeStreamIndex录制流的流属性,参看 StreamIndex
stateRecordingState录制状态,参看 RecordingState
errorCodeRecordingErrorCode录制错误码,参看 RecordingErrorCode
infoRecordingInfo录制文件的详细信息,参看 RecordingInfo

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

本地录制进度回调。

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

传入参数

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

onAudioRecordingStateUpdate
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioRecordingStateUpdate(
    AudioRecordingState state,
    AudioRecordingErrorCode errorCode
)
java

调用 startAudioRecording 或 stopAudioRecording 改变音频文件录制状态时,收到此回调。

传入参数

参数名类型说明
stateAudioRecordingState录制状态,参看 AudioRecordingState
errorCodeAudioRecordingErrorCode录制错误码,参看 AudioRecordingErrorCode

onAudioMixingPlayingProgress
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioMixingPlayingProgress(
    int mixId,
    long progress
)
java

混音音频文件播放进度回调

传入参数

参数名类型说明
mixIdint混音 ID
progresslong当前混音音频文件播放进度,单位毫秒

注意

调用 setAudioMixingProgressInterval 将时间间隔设为大于 0 的值后,或调用 startAudioMixing 将 AudioMixingConfig 中的时间间隔设为大于 0 的值后,SDK 会按照设置的时间间隔回调该事件。

onLocalAudioPropertiesReport
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalAudioPropertiesReport(LocalAudioPropertiesInfo[] audioPropertiesInfos)
java

调用 enableAudioPropertiesReport 后,你会周期性地收到此回调,了解本地音频的相关信息。

本地音频包括使用 RTC SDK 内部机制采集的麦克风音频,屏幕音频和本地混音音频信息。

传入参数

参数名类型说明
audioPropertiesInfosLocalAudioPropertiesInfo[]本地音频信息,详见 LocalAudioPropertiesInfo。

onAudioPlaybackDeviceTestVolume
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioPlaybackDeviceTestVolume(int volume)
java

回调音频设备测试时的播放音量

传入参数

参数名类型说明
volumeint音频设备测试播放音量。取值范围:[0,255]

注意

调用 startAudioPlaybackDeviceTest 或 startAudioDeviceRecordTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。

onRemoteAudioPropertiesReport
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteAudioPropertiesReport(
    RemoteAudioPropertiesInfo[] audioPropertiesInfos,
    int totalRemoteVolume
)
java

远端用户进房后,本地调用 enableAudioPropertiesReport ,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。

远端用户的音频包括使用 RTC SDK 内部机制/自定义机制采集的麦克风音频和屏幕音频。

传入参数

参数名类型说明
audioPropertiesInfosRemoteAudioPropertiesInfo[]远端音频信息,其中包含音频流属性、房间 ID、用户 ID ,详见 RemoteAudioPropertiesInfo。
totalRemoteVolumeint订阅的所有远端流的总音量。

onActiveSpeaker
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onActiveSpeaker(
    String roomId,
    String uid
)
java

调用 enableAudioPropertiesReport 后,根据设置的 AudioPropertiesConfig.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。

传入参数

参数名类型说明
roomIdString房间 ID
uidString最活跃用户(ActiveSpeaker)的用户 ID

onStreamSyncInfoReceived
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onStreamSyncInfoReceived(
    RemoteStreamKey streamKey,
    StreamSycnInfoConfig.SyncInfoStreamType streamType,
    ByteBuffer data
)
java

音频流同步信息回调。可以通过此回调,在远端用户调用 sendStreamSyncInfo 发送音频流同步消息后,收到远端发送的音频流同步信息。

传入参数

参数名类型说明
streamKeyRemoteStreamKey远端流信息,详见 RemoteStreamKey。
streamTypeStreamSycnInfoConfig.SyncInfoStreamType媒体流类型,详见 SyncInfoStreamType。
dataByteBuffer消息内容。

onPushPublicStreamResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPushPublicStreamResult(
    String roomId,
    String publicStreamId,
    PublicStreamErrorCode error
)
java

公共流发布结果回调。

调用 startPushPublicStream 接口发布公共流后,启动结果通过此回调方法通知用户。

传入参数

参数名类型说明
roomIdString发布公共流的房间 ID
publicStreamIdString公共流 ID
errorPublicStreamErrorCode公共流发布结果状态码。详见 PublicStreamErrorCode。

onPlayPublicStreamResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPlayPublicStreamResult(
    String publicStreamId,
    PublicStreamErrorCode error
)
java

订阅公共流的结果回调

调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到启动结果和拉流过程中的错误。

传入参数

参数名类型说明
publicStreamIdString公共流 ID。
errorPublicStreamErrorCode公共流订阅结果状态码。详见 PublicStreamErrorCode。

onPublicStreamSEIMessageReceived
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPublicStreamSEIMessageReceived(
    String publicStreamId,
    ByteBuffer message,
    DataMessageSourceType sourceType
)
java

回调公共流中包含的 SEI 信息。

调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到公共流中的 SEI 消息。

传入参数

参数名类型说明
publicStreamIdString公共流 ID。
messageByteBuffer收到的 SEI 消息内容。
通过调用客户端 sendSEIMessage 插入的 SEI 信息。
当公共流中的多路视频流均包含有 SEI 信息:SEI 不互相冲突时,将通过多次回调分别发送;SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。
sourceTypeDataMessageSourceTypeSEI 消息类型,自 3.52.1 版本后固定为 0,自定义消息。参看 DataMessageSourceType。

注意

通过 Open API 插入的自定义信息,应通过回调 onPublicStreamDataMessageReceived 获取。

onPublicStreamDataMessageReceived
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPublicStreamDataMessageReceived(
    String publicStreamId,
    ByteBuffer message,
    DataMessageSourceType sourceType
)
java

Available since 3.52

回调公共流中包含的数据信息。

调用 startPlayPublicStream 订阅公共流后,通过监听本回调获取公共流中的数据消息,包括调用 Open API 发送的 SEI 消息和音量回调。

传入参数

参数名类型说明
publicStreamIdString公共流 ID。
messageByteBuffer收到的数据消息内容,如下:
  • 调用公共流 OpenAPI 发送的自定义消息。
  • 媒体流音量变化,需要通过公共流 OpenAPI 开启回调。JSON 格式说明如下: {
    "Type":"VolumeIndication", //具体业务类型
    "VolumeInfos"[// 业务类型对应信息
    {
    "RoomId":"1000001", // 房间 ID
    "UserId":"1000001", // 用户 ID
    "StreamType":0, // 0:摄像头流;1:屏幕流
    "LinearVolume":1 // 线性音量大小
    }
    ]
    }
sourceTypeDataMessageSourceType数据消息来源,参看 DataMessageSourceType。

注意

通过调用客户端 API 插入的 SEI 信息,应通过回调 onPublicStreamSEIMessageReceived 获取。

onFirstPublicStreamVideoFrameDecoded
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstPublicStreamVideoFrameDecoded(
    String publicStreamId,
    VideoFrameInfo videoFrameInfo
)
java

公共流的首帧视频解码成功

关于订阅公共流,详见 startPlayPublicStream。

传入参数

参数名类型说明
publicStreamIdString公共流 ID
videoFrameInfoVideoFrameInfo视频帧信息,参看 VideoFrameInfo

onFirstPublicStreamAudioFrame
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstPublicStreamAudioFrame(String publicStreamId)
java

公共流的音频首帧解码成功

关于订阅公共流,详见 startPlayPublicStream。

传入参数

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

onEchoTestResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onEchoTestResult(EchoTestResult result)
java

关于音视频回路测试结果的回调。

传入参数

参数名类型说明
resultEchoTestResult测试结果,参看 EchoTestResult

注意

该回调触发的时机包括:

onCloudProxyConnected
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onCloudProxyConnected(int interval)
java

调用 startCloudProxy 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。

传入参数

参数名类型说明
intervalint从开启云代理到连接成功经过的时间,单位为 ms

onNetworkTimeSynchronized
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkTimeSynchronized()
java

首次调用 getNetworkTimeInfo 后,SDK 内部启动网络时间同步,同步完成时会触发此回调。

onHardwareEchoDetectionResult
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHardwareEchoDetectionResult(HardwareEchoDetectionResult hardwareEchoDetectionResult)
java

通话前回声检测结果回调。

传入参数

参数名类型说明
hardwareEchoDetectionResultHardwareEchoDetectionResult参见 HardwareEchoDetectionResult

注意

onLocalProxyStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalProxyStateChanged(
    LocalProxyType localProxyType,
    LocalProxyState localProxyState,
    LocalProxyError localProxyError
)
java

本地代理状态发生改变回调。调用 setLocalProxy 设置本地代理后,SDK 会触发此回调,通知代理连接的状态。

传入参数

参数名类型说明
localProxyTypeLocalProxyType本地代理类型。参看 LocalProxyType。
localProxyStateLocalProxyState本地代理状态。参看 LocalProxyState。
localProxyErrorLocalProxyError本地代理错误。参看 LocalProxyError。

onExternalScreenFrameUpdate
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onExternalScreenFrameUpdate(FrameUpdateInfo info)
java

外部采集时,调用 setOriginalScreenVideoInfo 设置屏幕或窗口大小改变前的分辨率后,若屏幕采集模式为智能模式,你将收到此回调,根据 RTC 智能决策合适的帧率和分辨率积(宽*高)重新采集。

传入参数

参数名类型说明
infoFrameUpdateInfoRTC 智能决策后合适的帧率和分辨率积(宽*高)。参看 FrameUpdateInfo。

onUserMuteAudio
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMuteAudio(
    String roomId,
    String uid,
    MuteState muteState
)
java

Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.

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

传入参数

参数名类型说明
roomIdString房间 ID
uidString改变本地音频发送状态的用户 ID
muteStateMuteState发送状态,参看 MuteState

onUserMuteVideo
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMuteVideo(
    String roomId,
    String uid,
    MuteState muteState
)
java

Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.

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

传入参数

参数名类型说明
roomIdString房间 ID
uidString暂停/恢复发送视频流的用户 ID。
muteStateMuteState视频流的发送状态。参看 MuteState。

onAudioPlaybackDeviceChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioPlaybackDeviceChanged(AudioPlaybackDevice device)
java

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

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

传入参数

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

注意

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

onMediaDeviceStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onMediaDeviceStateChanged(
    String deviceID,
    int deviceType,
    int deviceState,
    int deviceError
)
java

Deprecated since 3.37 and will be deleted in 3.51, using onAudioDeviceStateChanged and onVideoDeviceStateChanged instead.

媒体设备状态回调。提示音频采集、音频播放、摄像头视频采集、屏幕视频采集四种媒体设备的状态。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeint设备类型,详见 MediaDeviceType。
deviceStateint设备状态,详见 MediaDeviceState。
deviceErrorint设备错误类型,详见 MediaDeviceError。

onMediaDeviceWarning
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onMediaDeviceWarning(
    String deviceID,
    int deviceType,
    int deviceWarning
)
java

Deprecated since 3.37 and will be deleted in 3.51, using onAudioDeviceWarning and onVideoDeviceWarning instead.

媒体设备警告回调。媒体设备包括:音频采集设备、音频渲染设备、和视频采集设备。

传入参数

参数名类型说明
deviceIDString设备 ID
deviceTypeint参看 MediaDeviceType
deviceWarningint参看 MediaDeviceWarning

onHttpProxyState
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHttpProxyState(int state)
java

Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead

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

传入参数

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

onHttpsProxyState
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHttpsProxyState(int state)
java

Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead

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

传入参数

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

onSocks5ProxyState
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSocks5ProxyState(
    int state,
    String cmd,
    String proxyAddress,
    String localAddress,
    String remoteAddress
)
java

Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead

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

传入参数

参数名类型说明
stateintSOCKS5 代理连接状态
cmdString代理连接的每一步操作命令
proxyAddressString代理地址信息
localAddressString当前连接使用的本地地址
remoteAddressString远端的连接地址

onAudioMixingStateChanged
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioMixingStateChanged(
    int mixId,
    AudioMixingState state,
    AudioMixingError error
)
java

Deprecated since 353. Use IMediaPlayerEventHandler and IAudioEffectPlayerEventHandler instead.

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

传入参数

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

注意

此回调会被触发的时机汇总如下:

ISnapshotResultCallback
public interface com.ss.bytertc.engine.video.ISnapshotResultCallback
java

截图的回调。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
voidonTakeLocalSnapshotResult
voidonTakeRemoteSnapshotResult
函数说明

onTakeLocalSnapshotResult
void com.ss.bytertc.engine.video.ISnapshotResultCallback.onTakeLocalSnapshotResult(
    long taskId,
    StreamIndex streamIndex,
    Bitmap image,
    int errorCode
)
java

调用 takeLocalSnapshot 截取视频画面时,收到此回调。

传入参数

参数名类型说明
taskIdlong本地截图任务的编号。和 takeLocalSnapshot 的返回值一致。
streamIndexStreamIndex截图的视频流的属性,参看 StreamIndex。
imageBitmap截图。你可以保存为文件,或对其进行二次处理。截图失败时,为空。
errorCodeint截图错误码:
  • 0: 成功
  • -1: 截图错误。生成图片数据失败或 RGBA 编码失败
  • -2: 截图错误。流无效。
  • -3: 截图错误。截图超时,超时时间 1 秒。

onTakeRemoteSnapshotResult
void com.ss.bytertc.engine.video.ISnapshotResultCallback.onTakeRemoteSnapshotResult(
    long taskId,
    RemoteStreamKey streamKey,
    Bitmap image,
    int errorCode
)
java

调用 takeRemoteSnapshot 截取视频画面时,收到此回调。

传入参数

参数名类型说明
taskIdlong远端截图任务的编号。和 takeRemoteSnapshot 的返回值一致。
streamKeyRemoteStreamKey截图的视频流,参看 RemoteStreamKey。
imageBitmap截图。你可以保存为文件,或对其进行二次处理。截图失败时,为空。
errorCodeint截图错误码:
  • 0: 成功
  • -1: 截图错误。生成图片数据失败或 RGBA 编码失败
  • -2: 截图错误。流无效。
  • -3: 截图错误。截图超时,超时时间 1 秒。

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

自定义音频处理器。

注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。

成员函数
返回名称
intonProcessRecordAudioFrame
intonProcessPlayBackAudioFrame
intonProcessRemoteUserAudioFrame
intonProcessEarMonitorAudioFrame
intonProcessScreenAudioFrame
函数说明

onProcessRecordAudioFrame
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessRecordAudioFrame(IAudioFrame audioFrame)
java

回调本地采集的音频帧地址,供自定义音频处理。

传入参数

参数名类型说明
audioFrameIAudioFrame音频帧地址,参看 IAudioFrame。

返回值

注意

onProcessPlayBackAudioFrame
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessPlayBackAudioFrame(IAudioFrame audioFrame)
java

回调远端音频混音的音频帧地址,供自定义音频处理。

传入参数

参数名类型说明
audioFrameIAudioFrame音频帧地址,参看 IAudioFrame

注意

调用 enableAudioProcessor,并在参数中选择远端音频流的的混音音频时,每 10 ms 收到此回调。

onProcessRemoteUserAudioFrame
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessRemoteUserAudioFrame(
    RemoteStreamKey streamKey,
    IAudioFrame audioFrame
)
java

回调单个远端用户的音频帧地址,供自定义音频处理。

传入参数

参数名类型说明
streamKeyRemoteStreamKey音频流信息,参看 RemoteStreamKey
audioFrameIAudioFrame音频帧地址,参看 IAudioFrame

注意

调用 enableAudioProcessor,并在参数中选择各个远端音频流时,,每 10 ms 收到此回调。

onProcessEarMonitorAudioFrame
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessEarMonitorAudioFrame(IAudioFrame audioFrame)
java

Available since 3.50

软件耳返音频数据的回调。你可根据此回调自定义处理音频。

软件耳返音频中包含通过调用 setVoiceReverbType 和 setVoiceChangerType 设置的音频特效。

传入参数

参数名类型说明
audioFrameIAudioFrame音频帧地址。参看 IAudioFrame。

返回值

注意

onProcessScreenAudioFrame
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessScreenAudioFrame(IAudioFrame audioFrame)
java

屏幕共享的音频帧地址回调。你可根据此回调自定义处理音频。

传入参数

参数名类型说明
audioFrameIAudioFrame音频帧地址,参看 IAudioFrame。

注意

调用 enableAudioProcessor,把返回给音频处理器的音频类型设置为屏幕共享音频后,每 10 ms 收到此回调。