import { IProcessTrack, XYContentPreserverOptions } from './index.type'; import { XYContentPreserverExtension } from './index'; import { XYProcessorIF } from '../../../interface/processor.type'; export declare class XYContentPreserverProcessor implements XYProcessorIF { private canvas; private canvasContext; private options; private enablePlugin; private trackWidth; private trackHeight; private trackGenerator; private pluginInstance; private isPause; private cacheBitmap; private isCacheCanvas; private cacheVideoTrack; private transformController; private detectInterval; private createLastVideoFrame; private isProcessorEnded; private debounceDelay; private detectIntervalGap; constructor(config: XYContentPreserverOptions | undefined, pluginInstance: XYContentPreserverExtension); getProcessorType(): import('./index.type').PluginType; /** * 销毁处理器实例 * * 使用场景:当不再需要内容快照处理器时,调用此方法清理资源 * 调用时机:处理器实例需要销毁时 */ destroy(): void; /** * 清除检测定时器 */ private clearDetectInterval; /** * 初始化离线画布 */ private initOfflineCanvas; /** * 移除选项 */ removeOptions(): void; /** * 设置选项 * * @param { XYContentPreserverOptions } option - 插件配置项 * @returns { Promise } - 返回Promise对象 */ setOptions(option?: XYContentPreserverOptions): Promise; /** * 启用插件 * * @returns { Promise } - 返回Promise对象 */ enable(): Promise; /** * 禁用插件 * * @returns { Promise } - 返回Promise对象 */ disable(): Promise; /** * 获取插件状态 */ getEnablePluginState(): boolean; /** * 暂停处理器 */ pause(): void; /** * 恢复处理器 */ resume(): void; /** * 当TransformStream freeze触发时,启动定时器接管转换流,每隔1000ms进行补帧操作 */ private createLastVideoFrameWrap; /** * 从视频轨道创建视频帧 * * @return { Promise } - 返回最后一帧视频帧数据和读取器 */ private createVideoFrameFromVideoTrack; /** * 清除并缓存新的视频轨道 * * @param { MediaStreamTrack } track - 视频轨道 */ private clearAndCacheVideoTrack; /** * 处理视频流 * * @param { IProcessTrack } processTrack - 处理视频流 * @returns { Promise } - 返回加工处理过后的 MediaStreamTrack 轨道数据 */ process(processTrack: IProcessTrack): Promise; /** * 转换视频流 * * @param { VideoFrame } videoFrame - 视频帧 * @param { TransformStreamDefaultController } controller - 转换流控制器 */ transformStream(videoFrame: VideoFrame, controller: TransformStreamDefaultController): Promise; /** * 创建下一个视频帧 * * @param { number } videoTimestamp - 视频帧时间戳 */ private createNextVideoFrame; /** * 创建暂停内容快照 */ private createContentPreserver; /** * 创建缓存位图 */ private createCacheBitmap; /** * 处理视频帧,将视频帧绘制到离线画布上 */ private addVideoEffectToFrame; /** * 清除离线画布 */ private clearRect; }