tav-media
Version:
Cross platform media editing framework
78 lines (77 loc) • 2.65 kB
TypeScript
/// <reference types="offscreencanvas" />
export interface wx {
env: {
USER_DATA_PATH: string;
};
getFileSystemManager: () => FileSystemManager;
getFileInfo: (object: {
filePath: string;
success?: () => void;
fail?: () => void;
complete?: () => void;
}) => void;
createVideoDecoder: () => VideoDecoder;
getSystemInfoSync: () => SystemInfo;
createOffscreenCanvas: (object?: {
type: 'webgl' | '2d';
}, width?: number, height?: number, compInst?: any) => OffscreenCanvas;
getPerformance: () => Performance;
}
export interface FileSystemManager {
accessSync: (path: string) => void;
mkdirSync: (path: string) => void;
writeFileSync: (path: string, data: string | ArrayBuffer, encoding: string) => void;
unlinkSync: (path: string) => void;
readdirSync: (path: string) => string[];
}
export interface VideoDecoder {
getFrameData: () => FrameDataOptions;
seek: (
/** 跳转的解码位置,单位 ms */
position: number) => Promise<void>;
start: (option: VideoDecoderStartOption) => Promise<any>;
remove: () => Promise<any>;
off: (
/** 事件名 */
eventName: string,
/** 事件触发时执行的回调函数 */
callback: (...args: any[]) => any) => void;
on: (
/** 事件名
*
* 参数 eventName 可选值:
* - 'start': 开始事件。返回 {width, height};
* - 'stop': 结束事件。;
* - 'seek': seek 完成事件。;
* - 'bufferchange': 缓冲区变化事件。;
* - 'ended': 解码结束事件。; */
eventName: 'start' | 'stop' | 'seek' | 'bufferchange' | 'ended',
/** 事件触发时执行的回调函数 */
callback: (...args: any[]) => any) => void;
}
/** 视频帧数据,若取不到则返回 null。当缓冲区为空的时候可能暂停取不到数据。 */
export interface FrameDataOptions {
/** 帧数据 */
data: ArrayBuffer;
/** 帧数据高度 */
height: number;
/** 帧原始 dts */
pkDts: number;
/** 帧原始 pts */
pkPts: number;
/** 帧数据宽度 */
width: number;
}
interface VideoDecoderStartOption {
/** 需要解码的视频源文件。基础库 2.13.0 以下的版本只支持本地路径。 2.13.0 开始支持 http:// 和 https:// 协议的远程路径。 */
source: string;
/** 解码模式。0:按 pts 解码;1:以最快速度解码 */
mode?: number;
}
export interface SystemInfo {
/** 客户端平台 */
platform: 'ios' | 'android' | 'windows' | 'mac' | 'devtools';
/** 设备像素比 */
pixelRatio: number;
}
export {};