/** * Copyright (c) 2022 XYLink Inc. * * XY Electron Slave SDK Lib * * @summary 小鱼易连副屏SDK,用来在多窗口多屏幕下显示远端视频流; * * Created at : 2022-05-27 14:49:50 * Last modified : 2024-12-03 17:48:04 */ import { ISlaveConfig, IEventMap, IMasterParams, TemplateModel } from './type/index'; declare const EventEmitter: any; declare class XYSlaveRTC extends EventEmitter { sdk: any; instance: XYSlaveRTC; config: ISlaveConfig; private logger; private layoutManager; constructor(config: any); private initSDKAll; /** * 获取 XYRTC 实例 * 每次入会时,都需要调用此方法获取实例,仅针对当此会议有效! * * @static */ static getXYInstance(config: ISlaveConfig): XYSlaveRTC; /** * 获取SDK初始化配置数据 * * @returns { IConfig } sdk init config params */ getConfig(): ISlaveConfig; /** * Get sdk version info * * @public * @returns { string } version */ getVersion(): string; /** * 获取日志路径 * * @param { string } logPath * @returns logDirPath */ getLogPath(logPath: string): string; /** * Get dlls path and Init Nemo SDK * * @private */ private initNemoSDK; /** * Get video frame buffer data by c++ * * @public * @param { string } sourceId 用户资源id * @param { boolean } isContent 是否是共享Content内容 * @returns { IFrame } Video frame buffer data */ getVideoFrame(sourceId: any, isContent: any): any; /** * 清理Slave SDK资源 */ destroy(): void; /** * Set log level * level: "INFO" | "DEBUG" | "WARNING" | "ERROR" | "NONE" * * @public */ setLogLevel(level: 'INFO' | 'DEBUG' | 'WARNING' | 'ERROR' | 'NONE'): void; /** * 停止所有的渲染器 * * @public */ stopAllVideoRender(): void; /** * 切换布局 * @param templateModel 布局模式 CONTENT 5种 NORMAL 2种 共7种 * @returns */ switchLayout(templateModel?: TemplateModel): Promise; /** * 发送消息 * * @param { keyof IEventMap } key 消息key * @param { any } data 消息内容 */ emitMessage(key: keyof IEventMap, data: any): void; /** * 绑定sourceId和canvas,代理渲染视频 * * @public * @param sourceId sourceId,通过回调:EVENT.RTC_EVENT_VIDEO_STREAMS 返回给业务 * @param canvasEle canvas id,由第三方提供canvas元素id,后续由sdk接管使用webgl渲染视频 */ setVideoRender(sourceId: string, canvasEle: HTMLCanvasElement | string): { code: any; msg: string; data: Record; }; /** * 注册新创建渲染画面 * * @returns { Promise } common status data */ startSlave(params: IMasterParams): Promise; /** * 停止新新窗口渲染 * * @returns { Promise } common status data */ stopSlave(): Promise; /** * register c++ bridge event message * * @private */ private initEventHandler; } export { XYSlaveRTC };