import { default as XYRTCClient } from '../client'; import { default as VideoManager } from './videoManager'; import { XYVideoRendererMap, XYAudioRendererMap, XYBaseModule } from '../../type/index'; export declare class XYRender implements XYBaseModule { private client; private logger; private slaveVideoManagers; private videoManagerMap; private audioManagerMap; constructor(client: XYRTCClient); getVideoManagerMap(): XYVideoRendererMap; /** * 获取音频管理器 */ getAudioManagerMap(): XYAudioRendererMap; /** * 销毁资源 */ destroy(): void; /** * 设置画面渲染元素并播放Video画面 * * @param { string } id - 参会者Layout Id * @param { string } wrapEleId - 包裹video组件的容器ID字段 */ setVideoRenderer(id: string, wrapEleId: string): Promise; /** * 切换唇音同步通道状态 * 1、如果有视频通道,则切换使用视频通道,并Mute音频通道 * 2、如果没有视频通道,则切换使用音频通道播放 * 方案文档:https://nones.xylink.com/wiki/#/team/AQzvsooq/space/SLqJDsvD/page/13r8uVuq * * @param { string } id - 参会者Layout Id * @param { XYMuteState } videoState - 视频静音状态 * @param { XYMuteState } audioState - 音频静音状态 */ private switchAudioVideoLipSync; /** * 设置画面渲染元素并播放Video画面 * * @param { string } layoutId - 参会者Layout Id * @param { string } wrapEleId - 包裹video组件的容器ID字段 */ setSlaveVideoRenderer(layoutId: string, wrapEleId: string): Promise; /** * videoManagers 移除key对应的元素 * * @param { string } id - 参会者Layout Id */ removeVideoRenderer(id: string): Promise; /** * 【副屏渲染】移除副屏渲染信息 * 如果layoutId和viewId没有填写,则清空所有的副屏渲染配置数据 * * @param { string } rosterId - 参会者Layout Id * @param { string } viewId 包裹video组件的元素id,此元素一定要提供宽高信息,内部会基于此宽高信息计算video的旋转信息 */ removeSlaveVideoRenderer(layoutId?: string, viewId?: string): Promise; /** * 重新播放Video画面组件 * * @param { string[]? } idList - Layout Id 列表,如果为空值,则播放所有画面 */ playVideo(idList?: string[]): Promise; /** * 播放本地视频 */ playLocalVideo(): Promise; /** * 重新播放音频 */ playAudio(): Promise; /** * 提供Audio元素信息,用于播放音频流 * * @param { string } streamId - mediaStream流ID * @param { HTMLAudioElement } ele - audio元素 */ setAudioRenderer(streamId: string, ele: HTMLAudioElement): Promise; /** * 移除对应的AudioRender * * @param { string } streamId - mediaStream流ID */ removeAudioRenderer(streamId: string): Promise; /** * Video组件状态变更回调事件 * * @param { string } id - 参会者Layout Id */ private onVideoStatusChange; /** * Video组件播放错误回调事件 * * @param { string } id - 参会者Layout Id * @param { Error } data - 播放错误数据 */ private onVideoPlayError; /** * 更新本地LocalTrack状态 * * @param { string } id - Layout Id */ updateLocalTrack(id: string): void; /** * 通过Layout ID创建并获取Video管理器 * * @param { string } id - Layout Id * @param { boolean } isContent - 是否是Content内容 * @return { VideoManager } - 视频管理器 */ getVideoManagerById(id: string, isContent: boolean): VideoManager; /** * 清理失效的 video manager 数据 */ clearInvalidVideoManagers(): void; /** * 【内部方法】停止轮询时,清理无效的 videoManager 数据 * * @param { string[] } monitoryList - callUri list 数据 */ clearVideoManagersUseMonitorList(monitoryList: string[]): void; /** * 清楚所有的音频管理器 */ private clearAudioManagers; }