跳到主要内容

通话监听

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

添加监听​

onCallReceived​

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

方法​

JavaScript
CallLib.onCallReceived(callback);

回调参数​

参数类型说明
callSessionObject通话会话对象,包含通话相关信息

示例代码​

JavaScript
CallLib.onCallReceived((callSession) => {
console.log('收到来电:', callSession);
});

onCallConnected​

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

方法​

JavaScript
CallLib.onCallConnected(callback);

示例代码​

JavaScript
CallLib.onCallConnected(() => {
console.log('通话已接通');
});

onCallDisconnected​

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

方法​

JavaScript
CallLib.onCallDisconnected(callback);

回调参数​

参数类型说明
reasonNumber挂断原因,详见挂断通话的原因

示例代码​

JavaScript
CallLib.onCallDisconnected((reason) => {
console.log('通话已结束,原因:', reason);
});

onRemoteUserJoined​

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

方法​

JavaScript
CallLib.onRemoteUserJoined(callback);

回调参数​

参数类型说明
userObject远端用户信息,详细参见通话信息中对 user 对象各属性的详细说明

示例代码​

JavaScript
CallLib.onRemoteUserJoined((user) => {
console.log('远端用户加入:', user);
});

OnRemoteUserLeft​

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

方法​

JavaScript
CallLib.OnRemoteUserLeft(callback);

回调参数​

参数类型说明
userObject远端用户信息,详细参见通话信息中对 user 对象各属性的详细说明
reasonNumber挂断原因,详细参见通话挂断的原因

示例代码​

JavaScript
CallLib.OnRemoteUserLeft((user, reason) => {
console.log('远端用户离开:', user, '原因:', reason);
});

onEnableCamera​

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

方法​

JavaScript
CallLib.onEnableCamera(callback);

回调参数​

参数类型说明
cameraNumber摄像头类型
enableBoolean是否开启

示例代码​

JavaScript
CallLib.onEnableCamera((camera, enable) => {
console.log('摄像头状态改变:', camera, enable);
});

onSwitchCamera​

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

方法​

JavaScript
CallLib.onSwitchCamera(callback);

回调参数​

参数类型说明
cameraNumber摄像头类型
enableBoolean是否开启

示例代码​

JavaScript
CallLib.onSwitchCamera((camera, enable) => {
console.log('摄像头切换:', camera, enable);
});

onError​

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

方法​

JavaScript
CallLib.onError(callback);

回调参数​

参数类型说明
codeNumber错误码,详见通话错误的原因

示例代码​

JavaScript
CallLib.onError((code) => {
console.log('通话出现错误:', code);
});

onCallOutgoing​

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

方法​

JavaScript
CallLib.onCallOutgoing(callback);

示例代码​

JavaScript
CallLib.onCallOutgoing(() => {
console.log('开始呼叫');
});

onRemoteUserRinging​

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

方法​

JavaScript
CallLib.onRemoteUserRinging(callback);

回调参数​

参数类型说明
userIdString远端用户 ID

示例代码​

JavaScript
CallLib.onRemoteUserRinging((userId) => {
console.log('远端用户正在振铃:', userId);
});

OnRemoteUserInvited​

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

方法​

JavaScript
CallLib.OnRemoteUserInvited(callback);

回调参数​

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

示例代码​

JavaScript
CallLib.OnRemoteUserInvited((userId, mediaType) => {
console.log('用户被邀请加入通话:', userId, mediaType);
});

onRemoteUserMediaTypeChanged​

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

方法​

JavaScript
CallLib.onRemoteUserMediaTypeChanged(callback);

回调参数​

参数类型说明
userObject远端用户信息,详细参见通话信息中对 user 对象各属性的详细说明
mediaTypeNumber表示通话媒体类型。0 是音频,1 是音视频

示例代码​

JavaScript
CallLib.onRemoteUserMediaTypeChanged((user, mediaType) => {
console.log('远端用户媒体类型改变:', user, mediaType);
});

onRemoteUserMicrophoneStateChanged​

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

方法​

JavaScript
CallLib.onRemoteUserMicrophoneStateChanged(callback);

回调参数​

参数类型说明
userObject远端用户信息,详细参见通话信息中对 user 对象各属性的详细说明
enableBoolean表示是否已开启。true 表示已开启,false 表示未开启

示例代码​

JavaScript
CallLib.onRemoteUserMicrophoneStateChanged((user, enable) => {
console.log('远端用户麦克风状态改变:', user, enable);
});

onRemoteUserCameraStateChanged​

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

方法​

JavaScript
CallLib.onRemoteUserCameraStateChanged(callback);

回调参数​

参数类型说明
userObject远端用户信息,详细参见通话信息中对 user 对象各属性的详细说明
enableBoolean表示是否已开启。true 表示已开启,false 表示未开启

示例代码​

JavaScript
CallLib.onRemoteUserCameraStateChanged((user, enable) => {
console.log('远端用户摄像头状态改变:', user, enable);
});

onNetworkQuality​

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

方法​

JavaScript
CallLib.onNetworkQuality(callback);

回调参数​

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

示例代码​

JavaScript
CallLib.onNetworkQuality((user, quality) => {
console.log('网络质量:', user, quality);
});

onAudioVolume​

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

方法​

JavaScript
CallLib.onAudioVolume(callback);

回调参数​

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

示例代码​

JavaScript
CallLib.onAudioVolume((user, volume) => {
console.log('音频音量:', user, volume);
});

移除监听​

removeCallReceivedListener​

移除对"通话呼入"的监听。

方法​

JavaScript
CallLib.removeCallReceivedListener();

示例代码​

JavaScript
CallLib.removeCallReceivedListener();
console.log('通话呼入监听已移除');

removeCallConnectedListener​

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

方法​

JavaScript
CallLib.removeCallConnectedListener();

示例代码​

JavaScript
CallLib.removeCallConnectedListener();
console.log('通话已接通监听已移除');

removeCallDisconnectedListener​

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

方法​

JavaScript
CallLib.removeCallDisconnectedListener();

示例代码​

JavaScript
CallLib.removeCallDisconnectedListener();
console.log('通话已结束监听已移除');

removeRemoteUserJoinedListener​

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

方法​

JavaScript
CallLib.removeRemoteUserJoinedListener();

示例代码​

JavaScript
CallLib.removeRemoteUserJoinedListener();
console.log('远端用户加入监听已移除');

removeEnableCameraListener​

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

方法​

JavaScript
CallLib.removeEnableCameraListener();

示例代码​

JavaScript
CallLib.removeEnableCameraListener();
console.log('摄像头状态监听已移除');

removeSwitchCameraListener​

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

方法​

JavaScript
CallLib.removeSwitchCameraListener();

示例代码​

JavaScript
CallLib.removeSwitchCameraListener();
console.log('摄像头切换监听已移除');

removeRemoteUserLeftListener​

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

方法​

JavaScript
CallLib.removeRemoteUserLeftListener();

示例代码​

JavaScript
CallLib.removeRemoteUserLeftListener();
console.log('远端用户离开监听已移除');

removeErrorListener​

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

方法​

JavaScript
CallLib.removeErrorListener();

示例代码​

JavaScript
CallLib.removeErrorListener();
console.log('错误监听已移除');

removeCallOutgoingListener​

移除对"开始呼叫"的监听。

方法​

JavaScript
CallLib.removeCallOutgoingListener();

示例代码​

JavaScript
CallLib.removeCallOutgoingListener();
console.log('开始呼叫监听已移除');

removeRemoteUserRingingListener​

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

方法​

JavaScript
CallLib.removeRemoteUserRingingListener();

示例代码​

JavaScript
CallLib.removeRemoteUserRingingListener();
console.log('远端用户振铃监听已移除');

removeRemoteUserInvited​

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

方法​

JavaScript
CallLib.removeRemoteUserInvited();

示例代码​

JavaScript
CallLib.removeRemoteUserInvited();
console.log('用户邀请监听已移除');

removeRemoteUserMediaTypeChangedListener​

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

方法​

JavaScript
CallLib.removeRemoteUserMediaTypeChangedListener();

示例代码​

JavaScript
CallLib.removeRemoteUserMediaTypeChangedListener();
console.log('远端用户媒体类型改变监听已移除');

removeRemoteUserDidChangeMicrophoneStateListener​

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

方法​

JavaScript
CallLib.removeRemoteUserDidChangeMicrophoneStateListener();

示例代码​

JavaScript
CallLib.removeRemoteUserDidChangeMicrophoneStateListener();
console.log('远端用户麦克风状态监听已移除');

removeRemoteUserCameraStateChangedListener​

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

方法​

JavaScript
CallLib.removeRemoteUserCameraStateChangedListener();

示例代码​

JavaScript
CallLib.removeRemoteUserCameraStateChangedListener();
console.log('远端用户摄像头状态监听已移除');

removeNetworkQualityListener​

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

方法​

JavaScript
CallLib.removeNetworkQualityListener();

示例代码​

JavaScript
CallLib.removeNetworkQualityListener();
console.log('网络质量监听已移除');

removeAudioVolumeListener​

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

方法​

JavaScript
CallLib.removeAudioVolumeListener();

示例代码​

JavaScript
CallLib.removeAudioVolumeListener();
console.log('音频音量监听已移除');