Skip to content

LocalAudioTrack

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:8

A typed wrapper over Node’s EventEmitter.

Extends EventEmitter with declare overrides so that emit, on, off, etc. are type-safe without introducing circular-reference issues that arise when using typed-emitter directly in extends clauses whose event maps reference the class itself.

Runtime behaviour is 100% EventEmitter; this class adds zero runtime code.

new LocalAudioTrack(mediaStreamTrack, constraints?): LocalAudioTrack;

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:25

MediaStreamTrack

MediaTrackConstraints

LocalAudioTrack

LocalTrack.constructor

protected _currentBitrate: number = 0;

Defined in: client-sdk-js/src/track/Track.ts:43

LocalTrack._currentBitrate


protected _isMuted: boolean = false;

Defined in: client-sdk-js/src/track/Track.ts:37

LocalTrack._isMuted


protected _mediaStreamTrack: MediaStreamTrack;

Defined in: client-sdk-js/src/track/Track.ts:31

LocalTrack._mediaStreamTrack


protected _prevBytes: number = 0;

Defined in: client-sdk-js/src/track/Track.ts:47

Previous byte count from the last monitor sample.

LocalTrack._prevBytes


protected _prevStatsTime: number = 0;

Defined in: client-sdk-js/src/track/Track.ts:48

LocalTrack._prevStatsTime


protected _processor?: TrackProcessor<TrackKind>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:22

LocalTrack._processor


addListener: <E>(event, listener) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:37

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void

this

LocalTrack.addListener


attachedElements: HTMLMediaElement[] = [];

Defined in: client-sdk-js/src/track/Track.ts:41

LocalTrack.attachedElements


emit: <E>(event, ...args) => boolean;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:17

E extends | Muted | Unmuted | Ended | ElementAttached | ElementDetached | AudioPlaybackStarted | AudioPlaybackFailed | VideoPlaybackStarted | VideoPlaybackFailed | VisibilityChanged | VideoDimensionsChanged | UpstreamPaused | UpstreamResumed | AudioSilenceDetected | StreamStateChanged | TimeSyncUpdate

E

…Parameters<TrackEvents[E]>

boolean

LocalTrack.emit


kind: TrackKind;

Defined in: client-sdk-js/src/track/Track.ts:27

LocalTrack.kind


listenerCount: (event) => number;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:57

string | number

number

LocalTrack.listenerCount


listeners: <E>(event) => E extends keyof TrackEvents ? TrackEvents[E][] : ((...args) => void)[];

Defined in: client-sdk-js/src/utils/typedEmitter.ts:49

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E][] : ((…args) => void)[]

LocalTrack.listeners


protected monitorInterval?: number;

Defined in: client-sdk-js/src/track/Track.ts:44

LocalTrack.monitorInterval


off: <E>(event, listener) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:32

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void

this

LocalTrack.off


on: <E>(event, listener) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:22

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void

this

LocalTrack.on


once: <E>(event, listener) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:27

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void

this

LocalTrack.once


protected pauseUpstreamLock: Mutex;

Defined in: client-sdk-js/src/track/LocalTrack.ts:35

LocalTrack.pauseUpstreamLock


protected processorElement?: HTMLMediaElement;

Defined in: client-sdk-js/src/track/LocalTrack.ts:23

LocalTrack.processorElement


rawListeners: <E>(event) => E extends keyof TrackEvents ? TrackEvents[E][] : ((...args) => void)[];

Defined in: client-sdk-js/src/utils/typedEmitter.ts:53

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E][] : ((…args) => void)[]

LocalTrack.rawListeners


removeAllListeners: (event?) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:47

string | number

this

LocalTrack.removeAllListeners


removeListener: <E>(event, listener) => this;

Defined in: client-sdk-js/src/utils/typedEmitter.ts:42

E extends string | number

E

E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void

this

LocalTrack.removeListener


sid?: string;

Defined in: client-sdk-js/src/track/Track.ts:29

LocalTrack.sid


source: TrackSource;

Defined in: client-sdk-js/src/track/Track.ts:28

LocalTrack.source


stopOnMute: boolean = false;

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:14

When true, the underlying MediaStreamTrack is stopped when the track is muted and restarted when unmuted. Useful for disabling the microphone recording indicator on some platforms.


protected trackChangeLock: Mutex;

Defined in: client-sdk-js/src/track/LocalTrack.ts:34

LocalTrack.trackChangeLock


static defaultMaxListeners: number;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:5

LocalTrack.defaultMaxListeners

get constraints(): MediaTrackConstraints | undefined;

Defined in: client-sdk-js/src/track/LocalTrack.ts:69

Current capture constraints.

MediaTrackConstraints | undefined

LocalTrack.constraints


get currentBitrate(): number;

Defined in: client-sdk-js/src/track/Track.ts:77

Current bitrate in bits per second, updated by the monitor.

number

LocalTrack.currentBitrate


get dimensions(): TrackDimensions | undefined;

Defined in: client-sdk-js/src/track/LocalTrack.ts:77

Video dimensions from the current track settings. Returns undefined for audio tracks.

TrackDimensions | undefined

LocalTrack.dimensions


get id(): string;

Defined in: client-sdk-js/src/track/LocalTrack.ts:64

The MediaStreamTrack id.

string

LocalTrack.id


get isLocal(): boolean;

Defined in: client-sdk-js/src/track/LocalTrack.ts:59

boolean

LocalTrack.isLocal


get isMuted(): boolean;

Defined in: client-sdk-js/src/track/Track.ts:88

Whether the track is currently muted. This reflects the publisher’s intent and is independent of consumer pause state or streamState.

boolean

LocalTrack.isMuted


get isUpstreamPaused(): boolean;

Defined in: client-sdk-js/src/track/LocalTrack.ts:85

Whether upstream publishing has been paused via pauseUpstream.

boolean

LocalTrack.isUpstreamPaused


get isUserProvided(): boolean;

Defined in: client-sdk-js/src/track/LocalTrack.ts:90

Whether the track was provided by the user (not managed by the SDK).

boolean

LocalTrack.isUserProvided


get mediaStreamTrack(): MediaStreamTrack;

Defined in: client-sdk-js/src/track/LocalTrack.ts:55

Returns the processed track if a processor is active, otherwise the raw source track. Consumers should use this for playback and publishing.

MediaStreamTrack

LocalTrack.mediaStreamTrack


get streamState(): StreamState;

Defined in: client-sdk-js/src/track/Track.ts:98

The current stream state of the track. StreamState.Active means the server is actively forwarding media; StreamState.Paused means the server has temporarily stopped forwarding (e.g. bandwidth limits). This is separate from isMuted, which reflects the publisher’s intent.

StreamState

LocalTrack.streamState

addVisibilityListener(): void;

Defined in: client-sdk-js/src/track/LocalTrack.ts:471

Start listening for visibility changes (should be called after publishing).

void

LocalTrack.addVisibilityListener


attach(element?): HTMLMediaElement;

Defined in: client-sdk-js/src/track/Track.ts:156

HTMLMediaElement

HTMLMediaElement

LocalTrack.attach


detach(element?): HTMLMediaElement[];

Defined in: client-sdk-js/src/track/Track.ts:199

HTMLMediaElement

HTMLMediaElement[]

LocalTrack.detach


protected detachEndedListener(track): void;

Defined in: client-sdk-js/src/track/Track.ts:72

Detach the base-class ‘ended’ listener from the given track.

MediaStreamTrack

void

LocalTrack.detachEndedListener


eventNames(): (string | number)[];

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:7

(string | number)[]

LocalTrack.eventNames


getDeviceId(): Promise<string | undefined>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:267

Get the device ID currently used by this track.

Promise<string | undefined>

LocalTrack.getDeviceId


getMaxListeners(): number;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:9

number

LocalTrack.getMaxListeners


getProcessor():
| TrackProcessor<TrackKind>
| undefined;

Defined in: client-sdk-js/src/track/LocalTrack.ts:105

Returns the currently active processor, or undefined.

| TrackProcessor<TrackKind> | undefined

LocalTrack.getProcessor


getRTCStatsReport(): Promise<RTCStatsReport | undefined>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:259

Gets the RTCStatsReport for the underlying RTP sender.

Promise<RTCStatsReport | undefined>

LocalTrack.getRTCStatsReport


getSourceTrackSettings(): MediaTrackSettings;

Defined in: client-sdk-js/src/track/LocalTrack.ts:114

Returns the settings of the original source track, ignoring any active processor. Useful when you need the real capture resolution or device info regardless of post-processing.

MediaTrackSettings

LocalTrack.getSourceTrackSettings


protected monitorStats(
getStats,
reportType,
bytesField
): Promise<void>;

Defined in: client-sdk-js/src/track/Track.ts:130

Samples RTP bytes from a stats report and updates currentBitrate. Shared by local (producer/outbound) and remote (consumer/inbound) tracks: they only differ in which report type and byte field to read.

() => Promise<RTCStatsReport> | undefined

returns the underlying transport/producer/consumer stats, or undefined when the source is already closed.

string

the RTC stats report type to aggregate (e.g. outbound-rtp).

string

the byte field name on that report (e.g. bytesSent).

Promise<void>

LocalTrack.monitorStats


mute(): Promise<void>;

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:29

Mute the track (disables the MediaStreamTrack).

Promise<void>

LocalTrack.mute


protected onEnded(): void;

Defined in: client-sdk-js/src/track/LocalTrack.ts:129

Hook fired when the underlying MediaStreamTrack ends.

void

LocalTrack.onEnded


protected onEndedListener(): void;

Defined in: client-sdk-js/src/track/Track.ts:62

void

LocalTrack.onEndedListener


pauseUpstream(): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:223

Pause publishing to the server without disabling the local MediaStreamTrack. Useful for showing a local preview while not sending to remote participants.

Promise<void>

LocalTrack.pauseUpstream


prependListener(type, listener): this;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:14

string | number

Listener

this

LocalTrack.prependListener


prependOnceListener(type, listener): this;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:15

string | number

Listener

this

LocalTrack.prependOnceListener


replaceTrack(newTrack): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:350

MediaStreamTrack

Promise<void>

LocalTrack.replaceTrack


restart(constraints?): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:307

MediaTrackConstraints

Promise<void>

LocalTrack.restart


resumeUpstream(): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:240

Resume publishing after a call to pauseUpstream.

Promise<void>

LocalTrack.resumeUpstream


setDeviceId(deviceId, exact?): Promise<void>;

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:64

string

boolean = true

Promise<void>


setMaxListeners(n): this;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:8

number

this

LocalTrack.setMaxListeners


setProcessor(processor, showProcessedStreamLocally?): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:142

Set a TrackProcessor on this track. Pass undefined to remove the current processor.

| TrackProcessor<TrackKind> | undefined

boolean = true

Promise<void>

LocalTrack.setProcessor


protected setTrackMuted(muted): void;

Defined in: client-sdk-js/src/track/LocalTrack.ts:419

boolean

void

LocalTrack.setTrackMuted


stop(): void;

Defined in: client-sdk-js/src/track/LocalTrack.ts:400

void

LocalTrack.stop


protected stopMediaTrackQuietly(track): void;

Defined in: client-sdk-js/src/track/LocalTrack.ts:123

Suppresses the TrackEvent.Ended emission for tracks the SDK stops on purpose (device switch, stopOnMute, Safari restart, stop()) so that consumers can treat Ended as an actual device/source failure.

MediaStreamTrack | undefined

void

LocalTrack.stopMediaTrackQuietly


stopProcessor(): Promise<void>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:189

Stop and remove the current processor.

Promise<void>

LocalTrack.stopProcessor


unmute(): Promise<void>;

Defined in: client-sdk-js/src/track/LocalAudioTrack.ts:44

Unmute the track (enables the MediaStreamTrack).

Promise<void>

LocalTrack.unmute


waitForDimensions(timeout?): Promise<TrackDimensions>;

Defined in: client-sdk-js/src/track/LocalTrack.ts:277

Wait until the video track reports valid dimensions.

number = DEFAULT_DIMENSIONS_TIMEOUT

Promise<TrackDimensions>

Error if the track is audio or dimensions don’t become available within the timeout.

LocalTrack.waitForDimensions


static listenerCount(emitter, type): number;

Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:4

EventEmitter

string | number

number

LocalTrack.listenerCount