UNPKG

@diffusionstudio/core-v4

Version:

A fast, browser based video compositing engine powered by WebCodecs

67 lines (66 loc) 2.44 kB
import { AudioSource } from '../../sources'; import { Clip, ClipType } from '../clip'; import { Renderer } from '../../renderer'; import { Layer } from '../../layer'; import { AudioClipProps } from './interfaces'; import { Time } from '../../types'; import { SilenceRemoveOptions } from './types'; export declare class AudioClip extends Clip { private _muted; private _baseVolume; private _volume; private _fadeInDurationSeconds; private _fadeOutDurationSeconds; /** * Defines the start and end values of the clip * relative to the delay (which part of the media should be played) */ private _range; readonly type: ClipType; layer?: Layer<AudioClip>; source: AudioSource; private audioDecoders; constructor(source?: AudioSource, props?: AudioClipProps); init(source?: AudioSource): Promise<void>; initRenderer(renderer: Renderer): Promise<void>; deinitRenderer(renderer: Renderer): Promise<void>; pause(renderer: Renderer): Promise<void>; update(renderer: Renderer): Promise<void>; ambientUpdate(renderer: Renderer): void; exit(renderer: Renderer): Promise<void>; get range(): [number, number]; get start(): number; set start(time: Time); get end(): number; set end(time: Time); get duration(): number; set duration(time: Time); get baseVolume(): number; set baseVolume(value: number); /** * Number between 0 and 1 defining the volume of the media * @default 1 */ get volume(): number; set volume(value: number); set range(value: [Time | undefined, Time | undefined]); get muted(): boolean; set muted(value: boolean); get fadeInDurationSeconds(): number; set fadeInDurationSeconds(value: number); get fadeOutDurationSeconds(): number; set fadeOutDurationSeconds(value: number); updateAudioRampingKeyframes(): void; trim(start?: Time, end?: Time): this; split(time?: Time): Promise<this>; /** * Remove silences from the clip will return an array of clips with the silences removed. * If the clip has been added to a layer it will remove the silences within the layer. * @param options - Options for silence detection */ removeSilences(options?: SilenceRemoveOptions): Promise<AudioClip[]>; /** * Get the range of the clip in **seconds** */ protected getBufferRange(audio: Renderer): [number, number]; }