xgplayer-mp4
Version:
xgplayer plugin for mp4 transform to fmp4
117 lines (115 loc) • 3.78 kB
TypeScript
declare class MP4 {
static getDefaultConfig(): {
segmentDuration: number;
onProcessMinLen: number;
chunkSize: number;
retryCount: number;
retryDelay: number;
timeout: number;
enableWorker: boolean;
playerId: string;
vid: string;
ext: {};
preferMMS: boolean;
};
/**
* [constructor 构造函数]
* @param { string } url [视频地址]
* @param { Object } options
* @param { Number } [chunk_size=Math.pow(25, 4)] [请求的数据块大小,对于长视频设置的较大些可以避免二次请求]
* @param { any } preloader [预加载器]
* @param { any } preloadTimeCache [预加载信息]
*/
constructor(url: string, options: any);
url: string;
options: {
segmentDuration: number;
onProcessMinLen: number;
chunkSize: number;
retryCount: number;
retryDelay: number;
timeout: number;
enableWorker: boolean;
playerId: string;
vid: string;
ext: {};
preferMMS: boolean;
};
timeRange: any[];
CHUNK_SIZE: number;
bufferLoaded: Uint8Array;
bufferLoadedPos: number;
meta: any;
videoTrak: any;
audioTrak: any;
canDownload: boolean;
_loadSuccessCallBack: any;
_isPending: boolean;
_metaLoading: boolean;
MP4Loader: MP4Loader;
fMP4Demuxer: FMP4Demuxer;
MP4Demuxer: MP4Demuxer;
FMP4Remuxer: FMP4Remuxer;
_needInitSegment: boolean;
_switchBitRate: boolean;
enableWorker: boolean;
workerSequence: number;
transmuxerWorkerControl: TransmuxerWorkerControl;
seekTime: number;
changeBitRateTime: number;
changeBitRate(bitRateInfo: any): Promise<void>;
log(message: any, ...optionalParams: any[]): void;
/**
* 错误处理
* @param { Error } error
* @param { string } state
*/
errorHandler(error: Error, state: string, context?: {}): Promise<void>;
init(): Promise<void>;
getTimeRange(): {
startTime: any;
endTime: any;
downloaded: boolean;
isLoading: boolean;
}[];
getMetaInfo(isEmitMetaEvent?: boolean): Promise<void>;
getFragmentIdx(time: any): any;
_checkHasMeta(): Promise<boolean>;
resetFragmentLoadState(fragIndex: any): void;
getFragRange(fragIndex: any): number[];
load(fragIndex: any, successCallback: any): Promise<void>;
/**
* 查找离time最近的左边的关键帧的开始的range
* @param { fragIndex }
* @param { time }
* @param { range }
* @return {
* range: array<number>,
* }
*/
getSubRange(fragIndex: any, time: any, range: any): any;
onprogressDataArrive: (data: any, state: any, options: any) => Promise<void>;
_mux(buffer: any, start: any, fragIndex: any, state: any): void;
getSamplesRange(fragmentIdx: any, type: any): any[];
loadFragment(fragIndex: any, range: any): Promise<void>;
startLoad(range: any, fragIndex: any): Promise<void>;
loadError(e: any, loadState: any, context: any): void;
cancelLoading(): Promise<void>;
update(url: any): void;
checkCodecH265(): boolean;
destroy(): void;
hasDestroyed: boolean;
resetTansmuxer(): void;
}
export namespace MP4_EVENTS {
const ERROR: string;
const META_READY: string;
const MOOV_REQ_PROGRESS: string;
const UPDATE_LOAD_IDX: string;
}
import MP4Loader from "xgplayer-mp4-loader";
import { FMP4Demuxer } from "../../xgplayer-transmuxer/es/mp4";
import { MP4Demuxer } from "../../xgplayer-transmuxer/es/mp4";
import { FMP4Remuxer } from "../../xgplayer-transmuxer/es/mp4";
import TransmuxerWorkerControl from "./worker";
export { MP4 as default };