通话监听
融云 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 监听有用户被邀请加入通话(仅限群聊)。
回调方法的参数说明
参数 | 类型 | 说明 |
---|---|---|
userId | String | 用户id |
mediaType | Number | 通话媒体类型,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()