更新时间:2024-12-27 GMT+08:00

自定义与会者列表页面中的菜单

该接口用于自定义与会者列表页面中的菜单,包括下面六种菜单:

1.buildParticipantMoreMenuItems:自定义标题栏右侧菜单项

图1中区域1位置的菜单

2.buildParticipantItemMenuItems:自定义与会者列表项点击弹出的菜单

点击图1区域2弹出图2

3.buildParticipantToolbarMenuItems:自定义与会者会中页面底部菜单栏

图1中区域3位置的菜单

4.buildParticipantToolbarMoreMenuItems:自定义点击底部更多菜单项弹出的菜单

点击图1区域4弹出图3

5.buildWaitingToolbarMenuItems:自定义与会者等候室页面底部菜单栏

图4中红框区域位置的菜单

6.buildUnJoinedToolbarMenuItems:自定义与会者未入会页面底部菜单栏

图5中红框区域位置的菜单

使用场景

需要自定义与会者页面六个区域菜单项的场景

注意事项

1.SDK初始化的时候必须传入这个配置sdkConfig才会生效

自定义与会者列表点击菜单设置

示例代码

1
sdkConfig.setParticipantMenuStrategy(new CustomParticipantMenuHandle());

图1 与会者列表各个菜单区域图示

与会者列表自定义菜单

图2 与会者列表自定义菜单
图3 与会者列表更多自定义菜单
图4 与会者列表等候室自定义菜单
图5 与会者列表未入会自定义菜单

示例代码

public class CustomParticipantMenuHandle implements IParticipantMenuStrategy {
    @Override
    public List<IConfMenu> buildParticipantMoreMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new ParticipantShareMenu());
        confMenus.add(new ContantMenu());
        //【演示】增加一个自定义菜单
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildParticipantItemMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        // 分组1
        confMenus.add(new MuteOrUnmuteMenu());//静音
        confMenus.add(new CameraMenu());//视频
        confMenus.add(new HandsUpOrDownMenu().setDarkIcon(true));//举手
        confMenus.add(new SelectWatchOrCacnelMenu());//选看
        confMenus.add(new PrivateChatMenu());// 私聊
        confMenus.add(new SharingBroadcastAndCancelMenu());//广播共享
        confMenus.add(new BroastAndCacelMenu());//广播视频
        // 分组2
        confMenus.add(new RenameMenu());//改名
        confMenus.add(new InviteOrCancelShareMenu());//邀请共享或取消共享
        confMenus.add(new GrantOrCancelLocalRecordMenu());//允许或禁止本地录制
        confMenus.add(new SetAttendeeMenu());//设为观众
        confMenus.add(new ReleaseOrRequestChairManMenu());//申请/释放主持人
        confMenus.add(new SetChairmanMenu());//设为主持人
        confMenus.add(new SetOrCancelCoHostMenu());//设为/撤销联席主持人
        confMenus.add(new MoveToWaitingRoomMenu()); // 移至等候室
        confMenus.add(new RecallMenu());//重新呼叫
        if (HWMBizSdk.getPublicConfigApi().isChinaSite()) {
            confMenus.add(new CallOtherNumberMenu());//呼叫其他号码
        }
        // 分组3
        confMenus.add(new HangupMenu());//挂断
        confMenus.add(new AdmitMenu());//准入
        confMenus.add(new AutoAdmitMenu());//自动准入
        confMenus.add(new RemoveMenu());//移除

        //【演示】增加一个自定义菜单
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildParticipantToolbarMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        //--------------主席身份下才有的菜单-------------
        //全场静音
        confMenus.add(new MuteAllMenu());
        //取消全场静音
        confMenus.add(new CancelAllMuteMenu());
        //更多
        confMenus.add(new MoreMenu());
        //--------------非主席身份下才有的菜单-------------
        //举手
        confMenus.add(new HandsupMenu());
        //手放下
        confMenus.add(new HandsDownMenu());
        //申请主持人
        confMenus.add(new RequestChairmanMenu());
        //-----------演示增加自定义菜单----------
        confMenus.add(new CustomMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildWaitingToolbarMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new AdmitAllMenu());
        confMenus.add(new RemoveAllMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildUnJoinedToolbarMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new CallAllMenu());
        return confMenus;
    }
    @Override
    public List<IConfMenu> buildParticipantToolbarMoreMenuItems() {
        List<IConfMenu> confMenus = new ArrayList<>();
        confMenus.add(new ReleaseOrRequestChairManMenu());
        confMenus.add(new AllowUnmuteOrNotMenu());
        confMenus.add(new LockOrUnlockConfMenu());
        //【演示】增加一个自定义菜单
        confMenus.add(new CustomMoreMenu());
        return confMenus;
    }
}