UNPKG

xgplayer

Version:
188 lines (187 loc) 5.46 kB
export default Progress; export type IProgressConfig = { [propName: string]: any; position?: string; disable?: boolean; isDraggingSeek?: boolean; closeMoveSeek?: boolean; isPauseMoving?: boolean; isCloseClickSeek?: boolean; fragments?: Array<{ percent: number; }>; fragFocusClass?: string; fragAutoFocus?: boolean; miniMoveStep?: number; miniStartStep?: number; onMoveStart?: () => any; onMoveEnd?: () => any; endedDiff?: number; }; declare class Progress extends Plugin { /** * @type IProgressConfig */ static get defaultConfig(): IProgressConfig; static get FRAGMENT_FOCUS_CLASS(): { POINT: string; HIGHLIGHT: string; }; constructor(args: any); /** * @readonly */ readonly useable: boolean; /** * @readonly */ readonly isProgressMoving: boolean; /** * @private */ private __dragCallBacks; /** * @private */ private _state; _disableBlur: boolean; get offsetDuration(): number; get duration(): number; get timeOffset(): number; get currentTime(): any; changeState(useable?: boolean): void; /** * @param {string} [value] * @returns */ show(value?: string): void; /** * @description 创建内部进度条,并挂载到xg-outer上, * 并把一些对外API绑定在progress上供外部调用 * */ _initInner(fragments?: any[], config?: {}): void; innerList: InnerList; _updateInnerFocus(data: any): void; pos: { x: number; y: number; moving: boolean; isDown: boolean; isEnter: boolean; isLocked: boolean; }; outer: HTMLElement; isMobile: boolean; progressBtn: HTMLElement; /** * This method can be overridden. * Eg. xgplayer-ads/ui/adProgress.js */ listenEvents(): void; /** * @description 配置更新响应,插件内置调用api, 播放器整体配置更新的时候调用 * @param {IProgressConfig} config */ setConfig(config: IProgressConfig): void; initCustomStyle(): void; /** * 触发某一类回调监听 * @param { string } type 类型 drag/dragend * @param { any} data 具体数据 */ triggerCallbacks(type: string, data: any, event: any): void; /** * 供外部插件添加回调 * @param {string} type 类型 drag/dragend * @param {function} handle 回调函数句柄 */ addCallBack(type: string, handle: Function): void; /** * 供外部插件移除回调 * @param {string} type 类型 drag/dragend * @param {Function} event 回调函数句柄 */ removeCallBack(type: string, event: Function): void; /** * @description 解除进度条的所动状态 * @returns */ unlock(): void; bindDomEvents(): void; _mouseDownHandlerHook: any; _mouseUpHandlerHook: any; _mouseMoveHandlerHook: any; focus(): void; blur(): void; disableBlur(): void; enableBlur(): void; onMoveOnly: (e: any, data: any) => void; /** * 避免mouseup的时候触发父辈节点的click事件,和单击视频区域切换暂停/播放互斥 * @param {*} e * @returns */ onBodyClick: (e: any) => void; _mouseDownHandler: (event: any, data: any) => void; _mouseUpHandler: (e: any, data: any) => void; _mouseMoveHandler: (e: any, data: any) => void; onMouseDown: (e: any) => boolean; onMouseUp: (e: any) => void; onMouseMove: (e: any) => void; onMouseOut: (e: any) => void; onMouseOver: (e: any) => void; onMouseEnter: (e: any) => void; onMouseLeave: (e: any) => void; onVideoResize: () => void; /** * @description 根据currenTime和占用百分比更新进度条 * @param {number} currentTime 需要更新到的时间 * @param {number} seekTime 实际seek的时间 * @param {number} percent 更新时间占比 * @param {number} type 触发类型 0-down 1-move 2-up */ updateWidth(currentTime: number, seekTime: number, percent: number, type: number): void; computeTime(e: any, x: any): { percent: number; currentTime: number; seekTime: any; offset: number; width: number; left: number; e: any; }; /** * @description 更新时间插件,在拖拽状态下要接管时间插件的更新状态 * 本位置会和time插件交互 * @param {number} time 根据拖拽距离计算出的时间 */ updateTime(time: number): void; /** * @description 复位正在拖拽状态 ,拖拽的时候要避免timeupdate更新 */ resetSeekState(): void; /** * @description 拖拽过程中更新UI * @param {number} percent 小于0的小数 * */ updatePercent(percent: number, notSeek: any): void; /** * @description 播放进度更新 * @param { boolean } isEnded 是否是播放结束的时候调用 * @returns */ onTimeupdate(isEnded: boolean): void; /** * @description 缓存进度更新 * @param { boolean } isEnded 是否是结束时触发 * @returns */ onCacheUpdate(isEnded: boolean): void; onReset(): void; thumbnailPlugin: any; render(): string; } import Plugin from "../../plugin"; import InnerList from "./innerList";