跳到主要内容

通话监听

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

添加监听

onCallReceived

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

代码示例

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

onCallConnected

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

代码示例

JavaScript
CallLib.onCallConnected(()=>{

});

onCallDisconnected

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

代码示例

JavaScript
CallLib.onCallDisconnected((reason)=>{

})

onRemoteUserJoined

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

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

代码示例

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

OnRemoteUserLeft

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

代码示例

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

onEnableCamera

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

代码示例

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

})

onSwitchCamera

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

代码示例

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

})

onError

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

代码示例

JavaScript
CallLib.onError((code)=>{

})

onCallOutgoing

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

代码示例

JavaScript
CallLib.onCallOutgoing(()=>{

})

onRemoteUserRinging

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

代码示例

JavaScript
CallLib.onRemoteUserRinging((userId)=>{

})

OnRemoteUserInvited

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

回调方法的参数说明

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

代码示例

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

})

onRemoteUserMediaTypeChanged

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

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

代码示例

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

})

onRemoteUserMicrophoneStateChanged

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

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

代码示例

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

})

onRemoteUserCameraStateChanged

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

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

代码示例

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

})

onNetworkQuality

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

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

代码示例

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

})

onAudioVolume

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

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

代码示例

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

})

移除监听

removeCallReceivedListener

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

代码示例

JavaScript
CallLib.removeCallReceivedListener()

removeCallConnectedListener

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

代码示例

JavaScript
CallLib.removeCallConnectedListener()

removeCallDisconnectedListener

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

代码示例

JavaScript
CallLib.removeCallDisconnectedListener()

removeRemoteUserJoinedListener

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

代码示例

JavaScript
CallLib.removeRemoteUserJoinedListener()

removeEnableCameraListener

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

代码示例

JavaScript
CallLib.removeEnableCameraListener()

removeSwitchCameraListener

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

代码示例

JavaScript
CallLib.removeSwitchCameraListener()

removeRemoteUserLeftListener

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

代码示例

JavaScript
CallLib.removeRemoteUserLeftListener()

removeErrorListener

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

代码示例

JavaScript
CallLib.removeErrorListener()

removeCallOutgoingListener

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

代码示例

JavaScript
CallLib.removeCallOutgoingListener()

removeRemoteUserRingingListener

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

代码示例

JavaScript
CallLib.removeRemoteUserRingingListener()

removeRemoteUserInvited

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

代码示例

JavaScript
CallLib.removeRemoteUserInvited()

removeRemoteUserMediaTypeChangedListener

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

代码示例

JavaScript
CallLib.removeRemoteUserMediaTypeChangedListener()

removeRemoteUserDidChangeMicrophoneStateListener

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

代码示例

JavaScript
CallLib.removeRemoteUserDidChangeMicrophoneStateListener()

removeRemoteUserCameraStateChangedListener

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

代码示例

JavaScript
CallLib.removeRemoteUserCameraStateChangedListener()

removeNetworkQualityListener

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

代码示例

JavaScript
CallLib.removeNetworkQualityListener()

removeAudioVolumeListener

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

代码示例

JavaScript
CallLib.removeAudioVolumeListener()