Classes

Classes

NERtcEngine
NERtcEngine

Events


onAddLiveStreamTask

通知添加直播任务结果。
该回调异步返回 NERtcEngine#addLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState 事件
Parameters:
Name Type Description
task_id String 任务id
url String 推流地址
error number 结果

onAudioDefaultDeviceChanged

音频默认设备更改回调。
Parameters:
Name Type Description
device_id string 设备ID。
device_type number 音频设备类型:
- 0 未知音频设备
- 1 音频采集设备
- 2 音频播放设备

onAudioDeviceStateChanged

音频设备状态更改回调。
Parameters:
Name Type Description
device_id string 设备ID。
device_type number 音频设备类型:
- 0 未知音频设备
- 1 音频采集设备
- 2 音频播放设备
device_state number 音频设备状态:
- 0 音频设备已激活
- 1 音频设备未激活

onAudioEffectFinished

本地音效文件播放已结束回调。
当播放音效结束后,会触发该回调。
Parameters:
Name Type Description
effect_id number 音效ID

onAudioHowling

监测音频啸叫的回调。
Parameters:
Name Type Description
howling boolean 是否出现啸叫

onAudioMixingStateChanged

本地用户的音乐文件播放状态改变回调。
调用 NERtcEngine#startAudioMixing 播放混音音乐文件后,当音乐文件的播放状态发生改变时,会触发该回调。
- 如果播放音乐文件正常结束,state 会返回相应的状态码 0,error_code 返回 0。
- 如果播放出错,则返回状态码 1,error_code 返回相应的出错原因。
- 如果本地音乐文件不存在、文件格式不支持、无法访问在线音乐文件 URL,error_code都会返回 100。
Parameters:
Name Type Description
state number 音乐文件播放状态:
- 0 音乐文件播放结束。
- 1 音乐文件报错。
error_code number 错误码:
- 0 没有错误。
- 1 通用错误。
- 100 音乐文件打开出错。

onAudioMixingTimestampUpdate

本地用户的音乐文件播放进度回调
调用 NERtcEngine#startAudioMixing 播放混音音乐文件后,当音乐文件的播放进度改变时,会触发该回调。
Parameters:
Name Type Description
timestamp_ms number 音乐文件播放进度,单位为毫秒。

onAudioRecording

音频录制状态回调。
Parameters:
Name Type Description
code 音频录制状态码。详细信息请参考 NERtcAudioRecordingCode。
file_path 音频录制文件保存路径。

onClientRoleChanged

参会者角色类型变更回调。
本地用户加入房间后,通过 NERtcEngine#setClientRole 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。
NOTE:
直播场景下,如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:
- 主播切观众,本端触发onClientRoleChanged回调,远端触发 onUserLeft 回调。
- 观众切主播,本端触发onClientRoleChanged回调,远端触发 onUserJoined 回调。
    
Parameters:
Name Type Description
oldRole number 原角色类型。
- 0 主播
- 1 观众
newRole number 新角色类型。
- 0 主播
- 1 观众

onConnectionStateChange

连接状态变更。
有时候由于通话流程、用户行为、网络原因等,客户端通话状态变更,触发此回调。
Parameters:
Name Type Description
state number 变更后通话状态:
- 1 没加入频道
- 2 正在加入频道
- 3 加入频道成功
- 4 正在尝试重新加入频道
- 5 加入频道失败
reason number 变更原因:
- 1 离开房间
- 2 房间被关闭
- 3 用户被踢
- 4 服务超时
- 5 加入房间
- 6 加入房间成功
- 7 重新加入房间成功(重连)
- 8 媒体连接断开
- 9 信令连接断开
- 10 请求频道失败
- 11 加入频道失败

onDisconnect

掉线回调。
由于非网络原因,客户端可能会和服务器失去连接,此时SDK无需自动重连,直接触发此回调方法。
Parameters:
Name Type Description
result NERtcErrorCode 错误码

onError

发生错误回调。
Parameters:
Name Type Description
errorCode NERtcErrorCode 错误码
msg string 错误描述

onFirstAudioDataReceived

已接收到远端音频首帧回调。
Parameters:
Name Type Description
uid number 发送音频帧的远端用户的用户 ID。

onFirstAudioFrameDecoded

已解码远端音频首帧的回调。
Parameters:
Name Type Description
uid number 远端用户 ID。

onFirstVideoDataReceived

已显示首帧远端视频回调。
第一帧远端视频显示在视图上时,触发此调用。
Parameters:
Name Type Description
uid number 用户 ID,指定是哪个用户的视频流。

onFirstVideoFrameDecoded

已显示首帧远端视频回调。
引擎收到第一帧远端视频流并解码成功时,触发此调用。 App 可在此回调中设置该用户的 video canvas。
Parameters:
Name Type Description
uid number 用户 ID,指定是哪个用户的视频流。
width number 视频流宽(px)。
height number 视频流高(px)。

onJoinChannel

加入频道回调
Parameters:
Name Type Description
cid number 频道 ID
uid number 用户 ID
result NERtcErrorCode 错误码
elapsed number 从 joinChannel 开始到发生此事件过去的时间(毫秒)

onLeaveChannel

离开频道回调。 App 调用 NERtcEngine#leaveChannel 方法时,SDK提示 App 离开频道是否成功。
Parameters:
Name Type Description
result NERtcErrorCode 错误码

onLiveStreamState

通知直播推流状态
Parameters:
Name Type Description
task_id string 任务id
url string 推流地址
state number 直播推流状态:
- 505: 推流中;
- 506: 推流失败;
- 511: 推流结束;

onLocalAudioStats

本地音频流统计信息回调。
该回调描述本地设备发送音频流的统计信息,每 2 秒触发一次。
Parameters:
Name Type Description
stats object 本地音频流统计信息:
Properties
Name Type Description
num_channels number 当前采集声道数。
sent_sample_rate number 本地上行音频采样率。
sent_bitrate number (上次统计后)发送码率(Kbps)。
audio_loss_rate number 特定时间内的音频丢包率 (%)。
rtt number RTT。
volume number 音量,范围为 0(最低)- 100(最高)。

onLocalAudioVolumeIndication

提示频道内本地用户瞬时音量的回调。
该回调默认禁用。可以通过 NERtcEngine#enableAudioVolumeIndication 方法开启;
开启后,本地用户说话,SDK 会按 NERtcEngine#enableAudioVolumeIndication 方法中设置的时间间隔触发该回调。
如果本地用户将自己静音(调用了 NERtcEngine#muteLocalAudioStream),SDK 将音量设置为 0 后回调给应用层。
Parameters:
Name Type Description
volume number (混音后的)音量,取值范围为 [0,100]。

onLocalPublishFallbackToAudioOnly

本地发布流已回退为音频流、或已恢复为音视频流回调。
如果您调用了设置本地推流回退选项 setLocalPublishFallbackOption 接口,并将 option 设置为 #kNERtcStreamFallbackAudioOnly 后,当上行网络环境不理想、本地发布的媒体流回退为音频流时,或当上行网络改善、媒体流恢复为音视频流时,会触发该回调。
Parameters:
Name Type Description
is_fallback boolean 本地发布流已回退或已恢复。
- true: 由于网络环境不理想,发布的媒体流已回退为音频流。
- false:由于网络环境改善,从音频流恢复为音视频流。
stream_type 对应的视频流类型,即主流或辅流。
- 0 主流
- 1 辅流

onLocalVideoStats

本地视频流统计信息回调。
该回调描述本地设备发送视频流的统计信息,每 2 秒触发一次。
Parameters:
Name Type Description
stats object 本地视频流统计信息:
Properties
Name Type Description
video_layers_count number 视频流条数。
video_layers_list Array.<object> 视频流信息数组:
video_layers_list[].layer_type number 流类型: 1、主流,2、辅流。
video_layers_list[].width number 视频流宽(像素)
video_layers_list[].height number 视频流高(像素)
video_layers_list[].capture_frame_rate number 视频采集帧率。
video_layers_list[].render_frame_rate number 视频渲染帧率。
video_layers_list[].encoder_frame_rate number 编码帧率。
video_layers_list[].sent_frame_rate number 发送帧率。
video_layers_list[].sent_bitrate number 发送码率(Kbps)。
video_layers_list[].target_bitrate number 编码器目标码率(Kbps)。
video_layers_list[].encoder_bitrate number 编码器实际编码码率(Kbps)。
video_layers_list[].codec_name String 视频编码器名字。

onMediaRelayEvent

媒体流相关转发事件回调。
Parameters:
Name Type Description
event number 当前媒体流转发事件。详细信息请参考 #NERtcChannelMediaRelayEvent 。
- 0 媒体流转发停止。
- 1 正在连接服务器,开始尝试转发媒体流。
- 2 连接服务器成功。
- 3 视频音频媒体流成功转发到目标房间。
- 4 音频媒体流成功转发到目标房间。
- 5 媒体流屏幕共享等其他流成功转发到目标房间。
- 100 媒体流转发失败。原因包括:
- 414 请求参数错误。
- 30110 重复调用 startChannelMediaRelay。
- 30111 媒体流转发权限不足。例如调用 startChannelMediaRelay 的房间成员为主播角色、或房间为双人通话房间,不支持转发媒体流。
- 30112 调用 stopChannelMediaRelay 前,未调用 startChannelMediaRelay。
channel_name 转发的目标房间名。
error 相关错误码。详细信息请参考 #NERtcErrorCode 。

onMediaRelayStateChanged

跨房间媒体流转发状态发生改变回调。
Parameters:
Name Type Description
state number 当前跨房间媒体流转发状态。
- 0 初始状态。在成功调用 stopChannelMediaRelay 停止跨房间媒体流转发后, onMediaRelayStateChanged 会回调该状态。
- 1 尝试跨房间转发媒体流。
- 2 源房间主播角色成功加入目标房间。
- 3 发生异常,详见 onMediaRelayEvent 的 error 中提示的错误信息。
channel_name 媒体流转发的目标房间名。

onNetworkQuality

通话中每个用户的网络上下行质量报告回调。
该回调描述每个用户在通话中的网络状态,每 2 秒触发一次,只上报状态有变更的成员。
Parameters:
Name Type Description
uc number 数组的大小,即用户数。
stats object 每个用户 ID 和网络上下行质量信息的数组:
stats[].uid number 用户 ID,指定是哪个用户的视频流。
stats[].tx_quality number 该用户的上行网络质量:
- 0 网络质量未知
- 1 网络质量极好
- 2 用户主观感觉和 excellent 差不多,但码率可能略低于 excellent
- 3 用户主观感受有瑕疵但不影响沟通
- 4 勉强能沟通但不顺畅
- 5 网络质量非常差,基本不能沟通
- 6 完全无法沟通
stats[].rx_quality number 该用户的下行网络质量:
- 0 网络质量未知
- 1 网络质量极好
- 2 用户主观感觉和 excellent 差不多,但码率可能略低于 excellent
- 3 用户主观感受有瑕疵但不影响沟通
- 4 勉强能沟通但不顺畅
- 5 网络质量非常差,基本不能沟通
- 6 完全无法沟通

onReconnectingStart

触发重连。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK会进行自动重连,开始自动重连后触发此回调。
Parameters:
Name Type Description
cid 频道 ID。
uid 用户 ID。

onRecvSEIMsg

监听 SEI 数据回调
Parameters:
Name Type Description
uid number 发送该 sei 的用户 id
data ArrayBuffer 接收到的 sei 数据
Since:
  • 4.1.110

onRejoinChannel

重新加入频道回调。
有时候由于网络原因,客户端可能会和服务器失去连接,SDK会进行自动重连,自动重连后触发此回调方法。
Parameters:
Name Type Description
cid number 频道 ID
uid number 用户 ID
result NERtcErrorCode 错误码
elapsed number 从 joinChannel 开始到发生此事件过去的时间(毫秒)

onReleasedHwResources

释放硬件资源的回调。
Parameters:
Name Type Description
result NERtcErrorCode 错误码

onRemoteAudioStats

通话中远端音频流的统计信息回调。
该回调描述远端用户在通话中端到端的音频流统计信息,每 2 秒触发一次。
Parameters:
Name Type Description
uc number stats 数组的大小
stats Array.<object> 每个远端用户音频统计信息的数组:
stats[].uid number 用户 ID,指定是哪个用户的音频流
stats[].received_bitrate number (上次统计后)接收到的码率(Kbps)
stats[].total_frozen_time number 用户的下行音频卡顿累计时长(ms)
stats[].frozen_rate number 用户的下行音频平均卡顿率(%)。
stats[].audio_loss_rate number 特定时间内的音频丢包率 (%)。
stats[].volume number 音量,范围为 0(最低)- 100(最高)。

onRemoteSubscribeFallbackToAudioOnly

订阅的远端流已回退为音频流、或已恢复为音视频流回调。
如果你调用了设置远端订阅流回退选项 setRemoteSubscribeFallbackOption 接口并将 option 设置 #kNERtcStreamFallbackAudioOnly 后,当下行网络环境不理想、仅接收远端音频流时,或当下行网络改善、恢复订阅音视频流时,会触发该回调。
Parameters:
Name Type Description
uid number 远端用户的 ID。
is_fallback boolean 远端订阅流已回退或恢复:
- true: 由于网络环境不理想,发布的媒体流已回退为音频流。
- false:由于网络环境改善,从音频流恢复为音视频流。
stream_type 对应的视频流类型,即主流或辅流。
- 0 主流
- 1 辅流

onRemoteVideoStats

通话中远端视频流的统计信息回调。
该回调描述远端用户在通话中端到端的视频流统计信息,每 2 秒触发一次。
Parameters:
Name Type Description
uc number stats 数组的大小。
stats object 每个远端用户视频统计信息的数组:
Properties
Name Type Description
uid number 用户 ID,指定是哪个用户的视频流。
video_layers_count number 视频流条数。
video_layers_list Array.<object> 视频流信息数组:
video_layers_list[].layer_type number 流类型: 1、主流,2、辅流。
video_layers_list[].width number 视频流宽(像素)。
video_layers_list[].height number 视频流高(像素)。
video_layers_list[].received_frame_rate number 接收到的帧率 (fps)。
video_layers_list[].render_frame_rate number 视频渲染帧率。
video_layers_list[].decoder_frame_rate number 视频解码帧率(fps)。
video_layers_list[].frozen_rate number 用户的下行视频平均卡顿率(%)。
video_layers_list[].packet_loss_rate number 下行丢包率(%)。
video_layers_list[].received_bitrate number 接收到的码率(Kbps)。
video_layers_list[].total_frozen_time number 用户的下行视频卡顿累计时长(ms)。
video_layers_list[].codec_name String 视频编码器名字。

onRemoveLiveStreamTask

通知删除直播任务结果。
该回调异步返回 NERtcEngine#removeLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState 事件
Parameters:
Name Type Description
task_id String 任务id
error number 结果

onRtcStats

当前通话统计回调。
SDK 定期向 App 报告当前通话的统计信息,每 2 秒触发一次。
Parameters:
Name Type Description
stats object NERTC 引擎统计数据:
Properties
Name Type Description
cpu_app_usage number 当前 App 的 CPU 使用率 (%)。
cpu_idle_usage number 当前系统的 CPU 空闲率 (%)。
cpu_total_usage number 当前系统的 CPU 使用率 (%)。
memory_app_usage number 当前App的内存使用率 (%)。
memory_total_usage number 当前系统的内存使用率 (%)。
memory_app_kbytes number 当前App的内存使用量 (KB)。
total_duration number 通话时长(秒)。
tx_bytes number 发送字节数,累计值。(bytes)
rx_bytes number 接收字节数,累计值。(bytes)
tx_audio_bytes number 音频发送字节数,累计值。(bytes)
tx_video_bytes number 视频发送字节数,累计值。(bytes)
rx_audio_bytes number 音频接收字节数,累计值。(bytes)
rx_video_bytes number 视频接收字节数,累计值。(bytes)
tx_audio_kbitrate number 音频发送码率。(kbps)
rx_audio_kbitrate number 音频接收码率。(kbps)
tx_video_kbitrate number 视频发送码率。(kbps)
rx_video_kbitrate number 视频接收码率。(kbps)
up_rtt number 上行平均往返时延rtt(ms)
down_rtt number 下行平均往返时延rtt(ms)
tx_audio_packet_loss_rate number 本地上行音频实际丢包率。(%)
tx_video_packet_loss_rate number 本地上行视频实际丢包率。(%)
tx_audio_packet_loss_sum number 本地上行音频实际丢包数。
tx_video_packet_loss_sum number 本地上行视频实际丢包数。
tx_audio_jitter number 本地上行音频抖动计算。(ms)
tx_video_jitter number 本地上行视频抖动计算。(ms)
rx_audio_packet_loss_rate number 本地下行音频实际丢包率。(%)
rx_video_packet_loss_rate number 本地下行视频实际丢包率。(%)
rx_audio_packet_loss_sum number 本地下行音频实际丢包数。
rx_video_packet_loss_sum number 本地下行视频实际丢包数。
rx_audio_jitter number 本地下行音频抖动计算。(ms)
rx_video_jitter number 本地下行视频抖动计算。(ms)

onScreenCaptureStatus

屏幕共享暂停/恢复/开始/结束等回调
Parameters:
Name Type Description
status number 屏幕共享状态。
- 1 开始屏幕共享。
- 2 暂停屏幕共享。
- 3 恢复屏幕共享。
- 4 停止屏幕共享。
- 5 屏幕分享的目标窗口被覆盖。

onUpdateLiveStreamTask

通知更新直播任务结果。
该回调异步返回 NERtcEngine#updateLiveStreamTask 接口的调用结果;实际推流状态参考 onLiveStreamState 事件
Parameters:
Name Type Description
task_id String 任务id
url String 推流地址
error number 结果

onUserAudioMute

远端用户是否静音回调。
Parameters:
Name Type Description
uid number 远端用户ID。
mute boolean 是否静音。

onUserAudioStart

远端用户开启音频回调。
Parameters:
Name Type Description
uid number 远端用户ID。

onUserAudioStop

远端用户停用音频回调。
Parameters:
Name Type Description
uid number 远端用户ID。

onUserJoined

远端用户加入当前频道回调。
- 通信模式下,该回调提示有远端用户加入了频道,并返回新加入用户的 ID;如果加入之前,已经有其他用户在频道中了,新加入的用户也会收到这些已有用户加入频道的回调。
Parameters:
Name Type Description
uid number 新加入频道的远端用户ID。
userName string 新加入频道的远端用户名(无效)。

onUserLeft

远端用户离开当前频道回调。
提示有远端用户离开了频道(或掉线)。
Parameters:
Name Type Description
uid number 远端用户ID。
reason number 远端用户离开原因:
- 0 正常离开
- 1 用户断线导致离开
- 2 用户 Failover 过程中产生的 leave
- 3 用户被踢导致离开
- 4 用户超时导致离开

onUserSubStreamVideoStart

远端用户开启辅流视频回调。
Parameters:
Name Type Description
uid number 远端用户ID。
maxProfile number 最大分辨率:
- 0 160x90/120, 15fps
- 1 320x180/240, 15fps
- 2 640x360/480, 30fps
- 3 1280x720, 30fps
- 4 1920x1080, 30fps

onUserSubStreamVideoStop

远端用户停用辅流视频回调。
Parameters:
Name Type Description
uid number 远端用户ID。

onUserVideoMute

远端用户是否禁视频流回调。
Parameters:
Name Type Description
uid number 远端用户ID。
mute boolean 是否禁视频流。

onUserVideoProfileUpdate

远端用户视频配置更新回调。
Parameters:
Name Type Description
uid number 远端用户ID。
maxProfile number 最大分辨率:
- 0 160x90/120, 15fps
- 1 320x180/240, 15fps
- 2 640x360/480, 30fps
- 3 1280x720, 30fps
- 4 1920x1080, 30fps

onUserVideoStart

远端用户开启视频回调。
Parameters:
Name Type Description
uid number 远端用户ID。
maxProfile number 最大分辨率:
- 0 160x90/120, 15fps
- 1 320x180/240, 15fps
- 2 640x360/480, 30fps
- 3 1280x720, 30fps
- 4 1920x1080, 30fps
- 5 none
- 6 FakeVideo 标识,仅在回调中显示。请勿主动设置,否则 SDK 会按照STANDARD处理。

onUserVideoStop

远端用户停用视频回调。
Parameters:
Name Type Description
uid number 远端用户ID。

onVideoDeviceStateChanged

视频设备状态更改回调。
Parameters:
Name Type Description
device_id string 设备ID。
device_type number 视频设备类型:
- 0 未知音频设备
- 1 视频采集设备
device_state number 视频设备状态:
- 0 视频设备已添加
- 1 视频设备已拔除

onWarning

发生警告回调。
Parameters:
Name Type Description
warnCode NERtcErrorCode 错误码
msg string 错误描述