import { AgoraRtcCanvasTag, AgoraRtcCanvasTagPool } from '../../../core/rtc/canvas'; import { AgoraRteRenderView } from '../../../type'; import { type IRtcEngineEx } from 'shengwang-electron-sdk'; import { AgoraRtcVideoCanvas } from '../../../core/rtc/canvas'; import { AgoraRtcConnection, AgoraRtcMediaSourceIndex } from '../../../core/rtc/type'; import { AgoraRtcSourceManager } from '../../../core/rtc/source-manager'; /** * Agora RTC 画布标签池实现类 * 负责管理视频渲染画布的生命周期和状态 */ export declare class AgoraRtcCanvasTagPoolImpl extends AgoraRtcCanvasTagPool { private readonly _rtcEngine; private readonly _sourceManager; private readonly _canvasTagPool; /** * 创建画布标签池实例 * @param _sourceManager - 源管理器实例 */ constructor(_rtcEngine: IRtcEngineEx, _sourceManager: AgoraRtcSourceManager); release(): number; /** * 根据画布地址获取画布标签 * @param canvasAddress - 画布地址 * @returns 画布标签或 undefined */ getTagWithCanvasId(canvasAddress: AgoraRteRenderView): AgoraRtcCanvasTag | undefined; /** * 添加画布标签到池中 * @param canvasAddress - 画布地址 * @param sourceId - 源ID * @param canvas - 视频画布实例 * @param isLocal - 是否为本地画布 * @param connection - RTC连接(可选) */ addTagWithCanvasId(canvasAddress: AgoraRteRenderView, sourceId: string, canvas: AgoraRtcVideoCanvas, isLocal: boolean, connection?: AgoraRtcConnection, localCameraSourceIndex?: AgoraRtcMediaSourceIndex): number; /** * 停止指定画布上的渲染 * @param canvasAddress - 画布地址 * @param rtcEngine - RTC引擎实例 */ ifNeedStopRenderCanvas(canvasAddress: AgoraRteRenderView): number; ifNeedStopLocalRenderCanvas(canvasAddress: AgoraRteRenderView): void; /** * 停止所有指定源ID的画布渲染 * @param sourceId - 源ID * @param rtcEngine - RTC引擎实例 */ stopRenderOnAllCanvasWithSourceId(sourceId: string): number; /** * 获取画布标签池 * @returns 画布标签池的 Map */ get getCanvasTagPool(): Map; /** * 停止远程渲染 * @param canvasTag - 画布标签 * @param rtcEngine - RTC引擎实例 */ private _stopRemoteRender; /** * 停止本地渲染 * @param canvasTag - 画布标签 * @param rtcEngine - RTC引擎实例 */ private _stopLocalRender; /** * 在所有画布上停止远程渲染 * @param canvasTag - 画布标签 * @param rtcEngine - RTC引擎实例 */ private _stopRemoteRenderOnAllCanvas; /** * 在所有画布上停止本地渲染 * @param canvasTag - 画布标签 * @param rtcEngine - RTC引擎实例 */ private _stopLocalRenderOnAllCanvas; /** * 清理画布资源 * @param canvasAddress - 画布地址 */ private _cleanupCanvas; /** * 减少渲染计数 * @param rtcEngine - RTC引擎实例 */ private _decrementRenderCount; /** * 记录渲染信息 * @param rtcEngine - RTC引擎实例 * @param methodName - 方法名称 * @param setupMode - 设置模式 */ private _logRenderInfo; /** * 检查是否为最后一个本地画布 * @param sourceId - 源ID * @returns 是否为最后一个本地画布 */ private _isLastLocalCanvas; }