跳到主要内容

通话监听

融云 RN CallLib SDK 提供了如下监听函数,用于处理通话的相关业务逻辑。

添加监听

onCallReceived

通过 CallLib.onCallReceived 监听通话呼入,会从回调方法的参数得到一个 callSession 对象。详细参见通话信息中对 callSession 对象各属性的详细说明。

代码示例

CallLib.onCallReceived((callSession)=>{
})

onCallConnected

通过 CallLib.onCallConnected 监听通话已接通

代码示例

CallLib.onCallConnected(()=>{

});

onCallDisconnected

通过 CallLib.onCallDisconnected 监听通话已结束,会从回调方法的参数得到 reason。详见挂断通话的原因

代码示例

CallLib.onCallDisconnected((reason)=>{

})

onRemoteUserJoined

通过 CallLib.onRemoteUserJoined 监听远端用户加入了通话。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。

代码示例

CallLib.onRemoteUserJoined((user)=>{
})

OnRemoteUserLeft

通过 CallLib.OnRemoteUserLeft 监听远端用户挂断。

代码示例

CallLib.onRemoteUserLeft((user, reason)=>{
})

onEnableCamera

通过 CallLib.onEnableCamera 监听己端开启或关闭摄像头。

代码示例

CallLib.onEnableCamera((camera, enable)=>{

})

onSwitchCamera

通过 CallLib.onSwitchCamera 监听己端切换摄像头。

代码示例

CallLib.onSwitchCamera((camera, enable)=>{

})

onError

通过 CallLib.onError 监听通话出现错误,会从回调方法的参数得到 code。详见通话错误的原因

代码示例

CallLib.onError((code)=>{

})

onCallOutgoing

通过 CallLib.onCallOutgoing 监听开始呼叫。

代码示例

CallLib.onCallOutgoing(()=>{

})

onRemoteUserRinging

通过 CallLib.onRemoteUserRinging 监听远端用户正在振铃,会从回调方法的参数得到远端用户的 userId。

代码示例

CallLib.onRemoteUserRinging((userId)=>{

})

OnRemoteUserInvited

通过 CallLib.OnRemoteUserInvited 监听有用户被邀请加入通话(仅限群聊)。

回调方法的参数说明

参数类型说明
userIdString用户id
mediaTypeNumber通话媒体类型,0是音频,1是音视频

代码示例

CallLib.onRemoteUserInvited((userId, mediaType)=>{

})

onRemoteUserMediaTypeChanged

通过 CallLib.onRemoteUserMediaTypeChanged 监听远端用户切换了媒体类型。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。
  • mediaType 参数:表示通话媒体类型。0 是音频,1 是音视频。

代码示例

CallLib.onRemoteUserMediaTypeChanged((user, mediaType)=>{

})

onRemoteUserMicrophoneStateChanged

通过 CallLib.onRemoteUserMicrophoneStateChanged 监听远端用户开启或关闭了麦克风的状态。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。
  • enable 参数:表示是否已开启。true 表示已开启,false 表示未开启。

代码示例

CallLib.onRemoteUserMicrophoneStateChanged((user, enable)=>{

})

onRemoteUserCameraStateChanged

通过 CallLib.onRemoteUserCameraStateChanged 监听远端用户开启或关闭了摄像头的状态。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。
  • enable 参数:表示是否已开启。true 表示已开启,false 表示未开启。

代码示例

CallLib.onRemoteUserCameraStateChanged((user, enable)=>{

})

onNetworkQuality

通过 CallLib.onNetworkQuality 监听当前通话网络状态,该回调方法每秒触发一次。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。
  • quality 参数:Number 类型参数,表示网络质量。如果 user 是本端用户, quality 代表上行网络质量 如果 user 是远端用户, quality 代表下行网络质量
    • 0 表示未知
    • 1 表示极好
    • 2 表示好
    • 3 表示一般
    • 4 表示差
    • 5 表示极差

代码示例

CallLib.onNetworkQuality((user, quality)=>{

})

onAudioVolume

通过 CallLib.onAudioVolume 监听当前通话某用户音量。

  • user 参数:详细参见通话信息中对 user 对象各属性的详细说明。
  • volume 参数:Number 类型参数,以 0~9 代表声音音量。0 为无声,依次变大。如果 user 是本端用户,volume 代表发送音量。如果 user 是远端用户,volume 代表接收音量。

代码示例

CallLib.onAudioVolume((user, volume)=>{

})

移除监听

removeCallReceivedListener

移除对“通话呼入”的监听。

代码示例

CallLib.removeCallReceivedListener()

removeCallConnectedListener

移除对"通话已接通"的监听。

代码示例

CallLib.removeCallConnectedListener()

removeCallDisconnectedListener

移除对“通话已结束”的监听。

代码示例

CallLib.removeCallDisconnectedListener()

removeRemoteUserJoinedListener

移除对“远端用户加入了通话”的监听。

代码示例

CallLib.removeRemoteUserJoinedListener()

removeEnableCameraListener

移除对“己端开启或关闭摄像头”的监听。

代码示例

CallLib.removeEnableCameraListener()

removeSwitchCameraListener

移除对“己端切换摄像头”的监听。

代码示例

CallLib.removeSwitchCameraListener()

removeRemoteUserLeftListener

移除对“远端用户离开”的监听。

代码示例

CallLib.removeRemoteUserLeftListener()

removeErrorListener

移除对“通话出现错误”的监听。

代码示例

CallLib.removeErrorListener()

removeCallOutgoingListener

移除对“开始呼叫”的监听。

代码示例

CallLib.removeCallOutgoingListener()

removeRemoteUserRingingListener

移除对“远端用户正在振铃”的监听。

代码示例

CallLib.removeRemoteUserRingingListener()

removeRemoteUserInvited

移除对“有用户被邀请加入通话”的监听。

代码示例

CallLib.removeRemoteUserInvited()

removeRemoteUserMediaTypeChangedListener

移除对“远端用户切换了媒体类型”的监听。

代码示例

CallLib.removeRemoteUserMediaTypeChangedListener()

removeRemoteUserDidChangeMicrophoneStateListener

移除对“远端用户开启或关闭了麦克风的状态”的监听。

代码示例

CallLib.removeRemoteUserDidChangeMicrophoneStateListener()

removeRemoteUserCameraStateChangedListener

移除对“远端用户开启或关闭了摄像头的状态”的监听。

代码示例

CallLib.removeRemoteUserCameraStateChangedListener()

removeNetworkQualityListener

移除对“当前通话网络状态”的监听。

代码示例

CallLib.removeNetworkQualityListener()

removeAudioVolumeListener

移除对“当前通话某用户音量”的监听。

代码示例

CallLib.removeAudioVolumeListener()