enum RoomCommand { ///ping服务器,用于心跳 ping("ping"), ///加入房间 joinRoom("into_room"), ///获取房间信息(没啥用) getRoomInfo("room_data"), ///学生开关扬声器、摄像头、麦克风 switchCamera("mute_self"), ///学生上传文件 uploadFile("upload_file"), ///学生举手 handUp("handup"), ///老师开启自习室 openRoom("start_study_room"), ///老师关闭自习室 closeRoom("close_study_room"), ///老师开关学生的扬声器、关闭摄像头、关闭麦克风 switchStudentCamera("mute_user"), ///老师清除学生的举手 clearHandUp("clear_handup"), ///邀请学生进入白板 inviteStudent("invite_whiteboard"); final String value; const RoomCommand(this.value); } enum RoomEvent { ///人员变化事件 changeUser("sys_room_user_changed"), ///学生端开启扬声器 openSpeaker("user_unmute_self_speeker"), ///学生端关闭扬声器 closeSpeaker("user_mute_self_speeker"), ///学生开启麦克风 openMic("user_unmute_self_microphone"), ///学生关闭麦克风 closeMic("user_mute_self_microphone"), ///学生开启摄像头 openCamera("user_unmute_self_camera"), ///学生关闭摄像头 closeCamera("user_mute_self_camera"), ///学生文件上传完毕 fileUploadComplete("sys_user_file_uploaded"), ///学生举手事件 handUp("sys_user_handup"), ///自习室以开启,进入自习室(学生用) openRoom("sys_start_study_room"), ///自习室以关闭,退出自习室(学生用) closeRoom("sys_close_study_room"), ///老师关闭学生的扬声器 closeStudentSpeaker("sys_control_mute_speeker"), ///老师打开学生的扬声器 openStudentSpeaker("sys_control_unmute_speeker"), ///老师关闭学生的麦克风 closeStudentMic("sys_control_mute_microphone"), ///老师关闭学生的摄像头 closeStudentCamera("sys_control_mute_camera"), ///老师清除学生的举手(学生用) clearHandUp("sys_clear_handup"), ///学生收到白板邀请(学生用) inviteWhiteboard("sys_invite_whiteboard"); final String value; const RoomEvent(this.value); /// 根据 值获取枚举 static RoomEvent fromStr(String value) { return RoomEvent.values.firstWhere( (e) => e.value == value, orElse: () => throw ArgumentError('Invalid weather type value: $value'), ); } }