public abstract class QHVCInteractiveEventHandler
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
QHVCInteractiveEventHandler.AudioVolumeInfo |
static class |
QHVCInteractiveEventHandler.LocalAudioStats |
static class |
QHVCInteractiveEventHandler.LocalVideoStats |
static class |
QHVCInteractiveEventHandler.RemoteAudioStats |
static class |
QHVCInteractiveEventHandler.RemoteVideoStats |
static class |
QHVCInteractiveEventHandler.RtcStats |
Constructor and Description |
---|
QHVCInteractiveEventHandler() |
Modifier and Type | Method and Description |
---|---|
void |
onAudioEffectFinished(int soundId)
音效播放已结束回调
当指定的音效播放结束后,会触发该回调。
|
void |
onAudioMixingFinished()
伴奏已播放结束的回调
当调用 startAudioMixing 播放伴奏音乐结束后,会触发此回调。
|
void |
onAudioQuality(java.lang.String uid,
int quality,
short delay,
short lost)
声音质量回调
在通话中,该回调方法每两秒触发一次,报告当前通话的(嘴到耳)音频质量。默认启用。
|
void |
onAudioVolumeIndication(QHVCInteractiveEventHandler.AudioVolumeInfo[] speakers,
int totalVolume)
说话声音音量提示回调
提示谁在说话及其音量,默认禁用。可以通过 enableAudioVolumeIndication 方法设置。
|
void |
onCameraReady()
摄像头启用回调
提示已成功打开摄像头,可以开始捕获视频。如果摄像头打开失败,可在 onError()中处理相应错误。
|
void |
onChangeClientRoleSuccess(int newClientRole,
int oldClientRole)
角色身份切换成功回调。
当调用setClientRole()方法切换角色身份时,切换成功后回调此方法。如果切换身份失败,会回调onError()。
注:只有加入频道成功之后切换身份才会有此回调。
|
void |
onConnectionInterrupted()
连接中断回调
该回调方法表示 SDK 和服务器失去了网络连接。与 onConnectionLost 回调的区别是:onConnectionInterrupted 回调在 SDK 刚失去和服务器连接时触发, onConnectionLost 在失
去连接且尝试自动重连失败后才触发。失去连接后,除非 App 主动调用 leaveChannel, SDK会一直自动重连。
注: 目前即构没有此回调
|
void |
onConnectionLost(int errCode)
连接丢失回调
该回调方法表示 SDK 和服务器失去了网络连接,并且尝试自动重连一段时间(默认 10 秒)后仍未连上。
|
void |
onError(int errType,
int errCode)
发生错误回调
表示 SDK 运行时出现了(网络或媒体相关的)错误。通常情况下, SDK 上报的错误意味着
SDK 无法自动恢复,需要 APP 干预或提示用户。例如启动通话失败时, SDK 会上报
ERR_START_CALL 错误。 APP 可以提示用户启动通话失败,并调用 leaveChannel 退出频
道。
|
void |
onFirstLocalVideoFrame(int width,
int height,
int elapsed)
本地视频显示回调
提示第一帧本地视频画面已经显示在屏幕上。
|
void |
onFirstRemoteVideoDecoded(java.lang.String uid,
int width,
int height,
int elapsed)
远端视频接收解码回调
收到第一帧远程视频流并解码成功时,触发此调用。应用程序可以在此回调中设置该用户的view。
|
void |
onFirstRemoteVideoFrame(java.lang.String uid,
int width,
int height,
int elapsed)
远端视频显示回调
第一帧远程视频显示在视图上时,触发此调用。应用程序可在此调用中获知出图时间( elapsed)。
|
void |
onJoinChannelSuccess(java.lang.String roomId,
java.lang.String uid,
int elapsed)
加入频道回调
表示客户端已经登入服务器,且分配了频道 ID 和用户 ID。频道 ID 的分配是根据 join() API 中
指定的频道名称。如果调用 join() 时并未指定用户 ID,服务器就会分配一个。
|
void |
onLeaveChannel(QHVCInteractiveEventHandler.RtcStats stats)
离开频道回调
应用程序调用 leaveChannel()方法时, SDK 提示应用程序离开频道成功。在该回调方法中,应用程序可以得到此次通话的总通话时长、 SDK 收发数据的流量等信息。
|
void |
onLoadEngineSuccess(java.lang.String roomId,
java.lang.String uid)
加载互动直播引擎数据成功回调
该回调方法表示SDK加载引擎数据成功。该回调成功后,业务可以进行一系列参数的设置,之后调用joinChannel以及后续操作。
|
void |
onLocalAudioStats(QHVCInteractiveEventHandler.LocalAudioStats localAudioStats) |
void |
onLocalVideoStats(QHVCInteractiveEventHandler.LocalVideoStats stats) |
void |
onNetworkQuality(java.lang.String uid,
int txQuality,
int rxQuality)
回调通知当前网络质量
//注: 声网专用
|
void |
onRejoinChannelSuccess(java.lang.String roomId,
java.lang.String uid,
int elapsed)
重新加入频道回调
有时候由于网络原因,客户端可能会和服务器失去连接, SDK 会进行自动重连,自动重连成功后触发此回调方法。
|
void |
onRemoteAudioStats(QHVCInteractiveEventHandler.RemoteAudioStats remoteAudioStats) |
void |
onRemoteVideoStats(QHVCInteractiveEventHandler.RemoteVideoStats stats) |
void |
onRtcStats(QHVCInteractiveEventHandler.RtcStats stats)
统计数据回调
该回调定期上报SDK的运行时的状态,每2-3秒触发一次。
|
void |
onUserEnableVideo(java.lang.String uid,
boolean enabled)
其他用户启用/关闭视频
提示有其他用户启用/关闭了视频功能。关闭视频功能是指该用户只能进行语音通话,不能显示、发送自己的视频,也不能接收、显示别人的视频。
|
void |
onUserJoined(java.lang.String uid,
int elapsed)
其他用户加入当前频道回调
提示有用户加入了频道。如果该客户端加入频道时已经有人在频道中, SDK 也会向应用程序
上报这些已在频道中的用户。
|
void |
onUserMuteAudio(java.lang.String uid,
boolean muted)
用户静音回调
提示有其他用户将他的音频流静音/取消静音。
|
void |
onUserMuteVideo(java.lang.String uid,
boolean muted)
其他用户停止/重启视频回调
提示有其他用户暂停/恢复了视频流的发送。
|
void |
onUserOffline(java.lang.String uid,
int reason)
其他用户离开当前频道回调
提示有用户离开了频道(或掉线)。
注: SDK 判断用户离开频道(或掉线)的依据是超时:在一定时间内( 15 秒)没有收到对方
的任何数据包,判定为对方掉线。在网络较差的情况下,可能会有误报。建议可靠的掉线检测
应该由信令来做。
|
void |
onVideoStopped()
视频功能停止回调
提示视频功能已停止。应用程序如需在停止视频后对 view 做其他处理(例如显示其他画面),可以在这个回调中进行。
|
void |
onWarning(int warn)
发生警告回调
该回调方法表示 SDK 运行时出现了(网络或媒体相关的)警告。通常情况下, SDK 上报的警
告信息应用程序可以忽略, SDK 会自动恢复。例如和服务器失去连接时, SDK 可能会上报
ERR_OPEN_CHANNEL_TIMEOUT 警告,同时自动尝试重连。
|
public void onLoadEngineSuccess(java.lang.String roomId, java.lang.String uid)
roomId
- 房间Iduid
- 用户 IDpublic void onJoinChannelSuccess(java.lang.String roomId, java.lang.String uid, int elapsed)
roomId
- 房间Iduid
- 用户 ID。elapsed
- 从joinChannel 开始到该事件产生的延迟(毫秒)public void onRejoinChannelSuccess(java.lang.String roomId, java.lang.String uid, int elapsed)
roomId
- 房间Iduid
- 用户 IDelapsed
- 从 joinChannel 开始到该事件产生的延迟(毫秒)public void onWarning(int warn)
warn
- 警告代码public void onError(int errType, int errCode)
errType
- 错误类型
ErrorType.JOIN_ERR(3601): 加入频道时错误
ErrorType.PUBLISH_ERR(3602): 连麦中错误errCode
- 错误代码:
ERR_INVALID_VENDOR_KEY(101):无效的 App ID。
ERR_INVALID_CHANNEL_NAME(102): 无效的频道名。
ERR_LOOKUP_CHANNEL_REJECTED(105): 查找频道失败,意味着服务器主动拒绝了请求。
ERR_OPEN_CHANNEL_REJECTED(107): 加入频道失败,意味着媒体服务器主动拒绝了请求。
ERR_LOAD_MEDIA_ENGINE(1001): 加载媒体引擎失败。
ERR_START_CALL( 1002) : 打开本地音视频设备、启动通话失败。
ERR_START_CAMERA(1003): 打开本地摄像头失败。
WARN_AUDIO_MIXING_OPEN_ERROR(701): startAudioMixing 执行失败public void onCameraReady()
public void onVideoStopped()
public void onAudioQuality(java.lang.String uid, int quality, short delay, short lost)
uid
- 说话方的用户 ID。quality
- 语音质量评分:
QUALITY_EXCELLENT( = 1)
QUALITY_GOOD( = 2)
QUALITY_POOR( = 3)
QUALITY_BAD( = 4)
QUALITY_VBAD( = 5)
QUALITY_DOWN( = 6)delay
- 延迟(毫秒)lost
- 丢包率(百分比)public void onLeaveChannel(QHVCInteractiveEventHandler.RtcStats stats)
stats
- 通话相关的统计信息。public void onRtcStats(QHVCInteractiveEventHandler.RtcStats stats)
stats
- 统计信息public void onAudioVolumeIndication(QHVCInteractiveEventHandler.AudioVolumeInfo[] speakers, int totalVolume)
speakers
- 说话者(数组)。totalVolume
- (混音后的)总音量( 0~255)public void onNetworkQuality(java.lang.String uid, int txQuality, int rxQuality)
uid
- txQuality
- rxQuality
- public void onUserJoined(java.lang.String uid, int elapsed)
uid
- 用户 IDelapsed
- joinChannel 开始到该回调触发的延迟(毫秒)public void onUserOffline(java.lang.String uid, int reason)
uid
- 用户 IDreason
- 离线原因:
UserOfflineReason.USER_OFFLINE_QUIT:用户主动离开
UserOfflineReason.USER_OFFLINE_DROPPED:因过长时间收不到对方数据包,超时掉线。public void onUserMuteAudio(java.lang.String uid, boolean muted)
uid
- 用户 IDmuted
- True - 该用户将音频静音
False - 该用户取消了音频静音public void onUserMuteVideo(java.lang.String uid, boolean muted)
uid
- 用户 IDmuted
- True - 该用户暂停了视频发送
False - 该用户恢复了视频发送public void onUserEnableVideo(java.lang.String uid, boolean enabled)
uid
- 用户 IDenabled
- True: 该用户已启用了视频功能
False: 该用户已关闭了视频功能public void onRemoteVideoStats(QHVCInteractiveEventHandler.RemoteVideoStats stats)
public void onRemoteAudioStats(QHVCInteractiveEventHandler.RemoteAudioStats remoteAudioStats)
public void onLocalAudioStats(QHVCInteractiveEventHandler.LocalAudioStats localAudioStats)
public void onLocalVideoStats(QHVCInteractiveEventHandler.LocalVideoStats stats)
public void onFirstRemoteVideoFrame(java.lang.String uid, int width, int height, int elapsed)
uid
- 用户 ID,指定是哪个用户的视频流width
- 视频流宽(像素)height
- 视频流高(像素)elapsed
- 加入频道开始到该回调触发的延迟(毫秒)public void onFirstLocalVideoFrame(int width, int height, int elapsed)
width
- 视频流宽(像素)height
- 视频流高(像素)elapsed
- 加入频道开始到该回调触发的延迟(毫秒)public void onFirstRemoteVideoDecoded(java.lang.String uid, int width, int height, int elapsed)
uid
- 用户 ID,指定是哪个用户的视频流width
- 视频流宽(像素)height
- 视频流高(像素)elapsed
- 加入频道开始到该回调触发的延迟(毫秒)public void onConnectionLost(int errCode)
errCode
- public void onConnectionInterrupted()
public void onChangeClientRoleSuccess(int newClientRole, int oldClientRole)
newClientRole
- 改变后的角色类型oldClientRole
- 改变前的角色类型public void onAudioMixingFinished()
public void onAudioEffectFinished(int soundId)
soundId
- 指定音效的 ID。每个音效均有唯一的 ID。