UNPKG

@jxstjh/jhvideo

Version:

HTML5 jhvideo base on MPEG2-TS Stream Player

51 lines (50 loc) 1.45 kB
export interface InteractionControllerOptions { root: HTMLElement; wrapper: HTMLElement; videoWrapper: HTMLElement; video: HTMLVideoElement; renderCanvas: HTMLCanvasElement; previewCanvas: HTMLCanvasElement; getPlayer: () => any; getMediaInfo: () => { width?: number; height?: number; } | null; onZoomEnabled?: () => void; zoomButtonSelector?: string; } /** * 用户交互控制器。 * * 第一阶段负责数码放大的完整生命周期: * - H.264 Video 与 H.265/WASM Canvas 的鼠标框选 * - 放大区域预览绘制 * - 放大框、激活样式和 RAF 的创建与释放 */ export declare class InteractionController { private readonly options; private zoomEnabled; private dragging; private startPoint; private endPoint; private animationFrameId; private zoomBlock; constructor(options: InteractionControllerOptions); get zooming(): boolean; setZooming(enabled: boolean): void; toggleZoom(): void; resizePreview(scale: number): void; destroy(): void; private readonly handleMouseDown; private readonly handleMouseMove; private readonly handleMouseUp; private getSource; private getLocalPoint; private createZoomBlock; private updateZoomBlock; private removeZoomBlock; private startPreviewLoop; private stopPreviewLoop; private clearPreview; private getSourceSize; }