@omnimedia/omnitool
Version:
open source video processing tools
42 lines (41 loc) • 1.71 kB
TypeScript
import { AudioLevels } from "./audio-levels.js";
import { Fps } from '../../../../units/fps.js';
import { Ms } from '../../../../units/ms.js';
import { Driver } from '../../../../driver/driver.js';
import { TimelineFile } from '../../../parts/basics.js';
import { DecoderSource } from '../../../../driver/fns/schematic.js';
import { CursorVisualSampler, ReverseCursorVisualSampler } from '../../export/parts/cursor.js';
export declare class Playback {
#private;
private driver;
private timeline;
private resolveMedia;
audioLevels: AudioLevels;
audioSampler: {
sampleAudio(timeline: TimelineFile, from: Ms): AsyncGenerator<{
itemId: import("../../../parts/basics.js").Id;
sample: import("mediabunny").AudioSample;
timestamp: number;
gain: number;
}, void, unknown>;
};
seekVisualSampler: {
sample(timeline: TimelineFile, timecode: Ms): Promise<import("../../../../driver/fns/schematic.js").Layer[]>;
};
playVisualSampler: CursorVisualSampler | null;
reversePlayVisualSampler: ReverseCursorVisualSampler | null;
onTick: import("@e280/stz").Pub<[]>;
audioContext: AudioContext;
audioNodes: Map<AudioBufferSourceNode, GainNode>;
constructor(driver: Driver, timeline: TimelineFile, resolveMedia: (hash: string) => DecoderSource);
update(timeline: TimelineFile): void;
get isPlaying(): boolean;
seek(time: Ms): Promise<import("../../../../driver/fns/schematic.js").Layer[]>;
start(): Promise<void>;
pause(): void;
get duration(): Ms;
get currentTime(): Ms;
get playbackRate(): number;
set playbackRate(rate: number);
setFps(fps: Fps): void;
}