tav-media
Version:
Cross platform media editing framework
83 lines (82 loc) • 2.52 kB
TypeScript
interface AudioReaderOptions {
playbackRate: number;
contentStartTime: number;
}
interface AudioPreloadContext {
audioContext: AudioContext;
audioWorkletNode: AudioWorkletNode;
audioEl: AudioElement;
}
interface AudioElement {
audioEl: HTMLAudioElement;
source: MediaElementAudioSourceNode;
initializationSuccess: boolean;
}
export declare class MovieAudioReader {
static audioProcessorLoaded: boolean;
static processorCodePath: string;
static maxAudioInputs: number;
static pauseTimeout: any;
static availableAudioIndexes: number[];
static audioContext: AudioPreloadContext;
static audioElements: {
[path: string]: AudioElement;
};
static audioReaders: MovieAudioReader[];
static preload(path: string, useNow?: boolean): Promise<{
audioEl: AudioElement;
audioContext: AudioContext;
audioWorkletNode: AudioWorkletNode;
}>;
static createAudioElement(path: string): AudioElement;
static pauseAll(): void;
static playAll(): void;
static MakeFromPath(path: string): MovieAudioReader;
static MakeFromBytes(bytesOffset: number, length: number): MovieAudioReader;
path: string;
audioEl: HTMLAudioElement;
audioContext: AudioContext;
audioWorkletNode: AudioWorkletNode;
preloadContext: AudioPreloadContext;
source: MediaElementAudioSourceNode;
audioPromise: Promise<MovieAudioReader>;
contentTime: number;
released: boolean;
inputChannelCount: number;
targetBitDepth: number;
inputSampleRate: number;
audioSampleCount: number;
silenceAudioSampleCount: number;
maxOutSampleCount: number;
adjustRange: number;
audioData: any[];
lastBufferData: any;
playbackRate: number;
paused: boolean;
audioPaused: boolean;
audioIndex: number;
type: number;
audioContextResume: boolean;
audioInitializationSuccess: boolean;
lastPostAudioTime: number;
private constructor();
render(): void;
readNextSample(): {
bytes: number;
length: number;
sampleRate: number;
channels: number;
outputSamplesCount: number;
};
decodeAudio(): Promise<MovieAudioReader>;
setOptions(options: AudioReaderOptions): void;
freeBuffer(): void;
pause(): Promise<unknown>;
continue(): Promise<boolean>;
seekTo(contentTime: number, forceSeek?: boolean): void;
release(): void;
private playAudio;
private pauseAudio;
private resume;
}
export {};