浏览 SDKs · Android
平台
SDKsAndroid商业版

发起群聊通话

使用 Android SDK 发起群聊音视频通话。

复制

发起群聊音视频通话,参数类型与发起单聊通话相同。群聊通话时,invitation.groupID 必须传入群组 ID,invitation.sessionType 固定为 ConversationType.GROUP_CHAT。

只会邀请 inviteeUserIDList 中列出的成员,填写 groupID 不会自动邀请全群。inviteeUserIDList 列表应排除当前用户、空值和重复成员。示例以群组 ID 作为房间 ID;若自行生成 roomID,所有参与者必须使用相同的值。

SignalingInvitationInfo invitation = new SignalingInvitationInfo();
invitation.setInviterUserID(currentUserID);
invitation.setInviteeUserIDList(selectedGroupMemberIDs);
invitation.setGroupID(groupID);
invitation.setRoomID(groupID);
invitation.setTimeout(30);
invitation.setMediaType("video");
invitation.setSessionType(ConversationType.GROUP_CHAT);
invitation.setPlatformID(Platform.ANDROID);
invitation.setCustomData("{\"source\":\"group-call\"}");

SignalingInfo info = new SignalingInfo();
info.setInvitation(invitation);
info.setOfflinePushInfo(offlinePushInfo);

OpenIMClient.getInstance().signalingManager.signalingInviteInGroup(
    new OnBase<SignalingCertificate>() {
        @Override
        public void onSuccess(SignalingCertificate credentials) {
            // credentials 包含加入媒体房间所需凭据。
        }

        @Override
        public void onError(int code, String error) {
            // code 和 error 说明失败原因。
        }
    },
    info
);

参数说明

参数类型是否必填说明
baseOnBase<SignalingCertificate>是异步请求回调,返回加入音视频房间所需的凭据。
infoSignalingInfo是完整的呼叫信令对象,包含群组 ID、被邀请人列表、房间号和媒体类型等。

邀请参数详情

字段类型说明
inviterUserIDString发起呼叫的用户 ID(当前登录用户)。
inviteeUserIDListList<String>受邀成员的用户 ID 列表,需排除自身并去重。注意填写 groupID 并不会自动呼叫全群。
groupIDString发起群聊通话对应的群组 ID。
roomIDString音视频房间标识,可直接使用群组 ID 或全局唯一 UUID。
timeoutint呼叫超时时间,单位为秒。
mediaTypeString通话类型,例如 "audio" 或 "video"。
sessionTypeint会话类型,群聊通话固定为 ConversationType.GROUP_CHAT。

返回结果

成功回调返回 SignalingCertificate 房间凭据,包含:

  • roomID:音视频房间全局标识。
  • token:进入实时音视频房间的鉴权凭据。
  • liveURL:媒体引擎连接地址。
  • busyLineUserIDList:当前处于忙线状态未能接通的用户列表。

发起方成功获取到凭据后即可连接实时媒体房间。接口成功调用仅代表群呼叫已发起,不代表受邀成员已接听。客户端需以 roomID 为通话全局标识、以 roomID:userID 跟踪各成员的进出房与接听状态,后续事件流转请参考处理通话事件。