Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface NERtcCallback

NERtcCallback类。

向应用程序发送用户状态回调通知。

Hierarchy

  • NERtcCallback

Index

Methods

onAudioDeviceChanged

  • 语音播放设备已改变,自己会收到 onAudioDeviceChanged(selected) 回调

    Parameters

    • selected: NERTCAudioDevice

      选择的设备 - SPEAKER_PHONE:扬声器 - WIRED_HEADSET:有线耳机 - EARPIECE:听筒

      • BLUETOOTH_HEADSET:蓝牙耳机

    Returns void

onAudioDeviceStateChange

  • 语音播放设备已改变,自己会收到 onAudioDeviceStateChange(deviceType, deviceState) 回调

    Parameters

    • deviceType: NERTCAudioDeviceType

      设备类型 - RECORD:音频采集设备 - PLAYOUT:音频播放设备

    • deviceState: NERTCAudioDeviceState

      设备状态 - OPENED:打开成功 - CLOSED:已关闭

      • INIT_ERROR:初始化失败
      • START_ERROR:开启失败
      • UNKNOWN_ERROR:未知错误

    Returns void

onClientRoleChange

  • 直播场景下用户角色已切换回调。

    用户加入房间后,通过 NERTC.setClientRole 切换用户角色后会触发此回调。例如从主播切换为观众、从观众切换为主播。

    note
    • 直播场景下,如果您在加入房间后调用该方法切换用户角色,调用成功后,会触发以下回调:
    • 主播切观众,本端触发 onClientRoleChange 回调,远端触发 NERtcCallback.onUserLeave 回调。
    • 观众切主播,本端触发 onClientRoleChange 回调,远端触发 NERtcCallback.onUserJoined 回调。

    Parameters

    Returns void

onConnectionStateChanged

  • 房间连接状态已改变回调。

    该回调在房间连接状态发生改变的时候触发,并告知用户当前的房间连接状态和引起房间状态改变的原因。

    example
    this.engine.addEventListener("onDisconnect", (reason) => {
    const message = `onDisconnect通知:断开reason = ${reason}`
    this.engine.nertcPrint(message)
    console.log(message)
    });
    

    Parameters

    • state: NERTCChannelConnectionState

      与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等,详细错误码请参考 NERTCErrorCode。

    • reason: NERTCErrorCode

      与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等,详细错误码请参考 NERTCErrorCode。

    Returns void

onConnectionTypeChanged

  • 本地网络类型已改变已改变,自己会收到 onConnectionTypeChanged(newConnectionType) 回调, 本地网络连接类型发生改变时,SDK 会触发该回调,并在回调中声明当前正在使用的网络连接类型。

    Parameters

    • newConnectionType: NERTCConnectionType

      设备状态 - CONNECTION_UNKNOWN:未知类型 - CONNECTION_ETHERNET :以太网数据连接

      • CONNECTION_WIFI :相机断开,可能被其他应用抢占
      • CONNECTION_2G:2G 移动网络
      • CONNECTION_3G:3G 移动网络
      • .CONNECTION_4G:4G 移动网络
        • CONNECTION_BLUETOOTH :蓝牙连接
      • CONNECTION_5G :5G 移动网络
      • CONNECTION_NONE:无网络

    Returns void

onDisconnect

  • 与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等。

    note
    • SDK 在调用 NERTC.joinChannel 加入房间成功后,如果和服务器失去连接,就会触发该回调。
    example
    this.engine.addEventListener("onDisconnect", (reason) => {
    const message = `onDisconnect通知:断开reason = ${reason}`
    this.engine.nertcPrint(message)
    console.log(message)
    });
    

    Parameters

    • reason: NERTCErrorCode

      与服务器连接中断,可能原因包括:网络连接失败、服务器关闭该房间、用户被踢出房间等,详细错误码请参考 NERTCErrorCode。

    Returns void

onError

  • onError(code: number, message: string, extraInfo: object): void
  • 错误回调,表示 SDK 不可恢复的错误,一定要监听并分情况给用户适当的界面提示

    example
    this.engine.addEventListener("onError", (code, message, extraInfo) => {
    const imessage = `onError通知:code = ${code}, message = ${message}, extraInfo = ${extraInfo}`
    this.engine.nertcPrint(imessage)
    console.log(imessage)
    });
    

    Parameters

    • code: number

      错误码

    • message: string

      错误信息

    • extraInfo: object

      扩展信息字段,个别错误码可能会带额外的信息帮助定位问题

    Returns void

onFirstAudioDataReceived

  • onFirstAudioDataReceived(userID: number, userStringID: string): void
  • 进房后的回调

    已接收到远端音频首帧,自己会收到 onFirstAudioDataReceived(userID) 回调

    Parameters

    • userID: number

      远程用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onFirstAudioFrameDecoded

  • onFirstAudioFrameDecoded(userID: number, userStringID: string): void
  • 进房后的回调

    已解码远端音频首帧,自己会收到 onFirstAudioFrameDecoded() 回调

    Parameters

    • userID: number

      远程用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onFirstVideoDataReceived

  • onFirstVideoDataReceived(userID: number, videoStreamType: NERtcVideoStreamType, userStringID: string): void
  • 进房后的回调

    已显示远端视频首帧的,自己会收到 onFirstVideoDataReceived(userID, videoStreamType) 回调

    Parameters

    • userID: number

      远程用户 ID

    • videoStreamType: NERtcVideoStreamType

      视频类型:

      • MAIN:视频主流(默认摄像头)
      • SUB:视频辅流(默认屏幕共享)
    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onFirstVideoFrameDecoded

  • onFirstVideoFrameDecoded(userID: number, videoStreamType: NERtcVideoStreamType, userStringID: string): void
  • 进房后的回调

    已接收到远端视频首帧并完成解码的回调。 当 SDK 收到远端视频的第一帧并解码成功时,自己会收到 onFirstVideoFrameDecoded(userID, videoStreamType) 回调, 应用层可在该回调中设置此用户的视频画布。

    Parameters

    • userID: number

      远程用户 ID

    • videoStreamType: NERtcVideoStreamType

      视频类型:

      • MAIN:视频主流(默认摄像头)
      • SUB:视频辅流(默认屏幕共享)
    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onJoinChannel

  • onJoinChannel(result: number, channelId: number, elapsed: number, userID: number, userStringID: string): void
  • 加入房间回调,表示客户端已经登入服务器。

    example
    this.engine.addEventListener("onJoinChannel", (result, channelId, elapsed, userID, userStringID)=> {
    let message = `onJoinChannel通知:自己加入房间状况,result = ${result}, channelId = ${channelId}, elapsed = ${elapsed}, userID = ${userID}, userStringID = ${userStringID}`
    this.engine.nertcPrint(imessage)
    console.log(imessage)
    });
    

    Parameters

    • result: number

      0 表示加入房间成功;其他值表示加入房间失败,详细错误码请参考 NERTCErrorCode

    • channelId: number

      客户端加入的房间 ID。

    • elapsed: number

      NERTC.joinChannel 开始到发生此事件过去的时间,单位为毫秒。

    • userID: number

      用户 ID。 如果在 NERTC.joinChannel 方法中指定了 userID,此处会返回指定的 ID; 如果未指定 userID(NERTC.joinChannel 时userID=0),此处将返回云信服务器自动分配的 ID。

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onLeaveChannel

  • onLeaveChannel(result: number): void
  • App 调用 leaveChannel 方法后,SDK 提示 App 退出房间是否成功。

    example
    this.engine.addEventListener("onLeaveChannel", (result)=> {
    const message = `onLeaveChannel通知:自己离开房间状况,result = ${result}`
    this.engine.nertcPrint(imessage)
    console.log(imessage)
    });
    

    Parameters

    • result: number

      0 表示成功;其他值表示退出房间失败,详细错误码请参考 NERTCErrorCode。

    Returns void

onLocalAudioStats

  • 本地音频流统计信息回调。

    example
    this.engine.addEventListener("onLocalAudioStats", (stats)=> {
    stats.audioLayers.forEach((item)=>{
    const message = `onLocalAudioStats 本地音频流统计信息: ${JSON.stringify(item)}`
    this.engine.nertcPrint(message)
    console.log(message)
    })
    });
    

    Parameters

    Returns void

onLocalAudioVolumeIndication

  • onLocalAudioVolumeIndication(volume: number, vadFlag: Boolean): void
  • 提示房间内本地用户瞬时音量的回调。 该回调默认为关闭状态。可以通过 [[NETC.enableAudioVolumeIndication]] 方法开启。开启后,本地用户说话,SDK 会按 [[NETC.enableAudioVolumeIndication]] 方法中设置的时间间隔触发该回调

    Parameters

    • volume: number

      混音后的音量,范围为 0~100。

    • vadFlag: Boolean

      混是否检测到人声。

    Returns void

onLocalVideoStats

  • 本地视频流统计信息回调。

    Parameters

    Returns void

onNetworkQuality

  • 通话中所有用户的网络状态回调。

    example
    this.engine.addEventListener("onNetworkQuality", (statsArray)=> {
    statsArray.forEach((user)=>{
    console.log(`用户 用户 userID = ${user.userID}, userStringID = ${user.userStringID} 的上行网络质量为: ${user.upStatus}, 下行网络质量为: ${user.downStatus}`)
    })
    });
    

    Parameters

    Returns void

onReJoinChannel

  • onReJoinChannel(result: number, channelId: number): void
  • 重新加入房间回调。 在弱网环境下,若客户端和服务器失去连接,SDK 会自动重连,自动重连成功后触发自己会收到 onReJoinChannel(result, channelId) 回调。

    Parameters

    • result: number

      0表示成功,其他值表示重新加入失败,错误码请参考NERTCErrorCode。

    • channelId: number

      客户端加入的房间 ID

    Returns void

onReconnectingStart

  • onReconnectingStart(): void
  • 客户端和服务器断开连接时,SDK 会进行重连,重连开始时,自己会收到 onReconnectingStart() 回调,重连结果请参考 onReJoinChannel、onDisconnect。

    Returns void

onRemoteAudioStats

  • 远端音频流统计信息回调。

    example
    stats.forEach((item)=>{
    item.audioLayers.forEach((info)=>{
    const imessage = `onRemoteAudioStats 用户 userID = ${user.userID}, userStringID = ${user.userStringID} 的音频统计信息: ${JSON.stringify(info)} `
    this.engine.nertcPrint(imessage)
    console.log(imessage)
    })
    })
    

    Parameters

    Returns void

onRemoteAudioVolumeIndication

  • 提示房间内谁正在说话及说话者瞬时音量的回调。 该回调默认为关闭状态。可以通过 [[NETC.enableAudioVolumeIndication]] 方法开启。开启后,无论房间内是否有人说话,SDK 都会按 [[NETC.enableAudioVolumeIndication]] 方法中设置的时间间隔触发该回调。 在返回的数组中:

    • 如果有 uid 出现在上次返回的数组中,但不在本次返回的数组中,则默认该 uid 对应的远端用户没有说话。
    • 如果 volume 为 0,表示该用户没有说话。
    • 如果数组为空,则表示此时远端没有人说话。
    example
    this.engine.addEventListener("onRemoteAudioVolumeIndication", (volumeList, totalVolume)=> {
    const message = `onRemoteAudioVolumeIndication通知:总音量totalVolume = ${totalVolume}`
    console.log(imessage)
    volumeList.forEach((user)=>{
    console.log(`用户 userID = ${user.userID}, userStringID = ${user.userStringID} 的音频音量为: ${user.volume},音频辅流的音量为: ${user.subStreamVolume} `)
    })
    });
    

    Parameters

    • volumeArray: NERtcAudioVolumeInfo[]

      混音后的音量,范围为 0~100。

    • totalVolume: number

      混音后的总音量,取值范围为 0~100。

    Returns void

onRemoteVideoStats

  • 远端视频流统计信息回调
    

    Parameters

    Returns void

onRtcStats

  • 当前通话统计回调,SDK 定期向 App 报告当前通话的统计信息,每 2 秒触发一次。

    Parameters

    • rtcStats: NERtcStats

      通话相关的统计信息。

    Returns void

onUserAudioMute

  • onUserAudioMute(userID: number, muted: boolean, userStringID: string): void
  • 进房后的回调

    远端用户暂停或恢复发送音频流,自己会收到该回调

    Parameters

    • userID: number

      远程用户 ID

    • muted: boolean

      是否停止发送音频流

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserAudioStart

  • onUserAudioStart(userID: number, userStringID: string): void
  • 远端用户开启音频回调。

    注意:该回调由远端用户调用 NERTC.enableLocalAudio 方法开启音频采集和发送触发

    Parameters

    • userID: number

      远端用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserAudioStop

  • onUserAudioStop(userID: number, userStringID: string): void
  • 远端用户停止音频回调。

    注意:该回调由远端用户调用 NERTC.enableLocalAudio 方法关闭音频采集和发送触发

    Parameters

    • userID: number

      远端用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserJoined

  • onUserJoined(userID: number, joinExtraInfo: string, userStringID: string): void
  • 远端用户开启音频回调。

    注意:该回调由远端用户加入房间触发

    Parameters

    • userID: number

      远端用户 ID

    • joinExtraInfo: string

      用户自定义消息

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserLeave

  • onUserLeave(userID: number, userStringID: string): void
  • 远端用户停止音频回调。

    注意:该回调由远端用户离开房间时触发

    Parameters

    • userID: number

      远端用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserSubStreamVideoStart

  • onUserSubStreamVideoStart(userID: number, maxProfile: NERtcVideoProfileType, userStringID: string): void
  • 进房后的回调

    远端用户开启屏幕共享辅流通道后,自己会收到 NERtcCallback.onUserSubStreamVideoStart 回调

    Parameters

    • userID: number

      本地或远程用户 ID

    • maxProfile: NERtcVideoProfileType

      视频流类型:摄像头或屏幕分享

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserSubStreamVideoStop

  • onUserSubStreamVideoStop(userID: number, maxProfile: NERtcVideoProfileType, userStringID: string): void
  • 进房后的回调

    远端用户停止屏幕共享辅流通道,自己会收到该回调

    Parameters

    • userID: number

      远程用户 ID

    • maxProfile: NERtcVideoProfileType

      视频流类型:摄像头或屏幕分享

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserVideoMute

  • onUserVideoMute(userID: number, muted: boolean, videoStreamType: NERtcVideoStreamType, userStringID: string): void
  • 进房后的回调

    远端用户暂停或恢复发送视频流回调。 当远端用户调用 NERTC.muteLocalVideo 取消或者恢复发布视频流时,SDK会触发该回调向本地用户报告远程用户的发流状况。

    Parameters

    • userID: number

      远程用户 ID

    • muted: boolean

      是否停止发送视频流

      • true:该用户已暂停发送视频流。
        • false:该用户已恢复发送视频流。
    • videoStreamType: NERtcVideoStreamType

      视频类型:

      • MAIN:视频主流(默认摄像头)
      • SUB:视频辅流(默认屏幕共享)
    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserVideoStart

  • 远端用户开启视频回调。

    Parameters

    • userID: number

      远端用户 ID

    • maxProfile: NERtcVideoProfileType

      视频编码配置,详细信息请参考

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onUserVideoStop

  • onUserVideoStop(userID: number, userStringID: string): void
  • 远端用户停止视频回调。

    Parameters

    • userID: number

      远端用户 ID

    • userStringID: string

      用户字符串格式的 ID。

    Returns void

onVideoDeviceStageChange

  • 视频设备状态已改变,自己会收到 onVideoDeviceStageChange(deviceState) 回调, 该回调提示系统视频设备状态发生改变,比如被拔出或移除。如果设备已使用外接摄像头采集,外接摄像头被拔开后,视频会中断。

    Parameters

    • deviceState: NERTCVideoDeviceState

      设备状态 - OPENED:打开成功 - CLOSED:已关闭

      • DISCONNECTED:相机断开,可能被其他应用抢占
      • FREEZED:相机冻结
      • UNKNOWN_ERROR:未知错误

    Returns void

onWarning

  • onWarning(code: number, message: string, extraInfo: object): void
  • 警告回调,用于告知您一些非严重性问题,例如出现卡顿或者可恢复的解码失败

    example
    this.engine.addEventListener("onWaring", (code, message, extraInfo) => {
    const imessage = `onWaring通知:code = ${code}, message = ${message}, extraInfo = ${extraInfo}`
    this.engine.nertcPrint(imessage)
    console.log(imessage)
    });
    

    Parameters

    • code: number

      错误码

    • message: string

      错误信息

    • extraInfo: object

      扩展信息字段,个别警告码可能会带额外的信息帮助定位问题

    Returns void