Skip to main content

SDK 中通过通话实体 ICallSession 对音视频通话进行操作。呼出通话时,开发者通过 startSingleCall 或者 startMultiCall 方法的返回值获取通话实体。接听通话时,开发者通过 onCallReceive 回调获取通话实体。开发者还可以使用下面方法获取指定 callId 对应的通话实体。

ICallSession callSession = JIM.getInstance().getCallManager().getCallSession(callId);

开发者持有通话实体之后,可以方便的获取通话相关的属性,并对其进行接听、挂断等操作。

// 接听来电
void accept();
// 挂断来电
void hangup();
// 开启摄像头
void enableCamera(boolean isEnable);
// 设置用户的视频 view
void setVideoView(String userId, View view);
// 开始预览
void startPreview(View view);
// 设置麦克风静音
void muteMicrophone(boolean isMute);
// 设置扬声器静音
void muteSpeaker(boolean isMute);
// 设置外放声音
// true 使用外放扬声器;false 使用听筒
void setSpeakerEnable(boolean isEnable);
// 切换摄像头,默认 true 使用前置摄像头
void useFrontCamera(boolean isEnable);
// 呼叫用户加入通话(isMultiCall 为 false 时不支持该功能)
void inviteUsers(List<String> userIdList);

// 通话 id
String getCallId();
// 是否多人通话,false 表示一对一通话
boolean isMultiCall();
// 媒体类型(语音/视频)
CallConst.CallMediaType getMediaType();
// 通话状态
CallConst.CallStatus getCallStatus();
// 呼叫开始时间(多人会话中当前用户被呼叫的时间,不一定等于整个通话开始的时间)
long getStartTime();
// 当前用户加入通话的时间
long getConnectTime();
// 当前用户结束通话的时间
long getFinishTime();
// 通话的发起人 id
String getOwner();
// 邀请当前用户加入通话的用户 id
String getInviter();
// 通话结束原因
CallConst.CallFinishReason getFinishReason();
// 通话参与者(除当前用户外的其他参与者)
List<CallMember> getMembers();
// 当前用户
CallMember getCurrentCallMember();
// 扩展字段
String getExtra();