@diffusionstudio/core-v4
Version:
A fast, browser based video compositing engine powered by WebCodecs
67 lines (66 loc) • 2.44 kB
TypeScript
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];
}