/** * Polling Lib Type Defined * * Created at : 2022-10-27 18:13:24 * Last modified : 2024-06-04 16:41:42 */ /** * 轮询多画面布局模型 * * @property 1x1 - 对称1画面 * @property 2x1 - 对称2画面 * @property 3x1 - 对称3画面 * @property 4x1 - 对称4画面 * @property 4x2 - 非对称4画面 * @property 5x1 - 非对称5画面 * @property 6x1 - 对称6画面 * @property 6x2 - 非对称6画面 * @property 8x1 - 非对称8画面 * @property 9x1 - 对称9画面 */ export declare enum CustomizedMode { '1x1' = "1x1", '2x1' = "2x1", '3x1' = "3x1", '4x1' = "4x1", '4x2' = "4x2", '5x1' = "5x1", '6x1' = "6x1", '6x2' = "6x2", '8x1' = "8x1", '9x1' = "9x1" } /** * 多画面布局成员位置属性 * * @property SPEAKER - 语音激励 * @property SPECIFIED - 指定成员 * @property AUTO - 自动轮询 */ export declare enum CustomizedType { 'SPEAKER' = "speaker", 'SPECIFIED' = "specified", 'AUTO' = "auto" } /** * 轮询状态 * * @property INIT - 初始化状态 * @property READY - 轮询准备状态 * @property PAUSE_MEETING - 会控轮询暂停状态 * @property PAUSE_SDK - SDK基于优先级暂停轮询状态 * @property POLLING - 正在轮询中 */ export declare enum PollingState { 'INIT' = "INIT", 'READY' = "READY", 'PAUSE_MEETING' = "PAUSE_MEETING", 'PAUSE_SDK' = "PAUSE_SDK", 'POLLING' = "POLLING" } /** * 自动轮询多画面状态 * * @property NORMAL - 画面正常 * @property NORMAL_AVC - AVC画面正常(不展示画面名称/麦克风等Mark信息) * @property NO_JOINED - 未入会 * @property VIDEO_MUTE - 视频暂停 * @property NOT_FOUND - 未符合条件的终端 * @property NULL - 画面为空 */ export declare enum AutoState { 'NORMAL' = "NORMAL", 'NORMAL_AVC' = "NORMAL_AVC", 'NO_JOINED' = "NO_JOINED", 'VIDEO_MUTE' = "VIDEO_MUTE", 'NOT_FOUND' = "NOT_FOUND", 'NULL' = "NULL" } /** * 自动轮询数据入口 * * @property FULL_ROSTER - 全量轮询 * @property SPECIFIED - 指定轮询 */ export declare enum AutoPollingDataEntry { 'FULL_ROSTER' = 0, 'SPECIFIED' = 1 } /** * 多画面类型 * * @property UNKNOWN - 未知 * @property MULTI_VIEW - 多画面 * @property MULTI_VIEW_AVC - 多画面AVC合并画面 * @property POLLING - 轮询 * @property POLLING_AVC - 轮询AVC合并画面 */ export declare enum XYCurrentMultiLayoutType { 'UNKNOWN' = "UNKNOWN", 'MULTI_VIEW' = "MULTI_VIEW", 'MULTI_VIEW_AVC' = "MULTI_VIEW_AVC", 'POLLING' = "POLLING", 'POLLING_AVC' = "POLLING_AVC" } /** * 会控指定成员基础数据 * * @property { string } di - endpointId,参会者唯一ID * @property { string } dn - deviceNumber,暂时未使用 */ export type BaseSpecifiedInfo = { di: string; dn: string; }; /** * 轮询布局模型 */ export type PollingModeItem = CustomizedMode | null; /** * 轮询模型状态 * * @property { PollingModeItem } pre - 上一次轮询模型状态 * @property { PollingModeItem } next - 最新的轮询模型状态 */ export interface PollingMode { pre: PollingModeItem; next: PollingModeItem; } /** * 封装轮询数据结构 * * @property { string } endpointId - 参会者唯一ID * @property { number } mediaGroupId - 参会者通道分组,0代表People,1代表Content * @property { AutoState } state - 参会者当前画面状态 * @property { string } deviceName - 参会者名称 */ export interface BasePollingItem { endpointId: string; mediaGroupId: number; state: AutoState; deviceName?: string; } /** * 指定轮询列表 * * @property { number } index - 当前轮询的页码数(pollingList的索引位置),翻页使用 * @property { BasePollingItem[] } pollingList - 当前指定轮询成员列表数据 */ export interface SpecifiedMap { index: number; pollingList: BasePollingItem[]; } /** * 自动轮询列表 * * @property { number } pageSize - 当前页成员数 * @property { number } totalPage - 总页数 * @property { number } currentPage - 当前页码 * @property { BasePollingItem[] } pollingList - 当前自动轮询成员列表数据 */ export interface AutoPollingMap { pageSize: number; totalPage: number; currentPage: number; pollingList: BasePollingItem[]; } /** * 会控自动轮询消息-基础数据结构 * * @property { number[] } layout - 坐标系数,[x,y,w,h],分辨代表X、Y、Width、Height系数,由于是硬件16:9容器的系数,因此SDK无法使用 * @property { number } sequence - 当前位置的索引位 * @property { number } pollingInterval - 当前轮询间隔时间 * @property { BaseSpecifiedInfo[] } items - 轮询的成员列表数据 * @property { CustomizedType } type - 多画面布局成员位置属性 * @property { boolean } autoFill - 是否自动裁剪 * @property { boolean } pollingPause - 轮询多画面是否暂停,true代表暂停,false代表轮询中 */ export type CustomizedItem = { autoFill: boolean; items: BaseSpecifiedInfo[]; layout: number[]; pollingInterval: number; pollingPause: boolean; sequence: number; type: CustomizedType; }; /** * 混合轮询多画面消息 * * @property { boolean } mix - 是否是混合轮询 * @property { boolean } auto - 是否是自动轮询,true代表启用自动轮询 * @property { BaseSpecifiedInfo[] } autoSpecified - 自动轮询/手动轮询的指定轮询列表 * @property { boolean } autoFillEmptyScreen - 是否自动填充空画面,true代表启用自动填充空画面 * @property { boolean } autoFileUnjoined - 是否自动填充未入会画面,true代表启用自动填充未入会画面 * @property { CustomizedItem[] } detail - 轮询多画面列表数据,包含每一项的详细配置数据 * @property { boolean } useAvc - 是否是AVC合并画面模式 * @property { string } modeType - 多画面类型,分svc/是否是AVC合并画面模式 * @property { object } exFlags - 针对avc的额外配置项 * @property { string } ftRoster - AVC Roster信息,用于请流时指定此设备 * @property { CustomizedMode } mode - 多画面布局模型 * @property { boolean } polling - 是否是轮询模式,true代表正在轮询 * @property { boolean } templatePolling - 忽略 * @property { array } templateDetails - 忽略 * @property { boolean } skipUnjoined - 自动/指定论序时,是否忽略未入会终端 * @property { boolean } skipMuteVideo - 自动/指定轮询时,是否忽略视频关闭终端 * @property { boolean } speakerPriority - 自动/指定轮询时,是否优先显示语音激励画面(对称布局在左上角,非对称在打画面位置) * @property { boolean? } stop - 是否停止轮询多画面,如果有值,则仅此一个值,无其他属性 */ export type XYMultiViewLayout = { auto: boolean; autoSpecified: BaseSpecifiedInfo[]; autoFillEmptyScreen: boolean; autoFileUnjoined: boolean; detail: CustomizedItem[]; exFlags: object; ftRoster?: string; mix: boolean; mode: CustomizedMode; modeType: string; polling: boolean; skipMuteVideo: boolean; skipUnjoined: boolean; speakerPriority: boolean; templateDetails: []; templatePolling: boolean; useAvc: boolean; stop?: boolean; }; /** * 布局项数据结构 * * @property { BasePollingItem | null } item - 轮询项数据 * @property { string } customId - 自定义ID */ export interface XYPollingLayoutItemData { item: BasePollingItem | null; customId: string; }