class AudioResource

export declare class AudioResource<Metadata = unknown>

Represents an audio resource that can be played by an audio player.

Constructors

constructor(
edges: readonly Edge[]
streams: readonly Readable[]
metadata: Metadata
silencePaddingFrames: number
)

Constructs a new instance of the AudioResource class

Type Parameters

optional
Metadata? = unknown

the type for the metadata (if any) of the audio resource

optional
audioPlayer? : AudioPlayer | undefined

The audio player that the resource is subscribed to, if any.

readonly
edges : readonly Edge[]

The pipeline used to convert the input stream into a playable format. For example, this may contain an FFmpeg component for arbitrary inputs, and it may contain a VolumeTransformer component for resources with inline volume transformation enabled.

readonlyoptional
encoder? : prism.opus.Encoder

If using an Opus encoder to create this audio resource, then this will be a prism-media opus.Encoder. You can use this to control settings such as bitrate, FEC, PLP.

readonly
ended : boolean

Whether this resource has ended or not.

metadata : Metadata

Optional metadata that can be used to identify the resource.

playbackDuration : number

The playback duration of this audio resource, given in milliseconds.

readonly
playStream : Readable

An object-mode Readable stream that emits Opus packets. This is what is played by audio players.

readonly
readable : boolean

Whether this resource is readable. If the underlying resource is no longer readable, this will still return true while there are silence padding frames left to play.

readonly
silencePaddingFrames : number

The number of silence frames to append to the end of the resource's audio stream, to prevent interpolation glitches.

silenceRemaining : number

The number of remaining silence frames to play. If -1, the frames have not yet started playing.

started : boolean

Whether or not the stream for this resource has started (data has become readable)

readonlyoptional
volume? : prism.VolumeTransformer

If the resource was created with inline volume transformation enabled, then this will be a prism-media VolumeTransformer. You can use this to alter the volume of the stream.