public abstract class com.ss.bytertc.engine.handler.IRTCRoomEventHandler
java房间事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onLeaveRoom |
| void | onRoomStateChanged |
| void | onStreamStateChanged |
| void | onAVSyncStateChange |
| void | onRoomStats |
| void | onUserJoined |
| void | onUserLeave |
| void | onTokenWillExpire |
| void | onPublishPrivilegeTokenWillExpire |
| void | onSubscribePrivilegeTokenWillExpire |
| void | onUserPublishStream |
| void | onUserUnpublishStream |
| void | onUserPublishScreen |
| void | onUserUnpublishScreen |
| void | onLocalStreamStats |
| void | onRemoteStreamStats |
| void | onStreamSubscribed |
| void | onRoomMessageReceived |
| void | onRoomBinaryMessageReceived |
| void | onUserMessageReceived |
| void | onUserBinaryMessageReceived |
| void | onUserMessageSendResult |
| void | onRoomMessageSendResult |
| void | onVideoStreamBanned |
| void | onAudioStreamBanned |
| void | onForwardStreamStateChanged |
| void | onForwardStreamEvent |
| void | onNetworkQuality |
| void | onSetRoomExtraInfoResult |
| void | onRoomExtraInfoUpdate |
| void | onUserVisibilityChanged |
| void | onSubtitleStateChanged |
| void | onSubtitleMessageReceived |
| void | [deprecated] onRoomWarning |
| void | [deprecated] onRoomError |
| void | [deprecated] onStreamRemove |
| void | [deprecated] onStreamAdd |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLeaveRoom(RTCRoomStats stats)
java离开房间成功回调。
用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有通话相关的音视频资源后,通过此回调通知用户离开房间成功。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | RTCRoomStats | 保留参数,目前为空。 |
注意
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomStateChanged(
String roomId,
String uid,
int state,
String extraInfo
)
java房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID。 |
| uid | String | 用户 ID。 |
| state | int | 房间状态码。
|
| extraInfo | String | 额外信息,如 {"elapsed":1187,"join_type":0}。join_type 表示加入房间的类型,0为首次进房,1为重连进房。elapsed 表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamStateChanged(
String roomId,
String uid,
int state,
String extraInfo
)
java流状态改变回调,发生流相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID。 |
| uid | String | 用户 ID。 |
| state | int | 流状态码,参看 ErrorCode 及 WarningCode。 |
| extraInfo | String | 附加信息,目前为空。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAVSyncStateChange(AVSyncState state)
java发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | AVSyncState | 音视频同步状态,参看 AVSyncState。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomStats(RTCRoomStats stats)
java房间内通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | RTCRoomStats | 房间内的汇总统计数据。详见 RTCRoomStats。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserJoined(
UserInfo userInfo,
int elapsed
)
java远端可见用户加入房间,或房内不可见用户切换为可见的回调。
1.远端用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2.远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3.房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4.新进房用户也会收到进房前已在房内的可见用户的进房回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userInfo | UserInfo | 用户信息。参看 UserInfo。 |
| elapsed | int | 保留字段,无意义。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserLeave(
String uid,
int reason
)
java远端用户离开房间,或切至不可见时,房间内其他用户会收到此事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 离开房间,或切至不可见的的远端用户 ID。 |
| reason | int | 用户离开房间的原因:
|
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onTokenWillExpire()
javaToken 进房权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 进房权限。
注意
若 Token 进房权限过期且未及时更新:
-1000 Token 无效;-1009 Token 无效,同时远端用户会收到 onUserLeave 回调,提示原因为 1 Token 进房权限过期。void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onPublishPrivilegeTokenWillExpire()
javaToken 发布权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 发布权限。
注意
若收到该回调后未及时更新 Token,Token 发布权限过期后:
-1002 没有发布权限;-1002 没有发布权限,同时远端用户会收到 onUserUnpublishStream/ onUserUnpublishScreen 回调,提示原因为 6 发流端发布权限过期。void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubscribePrivilegeTokenWillExpire()
javaToken 订阅权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 订阅权限有效期。
注意
若收到该回调后未及时更新 Token,Token 订阅权限过期后,尝试新订阅流会失败,已订阅的流会取消订阅,并且会收到 onStreamStateChanged 回调,提示错误码为 -1003 没有订阅权限。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserPublishStream(
String uid,
MediaStreamType type
)
java房间内新增远端摄像头/麦克风采集的媒体流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意
当房间内的远端用户调用 publishStream 成功发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserUnpublishStream(
String uid,
MediaStreamType type,
StreamRemoveReason reason
)
java房间内远端摄像头/麦克风采集的媒体流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 移除的远端流发布用户的用户 ID。 |
| type | MediaStreamType | 移除的远端流类型,参看 MediaStreamType。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserPublishScreen(
String uid,
MediaStreamType type
)
java房间内新增远端屏幕共享音视频流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意
当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserUnpublishScreen(
String uid,
MediaStreamType type,
StreamRemoveReason reason
)
java房间内远端屏幕共享音视频流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 移除的远端流发布用户的用户 ID。 |
| type | MediaStreamType | 移除的远端流类型,参看 MediaStreamType。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeScreen 取消订阅此流。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onLocalStreamStats(LocalStreamStats stats)
java本地流数据统计以及网络质量回调。
本地用户发布流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的流在此次统计周期内的质量统计信息。
统计信息通过 LocalStreamStats 类型的回调参数传递给用户,其中包括发送音视频比特率、发送帧率、编码帧率,网络质量等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | LocalStreamStats | 音视频流以及网络状况统计信息。参见 LocalStreamStats。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRemoteStreamStats(RemoteStreamStats stats)
java本地订阅的远端音/视频流数据统计以及网络质量回调。
本地用户订阅流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的流在此次统计周期内的质量统计信息,包括:发送音视频比特率、发送帧率、编码帧率,网络质量等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | RemoteStreamStats | 音视频流以及网络状况统计信息。参见 RemoteStreamStats。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamSubscribed(
int stateCode,
String userId,
SubscribeConfig info
)
java关于订阅媒体流状态改变的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stateCode | int | 订阅媒体流状态,参看 SubscribeState |
| userId | String | 流发布用户的用户 ID |
| info | SubscribeConfig | 流的属性,参看 SubscribeConfig |
注意
本地用户收到该回调的时机包括:
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomMessageReceived(
String uid,
String message
)
java接收到房间内广播消息的回调。
房间内其他用户调用 sendRoomMessage 发送广播消息时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者 ID |
| message | String | 收到的消息内容 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomBinaryMessageReceived(
String uid,
ByteBuffer message
)
java收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者 ID |
| message | ByteBuffer | 收到的二进制消息内容 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMessageReceived(
String uid,
String message
)
java收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者的用户 ID 。 |
| message | String | 收到的文本消息内容。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserBinaryMessageReceived(
String uid,
ByteBuffer message
)
java收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者的用户 ID 。 |
| message | ByteBuffer | 收到的二进制消息内容。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserMessageSendResult(
long msgid,
int error
)
java向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | long | 本条消息的 ID。 |
| error | int | 文本或二进制消息发送结果,详见 UserMessageSendResult |
注意
调用 sendUserMessage 或 sendUserBinaryMessage 接口,才能收到此回调。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomMessageSendResult(
long msgid,
int error
)
java调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | long | 本条消息的 ID。 |
| error | int | 消息发送结果,详见 RoomMessageSendResult |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onVideoStreamBanned(
String uid,
boolean banned
)
java通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 被禁用/解禁的视频流用户 ID |
| banned | boolean | 视频流发送状态
|
注意
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onAudioStreamBanned(
String uid,
boolean banned
)
java通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 被禁用/解禁的音频流用户 ID |
| banned | boolean | 音频流发送状态
|
注意
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onForwardStreamStateChanged(ForwardStreamStateInfo[] stateInfos)
java跨房间媒体流转发状态和错误回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stateInfos | ForwardStreamStateInfo[] | 跨房间媒体流转发目标房间信息数组,详见 ForwardStreamStateInfo |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onForwardStreamEvent(ForwardStreamEventInfo[] eventInfos)
java跨房间媒体流转发事件回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventInfos | ForwardStreamEventInfo[] | 跨房间媒体流转发目标房间事件数组,详见 ForwardStreamEventInfo |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onNetworkQuality(
NetworkQualityStats localQuality,
NetworkQualityStats[] remoteQualities
)
java加入房间并发布或订阅流后, 以每 2 秒一次的频率,报告本地用户和已订阅的远端用户的上下行网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| localQuality | NetworkQualityStats | 本地网络质量,详见 NetworkQualityStats。 |
| remoteQualities | NetworkQualityStats[] | 已订阅用户的网络质量,详见 NetworkQualityStats。 |
注意
更多通话中的监测接口,详见通话中质量监测。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSetRoomExtraInfoResult(
long taskId,
SetRoomExtraInfoResult error
)
javaAvailable since 3.52
调用 setRoomExtraInfo 设置房间附加信息结果的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | long | 调用 setRoomExtraInfo 的任务编号。 |
| error | SetRoomExtraInfoResult | 设置房间附加信息的结果,详见 SetRoomExtraInfoResult |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomExtraInfoUpdate(
String key,
String value,
String lastUpdateUserId,
long lastUpdateTimeMs
)
javaAvailable since 3.52
接收同一房间内,其他用户调用 setRoomExtraInfo 设置的房间附加信息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | String | 房间附加信息的键值 |
| value | String | 房间附加信息的内容 |
| lastUpdateUserId | String | 最后更新本条信息的用户 ID。 |
| lastUpdateTimeMs | long | 最后更新本条信息的 Unix 时间,单位:毫秒。 |
注意
新进房的用户会收到进房前房间内已有的全部附加信息通知。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onUserVisibilityChanged(
boolean currentUserVisibility,
UserVisibilityChangeError errorCode
)
javaAvailable since 3.54
用户调用 setUserVisibility 设置用户可见性的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| currentUserVisibility | boolean | 当前用户的可见性。
|
| errorCode | UserVisibilityChangeError | 设置用户可见性错误码,参看 UserVisibilityChangeError。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubtitleStateChanged(
SubtitleState state,
SubtitleErrorCode errorCode,
String errorMessage
)
java字幕状态发生改变回调。
当用户调用 startSubtitle 和 stopSubtitle 使字幕状态发生改变或字幕任务出现错误时,触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | SubtitleState | 字幕状态。参看 SubtitleState。 |
| errorCode | SubtitleErrorCode | 字幕任务错误码。参看 SubtitleErrorCode。 |
| errorMessage | String | 与第三方服务有关的错误信息。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onSubtitleMessageReceived(SubtitleMessage[] subtitles)
java字幕相关内容回调。
当用户成功调用 startSubtitle 后会收到此回调,通知字幕的相关信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| subtitles | SubtitleMessage[] | 字幕消息内容。参看 SubtitleMessage。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomWarning(int warn)
javaDeprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.
发生警告回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告代码,参见 WarningCode |
注意
SDK 运行时出现了(网络或媒体相关的)警告。SDK 通常会自动恢复,警告信息可以忽略。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onRoomError(int err)
javaDeprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.
发生错误回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误代码,详情定义见: ErrorCode |
注意
SDK 运行时出现了(网络或媒体相关的)错误。SDK 通常无法自动恢复,你可能需要干预。
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamRemove(
RTCStream stream,
StreamRemoveReason reason
)
javaDeprecated since 3.36 and will be deleted in 3.51, use onUserUnpublishStream and onUserUnpublishScreen instead.
房间内远端流移除回调。
房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | RTCStream | 流的属性,参看 RTCStream。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
void com.ss.bytertc.engine.handler.IRTCRoomEventHandler.onStreamAdd(RTCStream stream)
javaDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream and onUserPublishScreen instead.
房间内新流发布回调。
房间内的远端用户发布新的音视频流时,本地用户会收到此回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | RTCStream | 流的属性,详见 RTCStream 数据类型。 |
public abstract class com.ss.bytertc.ktv.IKTVPlayerEventHandler
javaKTV 播放器回调接口。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| abstract void | onPlayProgress |
| abstract void | onPlayStateChanged |
abstract void com.ss.bytertc.ktv.IKTVPlayerEventHandler.onPlayProgress(
@NonNull String musicId,
long progress
)
java音乐播放进度回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| musicId | @NonNull String | 音乐 ID。 |
| progress | long | 音乐播放进度,单位为毫秒。 |
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。 |
| errorCode | KTVPlayerErrorCode | 错误码,参看 KTVPlayerErrorCode。 |
注意
此回调被触发的时机汇总如下:
public interface com.ss.bytertc.engine.IAudioEffectPlayerEventHandler
javaIAudioEffectPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。
| 返回 | 名称 |
|---|---|
| void | onAudioEffectPlayerStateChanged |
void com.ss.bytertc.engine.IAudioEffectPlayerEventHandler.onAudioEffectPlayerStateChanged(
int effectId,
PlayerState state,
PlayerError error
)
java播放状态改变时回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectId | int | IAudioEffectPlayer 的 ID。通过 getAudioEffectPlayer 设置。 |
| state | PlayerState | 混音状态。参考 PlayerState。 |
| error | PlayerError | 错误码。参考 PlayerError。 |
public interface com.ss.bytertc.engine.live.IPushSingleStreamToCDNObserver
java单流转推直播观察者。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onStreamPushEvent |
void com.ss.bytertc.engine.live.IPushSingleStreamToCDNObserver.onStreamPushEvent(
ByteRTCStreamSinglePushEvent eventType,
String taskId,
int error
)
java单流转推直播状态回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | ByteRTCStreamSinglePushEvent | 任务状态, 参看 ByteRTCStreamSinglePushEvent |
| taskId | String | 任务 ID |
| error | int | 错误码,参看 ByteRTCTranscoderErrorCode |
public abstract class com.ss.bytertc.engine.mediaio.IRemoteEncodedVideoFrameObserver
java远端编码后视频数据监测器
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| abstract void | onRemoteEncodedVideoFrame |
abstract void com.ss.bytertc.engine.mediaio.IRemoteEncodedVideoFrameObserver.onRemoteEncodedVideoFrame(
RemoteStreamKey streamKey,
RTCEncodedVideoFrame encodedVideoFrame
)
java调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 收到的远端流信息,参看 RemoteStreamKey |
| encodedVideoFrame | RTCEncodedVideoFrame | 收到的远端视频帧信息,参看 RTCEncodedVideoFrame |
注意
encodedVideoFrame 只在回调函数作用域内有效,不要存储该参数并在其它函数内访问该参数的内存数据
public abstract class com.ss.bytertc.ktv.IKTVManagerEventHandler
javaKTV 事件回调接口。
| 返回 | 名称 |
|---|---|
| abstract void | onMusicListResult |
| abstract void | onSearchMusicResult |
| abstract void | onHotMusicResult |
| abstract void | onMusicDetailResult |
| abstract void | onDownloadSuccess |
| abstract void | onDownloadFailed |
| abstract void | onDownloadMusicProgress |
| abstract void | onClearCacheResult |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onMusicListResult(
MusicInfo[] musicInfos,
int totalSize,
KTVErrorCode errorCode
)
java歌曲列表回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| musicInfos | MusicInfo[] | 歌曲数据数组,参看 MusicInfo。 |
| totalSize | int | 数据条目总数。 |
| errorCode | KTVErrorCode | 错误码,成功时返回 0,其余值参看 KTVErrorCode。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onSearchMusicResult(
MusicInfo[] musicInfos,
int totalSize,
KTVErrorCode errorCode
)
java搜索歌曲结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| musicInfos | MusicInfo[] | 歌曲数据数组,参看 MusicInfo。 |
| totalSize | int | 数据条目总数。 |
| errorCode | KTVErrorCode | 错误码,成功时返回 0,其余值参看 KTVErrorCode。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onHotMusicResult(
HotMusicInfo[] hotMusics,
KTVErrorCode errorCode
)
java热榜歌曲结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| hotMusics | HotMusicInfo[] | 热榜歌曲数据数组,参看 HotMusicInfo。 |
| errorCode | KTVErrorCode | 错误码,成功时返回 0,其余值参看 KTVErrorCode。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onMusicDetailResult(
MusicInfo musicInfo,
KTVErrorCode errorCode
)
java歌曲详细信息回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| musicInfo | MusicInfo | 歌曲数据,参看 MusicInfo。 |
| errorCode | KTVErrorCode | 错误码,成功时返回 0,其余值参看 KTVErrorCode。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadSuccess(
int downloadId,
DownloadResult result
)
java下载成功回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| downloadId | int | 下载任务 ID。 |
| result | DownloadResult | 下载信息,参看 DownloadResult。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadFailed(
int downloadId,
KTVErrorCode errorCode
)
java下载失败回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| downloadId | int | 下载任务 ID。 |
| errorCode | KTVErrorCode | 错误码,成功时返回 0,其余值参看 KTVErrorCode。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onDownloadMusicProgress(
int downloadId,
int downloadProgress
)
java歌曲文件下载进度回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| downloadId | int | 下载任务 ID。 |
| downloadProgress | int | 下载进度百分比,取值范围 [0,100]。 |
abstract void com.ss.bytertc.ktv.IKTVManagerEventHandler.onClearCacheResult(KTVErrorCode errorCode)
java清理文件缓存结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| errorCode | KTVErrorCode | 错误码,非 0 为失败,参看 KTVErrorCode。 |
public interface com.ss.bytertc.engine.ISingScoringEventHandler
javaK 歌评分事件回调类。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onCurrentScoringInfo |
void com.ss.bytertc.engine.ISingScoringEventHandler.onCurrentScoringInfo(SingScoringRealtimeInfo info)
java实时评分信息回调。调用 startSingScoring 后,会收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| info | SingScoringRealtimeInfo | 实时评分信息。详见 SingScoringRealtimeInfo。 |
public interface com.ss.bytertc.engine.video.IFaceDetectionObserver
java人脸检测结果回调观察者
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onFaceDetectResult |
void com.ss.bytertc.engine.video.IFaceDetectionObserver.onFaceDetectResult(FaceDetectionResult result)
java特效 SDK 进行人脸检测结果的回调。
调用 enableFaceDetection 注册了 IFaceDetectionObserver,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | FaceDetectionResult | 人脸检测结果, 参看 FaceDetectionResult。 |
public interface com.ss.bytertc.engine.live.IMixedStreamObserver
java转推直播观察者。
| 返回 | 名称 |
|---|---|
| boolean | isSupportClientPushStream |
| void | onMixingEvent |
| void | onMixingAudioFrame |
| void | onMixingVideoFrame |
| void | onMixingDataFrame |
boolean com.ss.bytertc.engine.live.IMixedStreamObserver.isSupportClientPushStream()
java是否具有推流能力。
注意
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingEvent(
ByteRTCStreamMixingEvent eventType,
String taskId,
ByteRTCTranscoderErrorCode error,
MixedStreamType mixType
)
java转推直播状态回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | ByteRTCStreamMixingEvent | 转推直播任务状态, 参看 ByteRTCStreamMixingEvent |
| taskId | String | 转推直播任务 ID |
| error | ByteRTCTranscoderErrorCode | 转推直播错误码,参看 ByteRTCTranscoderErrorCode |
| mixType | MixedStreamType | 转推直播类型,参看 MixedStreamType |
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingAudioFrame(
String taskId,
byte[] audioFrame,
int frameNum,
long timeStampMs
)
java端云一体合流音频 PCM 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| audioFrame | byte[] | PCM 编码的合流音频数据帧 |
| frameNum | int | PCM 编码的音频数据帧数 |
| timeStampMs | long | 时间戳,单位毫秒 |
注意
收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingVideoFrame(
String taskId,
VideoFrame videoFrame
)
java端云一体合流视频 YUV 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| videoFrame | VideoFrame | YUV 合流视频数据帧,参看 VideoFrame |
注意
public void onMixingVideoFrame(String taskId, VideoFrame videoFrame){ videoFrame.release() }void com.ss.bytertc.engine.live.IMixedStreamObserver.onMixingDataFrame(
String taskId,
byte[] dataFrame,
long time
)
java端云一体合流视频 SEI 数据回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| dataFrame | byte[] | SEI 数据 |
| time | long | 时间信息 |
public interface com.ss.bytertc.engine.IMediaPlayerAudioFrameObserver
java本地音频文件混音的音频帧观察者。
| 返回 | 名称 |
|---|---|
| void | onFrame |
void com.ss.bytertc.engine.IMediaPlayerAudioFrameObserver.onFrame(
int playerId,
IAudioFrame frame
)
java当本地音频文件混音时,回调播放的音频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| playerId | int | - |
| frame | IAudioFrame | 参看 IAudioFrame。 |
public interface com.ss.bytertc.engine.IAudioFileFrameObserver
java本地音频文件混音的音频帧观察者。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onAudioFileFrame |
void com.ss.bytertc.engine.IAudioFileFrameObserver.onAudioFileFrame(
int mixID,
IAudioFrame audioFrame
)
java当本地音频文件混音时,回调播放的音频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixID | int | 混音 ID。 |
| audioFrame | IAudioFrame | 参看 IAudioFrame。 |
public interface com.ss.bytertc.engine.live.ILiveTranscodingObserver
java转推直播观察者。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| boolean | isSupportClientPushStream |
| void | onStreamMixingEvent |
| void | onMixingAudioFrame |
| void | onMixingVideoFrame |
| void | onMixingDataFrame |
boolean com.ss.bytertc.engine.live.ILiveTranscodingObserver.isSupportClientPushStream()
java是否具有推流能力。
注意
如果需要开启端云一体转推直播功能,你必须确保你的 App 包含 librtmp,具有推流能力。此时,设置该回调为 true。
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onStreamMixingEvent(
ByteRTCStreamMixingEvent eventType,
String taskId,
ByteRTCTranscoderErrorCode error,
ByteRTCStreamMixingType mixType
)
java转推直播状态回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| eventType | ByteRTCStreamMixingEvent | 转推直播任务状态, 参看 ByteRTCStreamMixingEvent |
| taskId | String | 转推直播任务 ID |
| error | ByteRTCTranscoderErrorCode | 转推直播错误码,参看 ByteRTCTranscoderErrorCode |
| mixType | ByteRTCStreamMixingType | 转推直播类型,参看 ByteRTCStreamMixingType |
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingAudioFrame(
String taskId,
byte[] audioFrame,
int frameNum,
long timeStampMs
)
java端云一体合流音频 PCM 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| audioFrame | byte[] | PCM 编码的合流音频数据帧 |
| frameNum | int | PCM 编码的音频数据帧数 |
| timeStampMs | long | 时间戳,单位毫秒 |
注意
收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingVideoFrame(
String taskId,
VideoFrame videoFrame
)
java端云一体合流视频 YUV 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| videoFrame | VideoFrame | YUV 合流视频数据帧,参看 VideoFrame |
注意
public void onMixingVideoFrame(String taskId, VideoFrame videoFrame){ videoFrame.release() }void com.ss.bytertc.engine.live.ILiveTranscodingObserver.onMixingDataFrame(
String taskId,
byte[] dataFrame,
long time
)
java端云一体合流视频 SEI 数据回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID |
| dataFrame | byte[] | SEI 数据 |
| time | long | 时间信息 |
public interface com.ss.bytertc.engine.handler.IRTCASREngineEventHandler
java语音识别服务使用状态回调
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onSuccess |
| void | onMessage |
| void | onError |
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onSuccess()
java语音识别服务开启成功回调
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onMessage(String message)
java语音转文字成功后回调,该回调返回识别后的全量消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | String | 识别完成后得到的文字消息 |
注意
若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。
void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onError(
int errorCode,
String errorMessage
)
java当语音识别服务内部发生错误事件时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| errorCode | int | 错误码
|
| errorMessage | String | 错误原因说明。 |
public interface com.ss.bytertc.engine.mediaio.ILocalEncodedVideoFrameObserver
java本地视频帧监测器
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onLocalEncodedVideoFrame |
void com.ss.bytertc.engine.mediaio.ILocalEncodedVideoFrameObserver.onLocalEncodedVideoFrame(
StreamIndex streamIndex,
RTCEncodedVideoFrame encodedVideoFrame
)
java调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 本地视频帧类型,参看 StreamIndex |
| encodedVideoFrame | RTCEncodedVideoFrame | 本地视频帧信息,参看 RTCEncodedVideoFrame |
注意
encodedVideoFrame 只在回调函数作用域内有效,不要存储该参数并在其它函数内访问该参数的内存数据
public abstract class com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler
java自定义编码帧回调类
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| abstract void | onStart |
| abstract void | onStop |
| abstract void | onRateUpdate |
| abstract void | onRequestKeyFrame |
| abstract void | onActiveVideoLayer |
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onStart(StreamIndex index)
java提示自定义编码帧可以开始推送的回调。
收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 可以推送的编码流的属性,参看 StreamIndex |
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onStop(StreamIndex index)
java当收到该回调时,你需停止向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需停止推送的编码流的属性,参看 StreamIndex |
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onRateUpdate(
StreamIndex streamIndex,
int videoIndex,
int fps,
int bitrateKbps
)
java当自定义编码流的帧率或码率发生变化时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 发生变化的编码流的属性,参看 StreamIndex |
| videoIndex | int | 对应编码流的下标 |
| fps | int | 变化后的帧率,单位:fps |
| bitrateKbps | int | 变化后的码率,单位:kbps |
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onRequestKeyFrame(
StreamIndex streamIndex,
int videoIndex
)
java提示流发布端需重新生成关键帧的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 远端编码流的属性,参看 StreamIndex |
| videoIndex | int | 对应编码流的下标 |
abstract void com.ss.bytertc.engine.handler.IExternalVideoEncoderEventHandler.onActiveVideoLayer(
StreamIndex streamIndex,
int videoIndex,
boolean active
)
javaAvailable since 3.56
作为自定义编码视频流的发送端,你会在视频流可发送状态发生变化时,收到此回调。
你可以根据此回调的提示,仅对可发送的视频流进行编码,以降低本端视频编码性能消耗。此回调会根据多个因素综合判断触发,包括:本端设备性能和本端网络性能,以及按需订阅场景下,远端用户是否订阅。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 远端编码流的属性,参看 StreamIndex |
| videoIndex | int | 对应编码流的下标 |
| active | boolean | 该路流可发送状态 |
注意
要收到此回调,必须调用 setVideoSourceType 设置视频源是自定义编码,且通过 setExternalVideoEncoderEventHandler 设置了回调句柄。
public interface com.ss.bytertc.engine.IMediaPlayerEventHandler
javaIMediaPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。
| 返回 | 名称 |
|---|---|
| void | onMediaPlayerStateChanged |
| void | onMediaPlayerPlayingProgress |
void com.ss.bytertc.engine.IMediaPlayerEventHandler.onMediaPlayerStateChanged(
int playerId,
PlayerState state,
PlayerError error
)
java播放状态改变时回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| playerId | int | IMediaPlayer 的 ID。通过 getMediaPlayer 设置。 |
| state | PlayerState | 混音状态。参考 PlayerState。 |
| error | PlayerError | 错误码。参考 PlayerError。 |
void com.ss.bytertc.engine.IMediaPlayerEventHandler.onMediaPlayerPlayingProgress(
int playerId,
long progress
)
java播放进度周期性回调。回调周期通过 setProgressInterval 设置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| playerId | int | IMediaPlayer 的 ID。通过 getMediaPlayer 设置。 |
| progress | long | 进度。单位 ms。 |
public interface com.ss.bytertc.engine.IAudioFrameObserver
java音频数据回调观察者
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
本接口类中的单个回调的数据量为 20 ms 的数据量。回调周期在 20 ms 上下浮动。
| 返回 | 名称 |
|---|---|
| void | onRecordAudioFrame |
| void | onPlaybackAudioFrame |
| void | onRemoteUserAudioFrame |
| void | onMixedAudioFrame |
void com.ss.bytertc.engine.IAudioFrameObserver.onRecordAudioFrame(IAudioFrame audioFrame)
java返回麦克风录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频数据, 参看 IAudioFrame。 |
void com.ss.bytertc.engine.IAudioFrameObserver.onPlaybackAudioFrame(IAudioFrame audioFrame)
java返回订阅的所有远端用户混音后的音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频数据, 参看 IAudioFrame。 |
void com.ss.bytertc.engine.IAudioFrameObserver.onRemoteUserAudioFrame(
RemoteStreamKey streamKey,
IAudioFrame audioFrame
)
java返回远端单个用户的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey。 |
| audioFrame | IAudioFrame | 音频数据,参看 IAudioFrame。 |
注意
此回调在播放线程调用。不要在此回调中做任何耗时的事情,否则可能会影响整个音频播放链路。
void com.ss.bytertc.engine.IAudioFrameObserver.onMixedAudioFrame(IAudioFrame audioFrame)
java返回本地麦克风录制和订阅的所有远端用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频数据, 参看 IAudioFrame。 |
public interface com.ss.bytertc.engine.handler.IRTCEncryptionHandler
java加密事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| byte[] | onEncryptData |
| byte[] | onDecryptData |
byte[] com.ss.bytertc.engine.handler.IRTCEncryptionHandler.onEncryptData(byte[] data)
java自定义加密。
使用设定的自定义加密方式,对编码后传输前的音视频帧数据进行加密。
暂不支持对原始音视频帧进行加密。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | byte[] | 未加密的数据。 |
返回值
加密后的数据
byte[] com.ss.bytertc.engine.handler.IRTCEncryptionHandler.onDecryptData(byte[] data)
java自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | byte[] | 加密过的数据。 |
返回值
解密后的数据
public interface com.ss.bytertc.engine.IMediaPlayerCustomSourceProvider
java内存播放数据源回调
| 返回 | 名称 |
|---|---|
| int | onReadData |
| long | onSeek |
int com.ss.bytertc.engine.IMediaPlayerCustomSourceProvider.onReadData(
ByteBuffer buffer,
int bufferSize
)
javaAvailable since 3.53
调用 openWithCustomSource 接口播放用户传入的内存音频数据时,会触发此回调,用户需要写入音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| buffer | ByteBuffer | 内存地址。在该地址中写入音频数据,写入音频数据的大小不超过 bufferSize 中填入的数值。支持的音频数据格式有: mp3,aac,m4a,3gp,wav。 |
| bufferSize | int | 音频数据大小,单位为字节。如果你想停止播放内存音频数据,可在 bufferSize 中填入小于或等于 0 的数,此时 SDK 会停止调用此接口。 |
返回值
返回实际读取的音频数据大小。
注意
若 openWithCustomSource 接口调用失败,请在 buffer 和 bufferSize 两个参数中填入 0。 此时 SDK 会停止调用此接口。
long com.ss.bytertc.engine.IMediaPlayerCustomSourceProvider.onSeek(
long offset,
MediaPlayerCustomSourceSeekWhence whence
)
javaAvailable since 3.53
根据设置好的内存音频数据的读取位置和读取偏移量对音频数据进行偏移,以便 SDK 读取和分析音频数据。
在调用 openWithCustomSource 接口传入内存音频数据,或者调用 setPosition 设置了音频数据的起始播放位置后,SDK 会对音频数据进行读取和分析,此时会触发该回调,你需要根据参数中设置的起始读取位置和偏移量进行操作。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| offset | long | 音频数据读取偏移量,单位为字节,取值可正可负。 |
| whence | MediaPlayerCustomSourceSeekWhence | 音频数据的起始读取位置。参看 MediaPlayerCustomSourceSeekWhence |
返回值
定位成功,返回偏移后的位置信息,或返回音频数据的大小。
定位失败,返回 -1。
public abstract class com.ss.bytertc.engine.handler.IRTCVideoEventHandler
java音视频引擎事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onWarning(int warn)
java发生警告回调。
SDK 运行时出现了警告。SDK 通常会自动恢复,警告信息可以忽略。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告代码,参见 WarningCode |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onError(int err)
java发生错误回调。
SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。
你可能需要干预.
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误代码,详情定义见: ErrorCode |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onDeadLockError(DeadLockMsg deadLockMsg)
java当 RTC 内部线程发生 block 时,会触发回调。线程名与持续次数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deadLockMsg | DeadLockMsg | 错误消息 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onExtensionAccessError(
String extensionName,
String msg
)
javaAvailable since 3.52
当访问插件失败时,收到此回调。
RTC SDK 将一些功能封装成插件。当使用这些功能时,如果插件不存在,功能将无法使用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| extensionName | String | 插件名字 |
| msg | String | 失败说明 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSysStats(SysStats stats)
java每 2 秒发生回调,通知当前 cpu,内存使用的信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | SysStats | cpu,内存信息。详见 SysStats 数据类型。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkTypeChanged(int type)
javaSDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | int | 网络类型。
|
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStartVideoCapture(
String roomId,
String uid
)
java房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 开启视频采集的远端用户所在的房间 ID |
| uid | String | 开启视频采集的远端用户 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStopVideoCapture(
String roomId,
String uid
)
java房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。
若发布视频数据前未开启采集,房间内所有可见用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 关闭视频采集的远端用户所在的房间 ID |
| uid | String | 关闭视频采集的远端用户 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onCreateRoomStateChanged(
String roomId,
int errorCode
)
java创建房间失败回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID。 |
| errorCode | int | 创建房间错误码,具体原因参看 ErrorCode。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStartAudioCapture(
String roomId,
String uid
)
java房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 开启音频采集的远端用户所在的房间 ID |
| uid | String | 开启音频采集的远端用户 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserStopAudioCapture(
String roomId,
String uid
)
java房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 关闭音频采集的远端用户所在的房间 ID |
| uid | String | 关闭音频采集的远端用户 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalAudioStateChanged(
LocalAudioStreamState state,
LocalAudioStreamError error
)
java本地音频流的状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | LocalAudioStreamState | 本地音频设备的状态,详见 LocalAudioStreamState |
| error | LocalAudioStreamError | 本地音频流状态改变时的错误码,详见 LocalAudioStreamError |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteAudioStateChanged(
RemoteStreamKey key,
RemoteAudioState state,
RemoteAudioStateChangeReason reason
)
java用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端流信息, 详见 RemoteStreamKey |
| state | RemoteAudioState | 远端音频流状态,详见 RemoteAudioState |
| reason | RemoteAudioStateChangeReason | 远端音频流状态改变的原因,详见 RemoteAudioStateChangeReason |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalVideoStateChanged(
StreamIndex streamIndex,
LocalVideoStreamState state,
LocalVideoStreamError error
)
java本地视频流的状态发生改变时,收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 流属性,参看 StreamIndex |
| state | LocalVideoStreamState | 本地视频流状态,参看 LocalVideoStreamState |
| error | LocalVideoStreamError | 本地视频状态改变时的错误码,参看 LocalVideoStreamError |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteVideoStateChanged(
RemoteStreamKey streamKey,
RemoteVideoState videoState,
RemoteVideoStateChangeReason videoStateReason
)
java远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 远端视频流信息,房间、用户 ID、流属性等,参看 RemoteStreamKey |
| videoState | RemoteVideoState | 远端视频流状态,参看 RemoteVideoState |
| videoStateReason | RemoteVideoStateChangeReason | 远端视频流状态改变原因,参看 RemoteVideoStateChangeReason |
注意
本回调仅适用于主流,不适用于屏幕流。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteVideoFrameRendered(
RemoteStreamKey remoteStreamKey,
VideoFrameInfo frameInfo
)
javaSDK 内部渲染成功远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey |
| frameInfo | VideoFrameInfo | 视频帧信息,参看 VideoFrameInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteVideoFrameDecoded(
RemoteStreamKey remoteStreamKey,
VideoFrameInfo frameInfo
)
javaSDK 接收并解码远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey |
| frameInfo | VideoFrameInfo | 视频帧信息,参看 VideoFrameInfo |
注意
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstLocalVideoFrameCaptured(
StreamIndex streamIndex,
VideoFrameInfo frameInfo
)
javaRTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 流属性,参看 StreamIndex |
| frameInfo | VideoFrameInfo | 视频信息,参看 VideoFrameInfo |
注意
对于采集到的本地视频帧,你可以调用 setLocalVideoCanvas 或 setLocalVideoSink 在本地渲染。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalVideoSizeChanged(
StreamIndex streamIndex,
VideoFrameInfo frameInfo
)
java本地预览视频大小或旋转信息发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 流属性,参看 StreamIndex |
| frameInfo | VideoFrameInfo | 视频帧信息,参看 VideoFrameInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteVideoSizeChanged(
RemoteStreamKey remoteStreamKey,
VideoFrameInfo frameInfo
)
java远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey。 |
| frameInfo | VideoFrameInfo | 视频帧信息,参看 VideoFrameInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onConnectionStateChanged(
int state,
int reason
)
java回调 SDK 与信令服务器连接状态相关事件。当 SDK 与信令服务器的网络连接状态改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 SDK 与信令服务器连接状态。 详细定义参见 ConnectionState |
| reason | int | 引起信令服务器连接状态发生改变的原因,目前未启用固定为 -1 。 |
注意
更多信息参见 连接状态提示。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioRouteChanged(AudioRoute route)
java音频播放路由变化时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| route | AudioRoute | 新的音频播放路由,详见 AudioRoute |
注意
插拔音频外设,或调用 setAudioRoute 都可能触发音频路由切换,详见移动端设置音频路由 。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstLocalAudioFrame(StreamIndex streamIndex)
java发布音频流时,采集到第一帧音频帧,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 音频流属性, 详见 StreamIndex |
注意
如果发布音频流时,未开启本地音频采集,SDK 会推送静音帧,也会收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstRemoteAudioFrame(RemoteStreamKey remoteStreamKey)
java接收到来自远端某音频流的第一帧时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 远端音频流信息, 详见 RemoteStreamKey |
注意
用户刚收到房间内订阅的每一路音频流时,都会收到该回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLogReport(
String logType,
JSONObject logContent
)
java上报日志时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| logType | String | 日志类型。 |
| logContent | JSONObject | 日志内容。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSEIMessageReceived(
RemoteStreamKey remoteStreamKey,
ByteBuffer message
)
java收到通过调用 sendSEIMessage 发送带有 SEI 消息的视频帧时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 包含 SEI 发送者的用户名,所在的房间名和媒体流,详见 RemoteStreamKey |
| message | ByteBuffer | 收到的 SEI 消息内容 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSEIStreamUpdate(
RemoteStreamKey remoteStreamKey,
SEIStreamUpdateEvent event
)
java黑帧视频流发布状态回调。
在语音通话场景下,本地用户调用 sendSEIMessage 通过黑帧视频流发送 SEI 数据时,流的发送状态会通过该回调通知远端用户。
你可以通过此回调判断携带 SEI 数据的视频帧为黑帧,从而不对该视频帧进行渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| remoteStreamKey | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey。 |
| event | SEIStreamUpdateEvent | 黑帧视频流状态,参看 SEIStreamUpdateEvent |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLoginResult(
String uid,
int errorCode,
int elapsed
)
java登录结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 登录用户 ID |
| errorCode | int | 登录结果 详见 LoginErrorCode。 |
| elapsed | int | 从调用 login 接口开始到返回结果所用时长。 单位为 ms。 |
注意
调用 login 后,会收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLogout(int reason)
java登出结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| reason | int | 用户登出的原因,参看 LogoutReason |
注意
在以下两种情况下会收到此回调:调用 logout 接口主动退出;或其他用户以相同 UserId 进行 login 导致本地用户被动登出。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onServerParamsSetResult(int error)
java设置应用服务器参数的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| error | int | 设置结果
|
注意
调用 setServerParams 后,会收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onGetPeerOnlineStatus(
String peerUserId,
int status
)
java查询对端或本端用户登录状态的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| peerUserId | String | 需要查询的用户 ID |
| status | int | 查询的用户登录状态 详见 UserOnlineStatus. |
注意
必须先调用 getPeerOnlineStatus,才能收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMessageReceivedOutsideRoom(
String uid,
String message
)
java收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者 ID |
| message | String | 收到的文本消息内容 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserBinaryMessageReceivedOutsideRoom(
String uid,
ByteBuffer message
)
java收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息发送者 ID |
| message | ByteBuffer | 收到的二进制消息内容 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMessageSendResultOutsideRoom(
long msgid,
int error
)
java给房间外指定的用户发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | long | 本条消息的 ID 所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | int | 消息发送结果 详见 UserMessageSendResult。 |
注意
当调用 sendUserMessageOutsideRoom 或 sendUserBinaryMessageOutsideRoom 发送消息后,会收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onServerMessageSendResult(
long msgid,
int error,
ByteBuffer message
)
java给应用服务器发送消息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | long | 本条消息的 ID 所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | int | 消息发送结果,详见 UserMessageSendResult。 |
| message | ByteBuffer | 应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。消息不超过 64 KB。 |
注意
本回调为异步回调。当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkDetectionResult(
NetworkDetectionLinkType type,
int quality,
int rtt,
double lostRate,
int bitrate,
int jitter
)
java通话前网络探测结果。
成功调用 startNetworkDetection 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | NetworkDetectionLinkType | 探测网络类型为上行/下行 |
| quality | int | 探测网络的质量,参看 NetworkQuality。 |
| rtt | int | 探测网络的 RTT,单位:ms |
| lostRate | double | 探测网络的丢包率 |
| bitrate | int | 探测网络的带宽,单位:kbps |
| jitter | int | 探测网络的抖动,单位:ms |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkDetectionStopped(NetworkDetectionStopReason reason)
java通话前网络探测结束
以下情况将停止探测并收到本一次本回调:
当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调;
当收到远端/本端音频首帧后,停止探测;
当探测超过 3 分钟后,停止探测;
当探测链路断开一定时间之后,停止探测。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| reason | NetworkDetectionStopReason | 停止探测的原因类型,参考 NetworkDetectionStopReason |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSimulcastSubscribeFallback(RemoteStreamSwitch event)
java音视频流因网络环境变化等原因发生回退,或从回退中恢复时,触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | RemoteStreamSwitch | 音视频流发生变化的信息。参看 RemoteStreamSwitch。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPerformanceAlarms(
PerformanceAlarmMode mode,
String roomId,
PerformanceAlarmReason reason,
SourceWantedData data
)
java本地未通过 setPublishFallbackOption 开启发布性能回退,检测到设备性能不足时,收到此回调。
本地通过 setPublishFallbackOption 开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | PerformanceAlarmMode | 指示本地是否开启发布回退功能。参看 PerformanceAlarmMode
|
| roomId | String |
|
| reason | PerformanceAlarmReason | 告警原因,参看 PerformanceAlarmReason |
| data | SourceWantedData | 性能回退相关数据,详见 SourceWantedData。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioFrameSendStateChanged(
String roomId,
RtcUser user,
FirstFrameSendState state
)
java本地音频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 音频发布用户所在的房间 ID |
| user | RtcUser | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoFrameSendStateChanged(
String roomId,
RtcUser user,
FirstFrameSendState state
)
java本地视频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 视频发布用户所在的房间 ID |
| user | RtcUser | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onScreenVideoFrameSendStateChanged(
String roomId,
RtcUser user,
FirstFrameSendState state
)
java屏幕共享流的视频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 屏幕视频发布用户所在的房间 ID |
| user | RtcUser | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioFramePlayStateChanged(
String roomId,
RtcUser user,
FirstFramePlayState state
)
java音频首帧播放状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 音频发布用户所在的房间 ID |
| user | RtcUser | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoFramePlayStateChanged(
String roomId,
RtcUser user,
FirstFramePlayState state
)
java视频首帧播放状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 视频发布用户所在的房间 ID |
| user | RtcUser | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onScreenVideoFramePlayStateChanged(
String roomId,
RtcUser user,
FirstFramePlayState state
)
java屏幕共享流视频首帧播放状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 屏幕视频发布用户所在的房间 ID |
| user | RtcUser | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioDeviceStateChanged(
String deviceID,
AudioDeviceType deviceType,
int deviceState,
int deviceError
)
java音频设备状态回调。提示音频采集、音频播放等媒体设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | AudioDeviceType | 设备类型,详见 AudioDeviceType。 |
| deviceState | int | 设备状态,详见 MediaDeviceState。 |
| deviceError | int | 设备错误类型,详见 MediaDeviceError。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoDeviceStateChanged(
String deviceID,
VideoDeviceType deviceType,
int deviceState,
int deviceError
)
java视频设备状态回调。提示摄像头视频采集、屏幕视频采集等媒体设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | VideoDeviceType | 设备类型,详见 VideoDeviceType。 |
| deviceState | int | 设备状态,详见 MediaDeviceState。 |
| deviceError | int | 设备错误类型,详见 MediaDeviceError。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioDeviceWarning(
String deviceID,
AudioDeviceType deviceType,
int deviceWarning
)
java音频设备警告回调。音频设备包括音频采集设备、音频渲染设备等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | AudioDeviceType | 参看 AudioDeviceType |
| deviceWarning | int | 参看 MediaDeviceWarning |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onVideoDeviceWarning(
String deviceID,
VideoDeviceType deviceType,
int deviceWarning
)
java视频设备警告回调,包括视频采集等设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | VideoDeviceType | 参看 VideoDeviceType |
| deviceWarning | int | 参看 MediaDeviceWarning |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRecordingStateUpdate(
StreamIndex type,
RecordingState state,
RecordingErrorCode errorCode,
RecordingInfo info
)
java获取本地录制状态回调。
该回调由 startFileRecording 或 stopFileRecording 触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 录制流的流属性,参看 StreamIndex |
| state | RecordingState | 录制状态,参看 RecordingState |
| errorCode | RecordingErrorCode | 录制错误码,参看 RecordingErrorCode |
| info | RecordingInfo | 录制文件的详细信息,参看 RecordingInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRecordingProgressUpdate(
StreamIndex type,
RecordingProgress progress,
RecordingInfo info
)
java本地录制进度回调。
该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 录制流的流属性,参看 StreamIndex |
| progress | RecordingProgress | 录制进度,参看 RecordingProgress |
| info | RecordingInfo | 录制文件的详细信息,参看 RecordingInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioRecordingStateUpdate(
AudioRecordingState state,
AudioRecordingErrorCode errorCode
)
java调用 startAudioRecording 或 stopAudioRecording 改变音频文件录制状态时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | AudioRecordingState | 录制状态,参看 AudioRecordingState |
| errorCode | AudioRecordingErrorCode | 录制错误码,参看 AudioRecordingErrorCode |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioMixingPlayingProgress(
int mixId,
long progress
)
java混音音频文件播放进度回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| progress | long | 当前混音音频文件播放进度,单位毫秒 |
注意
调用 setAudioMixingProgressInterval 将时间间隔设为大于 0 的值后,或调用 startAudioMixing 将 AudioMixingConfig 中的时间间隔设为大于 0 的值后,SDK 会按照设置的时间间隔回调该事件。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalAudioPropertiesReport(LocalAudioPropertiesInfo[] audioPropertiesInfos)
java调用 enableAudioPropertiesReport 后,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频,屏幕音频和本地混音音频信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioPropertiesInfos | LocalAudioPropertiesInfo[] | 本地音频信息,详见 LocalAudioPropertiesInfo。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioPlaybackDeviceTestVolume(int volume)
java回调音频设备测试时的播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频设备测试播放音量。取值范围:[0,255] |
注意
调用 startAudioPlaybackDeviceTest 或 startAudioDeviceRecordTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onRemoteAudioPropertiesReport(
RemoteAudioPropertiesInfo[] audioPropertiesInfos,
int totalRemoteVolume
)
java远端用户进房后,本地调用 enableAudioPropertiesReport ,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
远端用户的音频包括使用 RTC SDK 内部机制/自定义机制采集的麦克风音频和屏幕音频。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioPropertiesInfos | RemoteAudioPropertiesInfo[] | 远端音频信息,其中包含音频流属性、房间 ID、用户 ID ,详见 RemoteAudioPropertiesInfo。 |
| totalRemoteVolume | int | 订阅的所有远端流的总音量。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onActiveSpeaker(
String roomId,
String uid
)
java调用 enableAudioPropertiesReport 后,根据设置的 AudioPropertiesConfig.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID |
| uid | String | 最活跃用户(ActiveSpeaker)的用户 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onStreamSyncInfoReceived(
RemoteStreamKey streamKey,
StreamSycnInfoConfig.SyncInfoStreamType streamType,
ByteBuffer data
)
java音频流同步信息回调。可以通过此回调,在远端用户调用 sendStreamSyncInfo 发送音频流同步消息后,收到远端发送的音频流同步信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 远端流信息,详见 RemoteStreamKey。 |
| streamType | StreamSycnInfoConfig.SyncInfoStreamType | 媒体流类型,详见 SyncInfoStreamType。 |
| data | ByteBuffer | 消息内容。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPushPublicStreamResult(
String roomId,
String publicStreamId,
PublicStreamErrorCode error
)
java公共流发布结果回调。
调用 startPushPublicStream 接口发布公共流后,启动结果通过此回调方法通知用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 发布公共流的房间 ID |
| publicStreamId | String | 公共流 ID |
| error | PublicStreamErrorCode | 公共流发布结果状态码。详见 PublicStreamErrorCode。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPlayPublicStreamResult(
String publicStreamId,
PublicStreamErrorCode error
)
java订阅公共流的结果回调
调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到启动结果和拉流过程中的错误。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| publicStreamId | String | 公共流 ID。 |
| error | PublicStreamErrorCode | 公共流订阅结果状态码。详见 PublicStreamErrorCode。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPublicStreamSEIMessageReceived(
String publicStreamId,
ByteBuffer message,
DataMessageSourceType sourceType
)
java回调公共流中包含的 SEI 信息。
调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到公共流中的 SEI 消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| publicStreamId | String | 公共流 ID。 |
| message | ByteBuffer | 收到的 SEI 消息内容。 通过调用客户端 sendSEIMessage 插入的 SEI 信息。 当公共流中的多路视频流均包含有 SEI 信息:SEI 不互相冲突时,将通过多次回调分别发送;SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。 |
| sourceType | DataMessageSourceType | SEI 消息类型,自 3.52.1 版本后固定为 0,自定义消息。参看 DataMessageSourceType。 |
注意
通过 Open API 插入的自定义信息,应通过回调 onPublicStreamDataMessageReceived 获取。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onPublicStreamDataMessageReceived(
String publicStreamId,
ByteBuffer message,
DataMessageSourceType sourceType
)
javaAvailable since 3.52
回调公共流中包含的数据信息。
调用 startPlayPublicStream 订阅公共流后,通过监听本回调获取公共流中的数据消息,包括调用 Open API 发送的 SEI 消息和音量回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| publicStreamId | String | 公共流 ID。 |
| message | ByteBuffer | 收到的数据消息内容,如下:
|
| sourceType | DataMessageSourceType | 数据消息来源,参看 DataMessageSourceType。 |
注意
通过调用客户端 API 插入的 SEI 信息,应通过回调 onPublicStreamSEIMessageReceived 获取。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstPublicStreamVideoFrameDecoded(
String publicStreamId,
VideoFrameInfo videoFrameInfo
)
java公共流的首帧视频解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| publicStreamId | String | 公共流 ID |
| videoFrameInfo | VideoFrameInfo | 视频帧信息,参看 VideoFrameInfo |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onFirstPublicStreamAudioFrame(String publicStreamId)
java公共流的音频首帧解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| publicStreamId | String | 公共流 ID |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onEchoTestResult(EchoTestResult result)
java关于音视频回路测试结果的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | EchoTestResult | 测试结果,参看 EchoTestResult |
注意
该回调触发的时机包括:
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onCloudProxyConnected(int interval)
java调用 startCloudProxy 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 从开启云代理到连接成功经过的时间,单位为 ms |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onNetworkTimeSynchronized()
java首次调用 getNetworkTimeInfo 后,SDK 内部启动网络时间同步,同步完成时会触发此回调。
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHardwareEchoDetectionResult(HardwareEchoDetectionResult hardwareEchoDetectionResult)
java通话前回声检测结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| hardwareEchoDetectionResult | HardwareEchoDetectionResult | 参见 HardwareEchoDetectionResult |
注意
MEDIA_DEVICE_WARNING_DETECT_LEAK_ECHO。void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onLocalProxyStateChanged(
LocalProxyType localProxyType,
LocalProxyState localProxyState,
LocalProxyError localProxyError
)
java本地代理状态发生改变回调。调用 setLocalProxy 设置本地代理后,SDK 会触发此回调,通知代理连接的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| localProxyType | LocalProxyType | 本地代理类型。参看 LocalProxyType。 |
| localProxyState | LocalProxyState | 本地代理状态。参看 LocalProxyState。 |
| localProxyError | LocalProxyError | 本地代理错误。参看 LocalProxyError。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onExternalScreenFrameUpdate(FrameUpdateInfo info)
java外部采集时,调用 setOriginalScreenVideoInfo 设置屏幕或窗口大小改变前的分辨率后,若屏幕采集模式为智能模式,你将收到此回调,根据 RTC 智能决策合适的帧率和分辨率积(宽*高)重新采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| info | FrameUpdateInfo | RTC 智能决策后合适的帧率和分辨率积(宽*高)。参看 FrameUpdateInfo。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMuteAudio(
String roomId,
String uid,
MuteState muteState
)
javaDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送音频流时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID |
| uid | String | 改变本地音频发送状态的用户 ID |
| muteState | MuteState | 发送状态,参看 MuteState |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onUserMuteVideo(
String roomId,
String uid,
MuteState muteState
)
javaDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送视频流时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID |
| uid | String | 暂停/恢复发送视频流的用户 ID。 |
| muteState | MuteState | 视频流的发送状态。参看 MuteState。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioPlaybackDeviceChanged(AudioPlaybackDevice device)
javaDeprecated since 3.38 and will be deleted in 3.51, use onAudioRouteChanged instead.
音频播放设备变化时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device | AudioPlaybackDevice | 新的音频设备,详见 AudioPlaybackDevice |
注意
音频设备设置与音频路由策略,详见 setAudioPlaybackDevice
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onMediaDeviceStateChanged(
String deviceID,
int deviceType,
int deviceState,
int deviceError
)
javaDeprecated since 3.37 and will be deleted in 3.51, using onAudioDeviceStateChanged and onVideoDeviceStateChanged instead.
媒体设备状态回调。提示音频采集、音频播放、摄像头视频采集、屏幕视频采集四种媒体设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | int | 设备类型,详见 MediaDeviceType。 |
| deviceState | int | 设备状态,详见 MediaDeviceState。 |
| deviceError | int | 设备错误类型,详见 MediaDeviceError。 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onMediaDeviceWarning(
String deviceID,
int deviceType,
int deviceWarning
)
javaDeprecated since 3.37 and will be deleted in 3.51, using onAudioDeviceWarning and onVideoDeviceWarning instead.
媒体设备警告回调。媒体设备包括:音频采集设备、音频渲染设备、和视频采集设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | String | 设备 ID |
| deviceType | int | 参看 MediaDeviceType |
| deviceWarning | int | 参看 MediaDeviceWarning |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHttpProxyState(int state)
javaDeprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
HTTP 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 HTTP 代理连接状态 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onHttpsProxyState(int state)
javaDeprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
HTTPS 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 HTTPS 代理连接状态 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onSocks5ProxyState(
int state,
String cmd,
String proxyAddress,
String localAddress,
String remoteAddress
)
javaDeprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
SOCKS5 代理状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | SOCKS5 代理连接状态 |
| cmd | String | 代理连接的每一步操作命令 |
| proxyAddress | String | 代理地址信息 |
| localAddress | String | 当前连接使用的本地地址 |
| remoteAddress | String | 远端的连接地址 |
void com.ss.bytertc.engine.handler.IRTCVideoEventHandler.onAudioMixingStateChanged(
int mixId,
AudioMixingState state,
AudioMixingError error
)
javaDeprecated since 353. Use IMediaPlayerEventHandler and IAudioEffectPlayerEventHandler instead.
音频混音文件播放状态改变时回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID 使用 IAudioMixingManager 相关接口时传入的唯一 ID。 |
| state | AudioMixingState | 混音状态 其混音状态可参考: AudioMixingState。 |
| error | AudioMixingError | 错误码 详见 AudioMixingError。 |
注意
此回调会被触发的时机汇总如下:
public interface com.ss.bytertc.engine.video.ISnapshotResultCallback
java截图的回调。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| void | onTakeLocalSnapshotResult |
| void | onTakeRemoteSnapshotResult |
void com.ss.bytertc.engine.video.ISnapshotResultCallback.onTakeLocalSnapshotResult(
long taskId,
StreamIndex streamIndex,
Bitmap image,
int errorCode
)
java调用 takeLocalSnapshot 截取视频画面时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | long | 本地截图任务的编号。和 takeLocalSnapshot 的返回值一致。 |
| streamIndex | StreamIndex | 截图的视频流的属性,参看 StreamIndex。 |
| image | Bitmap | 截图。你可以保存为文件,或对其进行二次处理。截图失败时,为空。 |
| errorCode | int | 截图错误码:
|
void com.ss.bytertc.engine.video.ISnapshotResultCallback.onTakeRemoteSnapshotResult(
long taskId,
RemoteStreamKey streamKey,
Bitmap image,
int errorCode
)
java调用 takeRemoteSnapshot 截取视频画面时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | long | 远端截图任务的编号。和 takeRemoteSnapshot 的返回值一致。 |
| streamKey | RemoteStreamKey | 截图的视频流,参看 RemoteStreamKey。 |
| image | Bitmap | 截图。你可以保存为文件,或对其进行二次处理。截图失败时,为空。 |
| errorCode | int | 截图错误码:
|
public interface com.ss.bytertc.engine.IAudioFrameProcessor
java自定义音频处理器。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
| 返回 | 名称 |
|---|---|
| int | onProcessRecordAudioFrame |
| int | onProcessPlayBackAudioFrame |
| int | onProcessRemoteUserAudioFrame |
| int | onProcessEarMonitorAudioFrame |
| int | onProcessScreenAudioFrame |
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessRecordAudioFrame(IAudioFrame audioFrame)
java回调本地采集的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频帧地址,参看 IAudioFrame。 |
返回值
注意
enableAudioProcessor,并在参数中选择本地采集的音频,每 10 ms 收到此回调。int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessPlayBackAudioFrame(IAudioFrame audioFrame)
java回调远端音频混音的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor,并在参数中选择远端音频流的的混音音频时,每 10 ms 收到此回调。
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessRemoteUserAudioFrame(
RemoteStreamKey streamKey,
IAudioFrame audioFrame
)
java回调单个远端用户的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 音频流信息,参看 RemoteStreamKey |
| audioFrame | IAudioFrame | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor,并在参数中选择各个远端音频流时,,每 10 ms 收到此回调。
int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessEarMonitorAudioFrame(IAudioFrame audioFrame)
javaAvailable since 3.50
软件耳返音频数据的回调。你可根据此回调自定义处理音频。
软件耳返音频中包含通过调用 setVoiceReverbType 和 setVoiceChangerType 设置的音频特效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频帧地址。参看 IAudioFrame。 |
返回值
注意
enableAudioProcessor,并选择软件耳返音频,每 10 ms 收到此回调。int com.ss.bytertc.engine.IAudioFrameProcessor.onProcessScreenAudioFrame(IAudioFrame audioFrame)
java屏幕共享的音频帧地址回调。你可根据此回调自定义处理音频。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame | 音频帧地址,参看 IAudioFrame。 |
注意
调用 enableAudioProcessor,把返回给音频处理器的音频类型设置为屏幕共享音频后,每 10 ms 收到此回调。