UNPKG

@diffusionstudio/core-v4

Version:

2D motion graphics and video rendering engine

72 lines (71 loc) 2.52 kB
import { AudioSource } from '../../sources'; import { Timestamp, Transcript } from '../../models'; import { Clip, ClipType } from '../clip'; import { Layer } from '../../layer'; import { AudioClipProps } from './interfaces'; import { MediaInput, Time } from '../../types'; import { SilenceRemoveOptions } from './types'; import { Renderer } from '../../renderer'; export declare class AudioClip extends Clip { private _muted; private _volume; private _transcript?; protected gainNode?: GainNode; readonly type: ClipType; layer?: Layer<AudioClip>; source?: AudioSource; playing: boolean; /** * Defines the start and stop values of the clip * relative to the delay (which part of the media should be played) */ range: [Timestamp, Timestamp]; /** * Defines the playback element */ element?: HTMLAudioElement | HTMLVideoElement; private audioDecoder?; constructor(input?: MediaInput | AudioSource, props?: AudioClipProps); init(audio: Renderer): Promise<void>; play(audio: Renderer): Promise<void>; pause(): Promise<void>; enter(audio: Renderer): Promise<void>; update(audio: Renderer): Promise<void>; exit(): Promise<void>; /** * Defines the transcript of the video/audio. * Will be trimmed to the clip range. * If the duration is not set, the transcript will be returned. */ get transcript(): Transcript | undefined; set transcript(transcript: Transcript | undefined); cleanup(): void; get start(): Timestamp; get stop(): Timestamp; get duration(): Timestamp; set duration(time: Time); /** * Number between 0 and 1 defining the volume of the media * @default 1 */ get volume(): number; set volume(value: number); get muted(): boolean; set muted(value: boolean); trim(start?: Time, stop?: Time): this; /** * Returns a slice of a media clip with trimmed start and stop */ subclip(start?: Time, stop?: 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]; }