asp.net网站开发 pdf,全球互联网中心在哪里,广州市天河区工程建设监督网站,wordpress 没有注册目录RoleType使用场景#xff1a;方法与使用说明源码RoleType
接着之前的 UserInfo,对RoleType做进一步说明. 此类是SDK的公共类#xff0c;可以在任一SDK使用方进行调用#xff0c;之前有提到role是一个“复合”的值1#xff0c;所以不能简单的用“” 来判断#xff0c;…
目录RoleType使用场景方法与使用说明源码RoleType
接着之前的 UserInfo,对RoleType做进一步说明. 此类是SDK的公共类可以在任一SDK使用方进行调用之前有提到role是一个“复合”的值1所以不能简单的用“” 来判断为了方便给使用者提供一个工具类来调用。
使用场景
直播聊天消息的角色判断点播聊天消息的角色判断其他有role的判断的地方
实际上UserInfo也是调用RoleType的函数并返回给调用者例如userInfo.isHost()。
方法与使用说明
具有的函数都返回boolean值参数都是int型的值(role)都是静态方法
isHost(int role) //老师、组织者isPresentor(int role) //主讲isPanelist(int role) //助教、嘉宾isAttendee(int role)客户端学生电脑客户端或rtsdk加入的用户isAttendeeWeb(int role) web端学生web、小程序或player sdk加入的用户
使用的时候如果只判断是否为其中一种角色那么直接调用其中一个函数就可以。 如果是分别判断的话请按顺序依次判断例如
if (RoleType.isHost(role)) {//todo 老师、组织者} else if (RoleType.isPresentor(role)) {//todo 主讲} else if (RoleType.isPanelist(role)) {//todo 助教 嘉宾} else if (RoleType.isAttendee(role)) {//todo 客户端学生} else if (RoleType.isAttendeeWeb(role)) {//todo web端学生}主要原因是复合例如7代表老师或组织者但老师或组织者的角色实际上是1是因为 7 1|2|4该用户同时具有老师、主讲、助教的身份最高身份是老师所以说7代表老师。 再这种一个位表示一种身份的情况下可以简单理解为7124。
源码 public static final int ROLE_HOST 0x01;//组织者、老师public static final int ROLE_PRESENT 0x02;//主讲public static final int ROLE_PANELIST 0x04;//嘉宾、助教public static final int ROLE_ATTENDEE 0x08;//客户端学生public static final int ROLE_ATTENDEE_WEB 0x10;//web端学生public static final int ROLE_LOD 0x20;//插播app几乎用不上public static boolean isHost(int role) {return (role RoleType.ROLE_HOST) RoleType.ROLE_HOST;}public static boolean isPresentor(int role) {return (role RoleType.ROLE_PRESENT) RoleType.ROLE_PRESENT;}public static boolean isPanelist(int role) {return (role RoleType.ROLE_PANELIST) RoleType.ROLE_PANELIST;}public static boolean isAttendee(int role) {return (role RoleType.ROLE_ATTENDEE) RoleType.ROLE_ATTENDEE;}public static boolean isAttendeeWeb(int role) {return (role RoleType.ROLE_ATTENDEE_WEB) RoleType.ROLE_ATTENDEE_WEB;}public static boolean isLodUser(int role) {return (role RoleType.ROLE_LOD) RoleType.ROLE_LOD;}public static boolean isMiniClassTeacher(int role){return isHost(role) || isPresentor(role) || isPanelist(role);}/*** otherUserRole 是否比role的角色权限高* param otherUserRole* param role* return*/public static boolean isRoleGreater(int otherUserRole,int role) {for (int i 0; i 3; i) // 比到第二位,嘉宾位, 0:组织者,1 主讲{int nMe (role i) 0x01;int nOther (otherUserRole i) 0x01;if (nMe ! nOther) {return nMe nOther;}}return false;}关于位运算后面会介绍。 role 在系统中是用位来表示的一个角色可能包含多个位多个身份函数中实现是做位运算。 ↩︎