场景7:自定义菜单
sdk内置菜单
会议底部菜单
- CameraMenu:视频
- ChatMenu:聊天
- MoreMenu:更多
- MuteOrHandMenu:音频&举手
- ParticularMenu:成员
- QaMenu:问答
- ShareMenu:分享
- VoteMenu:投票
会议底部更多菜单
- MoreAITranslationMenu:AI转写
- MoreChatMenu:聊天
- MoreFeedbackMenu:意见反馈
- MoreFloatWindowMenu:浮窗模式
- MoreQaMenu:问答
- MoreRecordMenu:录制
- MoreRtmpMenu:直播
- MoreSettingMenu:设置
- MoreTranslationMenu:同声传译
- MoreVirtualBackgroundMenu:虚拟背景
- MoreVoteMenu:投票
会议分享菜单
- MeetingShareCopy:复制
- MeetingShareEmailMenu:邮件
- MeetingShareMoreMenu:更多
- MeetingShareQQMenu:qq
- MeetingShareSessionMenu:会话
- MeetingShareSMSMenu:短信
自定义会议菜单
最佳实践
1.新建xxxhandle
实现IMeetingMenuStrategy
接口
public class DefaultMeetingBottomBarHandle implements IMeetingMenuStrategy {
/**
* 会议底部菜单
* @return
*/
@Override
public List<MeetingBottomMenuImpl> buildMeetingBottomMenus() {
List<MeetingBottomMenuImpl> list = new ArrayList<>();
list.add(new MuteOrHandMenu());
list.add(new CameraMenu());
list.add(new ShareMenu());
list.add(new ChatMenu());
list.add(new QaMenu());
list.add(new VoteMenu());
list.add(new ParticularMenu());
list.add(new MoreMenu());
return list;
}
/**
* 会议更多菜单
* @return
*/
@Override
public List<MeetingMoreMenuImpl> buildMeetingMoreMenus() {
List<MeetingMoreMenuImpl> list = new ArrayList<>();
list.add(new MoreChatMenu());
list.add(new MoreRecordMenu());
list.add(new MoreQaMenu());
list.add(new MoreVoteMenu());
list.add(new MoreFloatWindowMenu());
list.add(new MoreTranslationMenu());
list.add(new MoreRtmpMenu());
list.add(new MoreVirtualBackgroundMenu());
list.add(new MoreAITranslationMenu());
list.add(new MoreSettingMenu());
list.add(new MoreFeedbackMenu());
return list;
}
/**
* 会议分享菜单
* @return
*/
@Override
public List<IShareMenu> buildShareMenus() {
List<IShareMenu> menus = new ArrayList<>();
menus.add(new MeetingShareSessionMenu());
menus.add(new MeetingShareQQMenu());
menus.add(new MeetingShareWechatMenu());
menus.add(new MeetingShareEmailMenu());
menus.add(new MeetingShareSMSMenu());
menus.add(new MeetingShareCopy());
menus.add(new MeetingShareMoreMenu());
return menus;
}
}
2.最终设置生效handler
MeetingMenuProxy.getInstance().setMeetingMenuBarHandler(new DefaultMeetingBottomBarHandle());
会议底部菜单
public class CustomMenu extends MeetingBottomMenuImpl {
/**
* menuId
* @return
*/
@Override
public int getId() {
return 0;
}
/**
* menu图片
* @return
*/
@Override
public int getDefaultDrawable() {
return 0;
}
/**
* menu 文案
* @return
*/
@Override
public int getDefaultText() {
return 0;
}
/**
* menu 点击事件
*/
@Override
public void onMenuClick() {
super.onMenuClick();
}
}
会议底部更多菜单
public class CustomMenu extends MeetingMoreMenuImpl {
/**
* 注意:不要和内置菜单tag冲突
* @return
*/
@Override
public int getTag() {
return 0;
}
/**
* 图片资源
* @return
*/
@Override
public int getImage() {
return 0;
}
/**
* 文案
* @return
*/
@Override
public int getText() {
return 0;
}
/**
* menu点击事件
*/
@Override
public void onMenuClick() {
super.onMenuClick();
}
}
会议分享菜单
public class CustomMenu extends MeetingShareMenuImpl {
/**
* 注意:不要和内置菜单tag冲突
* @return
*/
@Override
public int getTag() {
return 0;
}
/**
* 图片资源
* @return
*/
@Override
public int getImage() {
return 0;
}
/**
* 文案
* @return
*/
@Override
public int getText() {
return 0;
}
/**
* menu点击事件
*/
@Override
public void onMenuClick() {
super.onMenuClick();
}
}
phone菜单
public class MyPhoneUI extends DefaultCallUI {
@Override
public AsyncTask matchPhoneContactByNumber(String number, CallBack<Contact,Void> callback) {
return ThreadPool.postCommonJob(new JobReleasable<Contact>("matchCallOutContactByNumber", callback) {
@Override
public Contact run() {
Contact contact = new Contact();
contact.setName("哈哈哈哈 张三");
contact.setJob("产品经理哈哈哈哈");
contact.setAvatarDrawable(AppWrapper.getApp().getDrawable(R.drawable.bg_call_dialing));
return contact;
}
@Override
public void onCallback(Contact contact) {
callback.onSuccess(contact);
}
});
}
@Override
public boolean isOverrideMatchPhoneContactByNumber() {
return true;
}
@Override
public Drawable getPhoneDefaultContactAvatarDrawable() {
return AppWrapper.getApp().getDrawable(R.drawable.bg_call_dialing_video);
}
@Override
public String getPhoneCallOutTipContent() {
return "去电提示 哈哈哈哈哈";
}
@Override
public String getPhoneCallInTipContent() {
return "来电提示 滴滴滴滴滴";
}
@Override
public Drawable getPhoneCallInBackgroundDrawable() {
return AppWrapper.getApp().getDrawable(R.drawable.bg_call_dialing_video);
}
@Override
public ArrayList<PhoneBarMenuItem> buildPhoneBarMenuItemList() {
ArrayList<PhoneBarMenuItem> items = new ArrayList<>();
items.add(buildPhoneHangUpMenu());
items.add(buildPhoneDialMenu());
items.add(buildPhoneHoldMenu());
items.add(buildPhoneTransferMenu());
items.add(buildPhoneVoiceMenu());
items.add(buildPhoneMeetingMenu());
items.add(buildPhoneShareScreenMenu());
items.add(buildPhoneMicMenu());
items.add(buildPhoneMoreMenu());
return items;
}
@Override
public ArrayList<PhoneMoreMenuItem> buildPhoneMoreMenuItemList() {
ArrayList<PhoneMoreMenuItem> items = new ArrayList<>();
items.add(buildPhoneFeedbackMenu());
items.add(buildPhoneRecordMenu());
items.add(buildPhoneVideoMenu());
return items;
}
}