跳到主要内容

通话监听

融云 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('音频音量监听已移除');