场景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 MobilePhoneUI {
//显示去电界面
@Override
public void showPhoneOutgoingUI() {
super.showPhoneOutgoingUI();
}
//显示来电界面
@Override
public void showPhoneInComingUI() {
super.showPhoneInComingUI();
}
//显示通话界面
@Override
public void showPhoneCallWindow() {
super.showPhoneCallWindow();
PhoneCallActivity.start(AppWrapper.getApp());
}
}
最终设置生效handler
YealinkSdk.getPhoneService().getPhoneController().setPhoneUIProxy(new MyPhoneUI());