xgplayer
Version:
video player
283 lines (282 loc) • 8.14 kB
TypeScript
declare namespace util {
/**
*
* @param { string } el
* @param { string } [tpl=]
* @param { {[propName: string]: any }} [attrs={}]
* @param { string } [cname='']
* @returns { HTMLElement | null }
*/
function createDom(el?: string, tpl?: string, attrs?: {
[propName: string]: any;
}, cname?: string): HTMLElement;
/**
*
* @param { string } html
* @param { string } [attrs={}]
* @param { string } [classname=""]
* @returns { HTMLElement | null }
*/
function createDomFromHtml(html: string, attrs?: string, classname?: string): HTMLElement;
/**
*
* @param { HTMLElement } el
* @param { string } className
* @returns { boolean }
*/
function hasClass(el: HTMLElement, className: string): boolean;
/**
*
* @param { HTMLElement } el
* @param { string } className
* @returns { void }
*/
function addClass(el: HTMLElement, className: string): void;
/**
*
* @param { HTMLElement } el
* @param { string } className
* @returns { void }
*/
function removeClass(el: HTMLElement, className: string): void;
/**
*
* @param { HTMLElement } el
* @param { string } className
* @returns { void }
*/
function toggleClass(el: HTMLElement, className: string): void;
/**
*
* @param { string | Object } args0
* @param { string } [className]
* @returns { string }
*/
function classNames(...args: any[]): string;
/**
*
* @param { HTMLElement } el
* @param { string } sel
* @returns { HTMLElement }
*/
function findDom(el: HTMLElement, sel: string): HTMLElement;
/**
*
* @param { HTMLElement } dom
* @param { string } key
* @returns { any }
*/
function getCss(dom: HTMLElement, key: string): any;
function padStart(str: any, length: any, pad: any): string;
/**
*
* @param { number } time
* @returns { string }
*/
function format(time: number): string;
/**
*
* @param { Object } e
* @returns { Object }
*/
function event(e: any): any;
/**
*
* @param { any } obj
* @returns { string }
*/
function typeOf(obj: any): string;
/**
*
* @param { any } dst
* @param { any } src
* @returns { any }
*/
function deepCopy(dst: any, src: any): any;
/**
*
* @param { any } dst
* @param { any } src
* @returns { any }
*/
function deepMerge(dst: any, src: any): any;
function getBgImage(el: any): string;
/**
*
* @param { HTMLElement } dom
* @returns { HTMLElement | null }
*/
function copyDom(dom: HTMLElement): HTMLElement;
/**
*
* @param { any } context
* @param { string } eventName
* @param { function } intervalFunc
* @param { number } frequency
*/
function setInterval(context: any, eventName: string, intervalFunc: Function, frequency: number): void;
/**
*
* @param { any } context
* @param { string } eventName
* @returns { void }
*/
function clearInterval(context: any, eventName: string): void;
/**
*
* @param { any } context
* @param { function } fun
* @param { number } time
* @returns { number }
*/
function setTimeout(context: any, fun: Function, time: number): number;
/**
*
* @param { any } context
* @param { number } id
*/
function clearTimeout(context: any, id: number): void;
/**
*
* @param { any } context
*/
function clearAllTimers(context: any): void;
/**
*
* @param { string } name
* @param { string } imgUrl
* @param { number } [width]
* @param { number } [height]
* @returns { HTMLElement }
*/
function createImgBtn(name: string, imgUrl: string, width?: number, height?: number): HTMLElement;
/**
*
* @param { string } hex
* @param { string | number } alpha
* @returns { string }
*/
function Hex2RGBA(hex: string, alpha: string | number): string;
/**
*
* @returns { HTMLElement | null }
*/
function getFullScreenEl(): HTMLElement;
/**
* @param { any }
* @returns { boolean }
*/
function checkIsFunction(fun: any): boolean;
/**
* @param { any }
* @returns { boolean }
*/
function checkIsObject(obj: any): boolean;
/**
* @param { HTMLElement }
*/
function hide(dom: any): void;
/**
* @param { HTMLElement }
* @param { block | flex | inline-block | inline-flex } [display]
*/
function show(dom: any, display: any): void;
/**
*
* @param { any } val
* @returns { boolean }
*/
function isUndefined(val: any): boolean;
function isNotNull(val: any): boolean;
/**
*
* @param { HTMLElement } dom
* @param { string } [text]
* @returns
*/
function setStyleFromCsstext(dom: HTMLElement, text?: string): void;
/**
*
* @param { HTMLElement } dom
* @param { Array<string> } [list] attribute names to filter
* @returns { {} | {[propName: string]: any;} }
*/
function filterStyleFromText(dom: HTMLElement, list?: string[]): {} | {
[propName: string]: any;
};
/**
*
* @param { HTMLElement } dom
* @returns { {} | {[propName: string]: any;} }
*/
function getStyleFromCsstext(dom: HTMLElement): {} | {
[propName: string]: any;
};
function preloadImg(url: any, onload?: () => void, onerror?: () => void): void;
function stopPropagation(e: any): void;
function scrollTop(): number;
function scrollLeft(): number;
function checkTouchSupport(): boolean;
function getBuffered2(vbuffered: any, maxHoleDuration?: number): XgplayerTimeRange;
/**
* @description css中有zoom的时候,位移会等比缩放,但是元素的宽高不会等比缩放,所以通过该api做统一
* https://bugs.chromium.org/p/chromium/issues/detail?id=429140#c8
* @param {Events} e
* @param {number} zoom
* @returns
*/
function getEventPos(e: Events, zoom?: number): {
x: number;
y: number;
clientX: number;
clientY: number;
offsetX: number;
offsetY: number;
pageX: number;
pageY: number;
};
function requestAnimationFrame(callback: any): any;
function getHostFromUrl(url: any): string;
function cancelAnimationFrame(frameId: any): void;
/**
* @desc Check whether it is MediaSource start
* @param { HTMLVideoElement | HTMLAudioElement | HTMLElement } video
* @returns { Boolean }
*/
function isMSE(video: HTMLElement | HTMLVideoElement | HTMLAudioElement): boolean;
/**
* @param { number } did
* @returns { string }
*/
function generateSessionId(did?: number): string;
function createEvent(eventName: any): Event;
/**
* @description Adjust currentTime according to duration, when ended is true and currentTime is less than duration, or
* currentTime is greater than duration, return duration
* @param { number } time
* @param { number } duration
* @param { boolean } isEnded
* @returns { number } Adjusted time
*/
function adjustTimeByDuration(time: number, duration: number, isEnded: boolean): number;
function createPositionBar(className: any, root: any): HTMLElement;
}
export function checkIsCurrentVideo(element: any, playerId: any, key: any): boolean;
export function debounce(func: any, wait: any, options: any): {
(...args: any[]): any;
cancel: () => void;
flush: () => any;
pending: () => boolean;
};
export function throttle(func: any, wait: any, options: any): {
(...args: any[]): any;
cancel: () => void;
flush: () => any;
pending: () => boolean;
};
/**
* @returns { string }
*/
export function getLang(): string;
import XgplayerTimeRange from "./xgplayerTimeRange";
export { util as default };