Skip to content

RemoteTrack

Defined in: client-sdk-js/src/track/RemoteTrack.ts:10

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 RemoteTrack(
kind,
source?,
mediaStreamTrack
): RemoteTrack;

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

TrackKind

TrackSource = TrackSource.Unknown

MediaStreamTrack

RemoteTrack

Track.constructor

protected _currentBitrate: number = 0;

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

Track._currentBitrate


protected _isMuted: boolean = false;

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

Track._isMuted


protected _mediaStreamTrack: MediaStreamTrack;

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

Track._mediaStreamTrack


protected _prevBytes: number = 0;

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

Previous byte count from the last monitor sample.

Track._prevBytes


protected _prevStatsTime: number = 0;

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

Track._prevStatsTime


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

Track.addListener


attachedElements: HTMLMediaElement[] = [];

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

Track.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

Track.emit


kind: TrackKind;

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

Track.kind


listenerCount: (event) => number;

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

string | number

number

Track.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)[]

Track.listeners


protected monitorInterval?: number;

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

Track.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

Track.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

Track.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

Track.once


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)[]

Track.rawListeners


removeAllListeners: (event?) => this;

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

string | number

this

Track.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

Track.removeListener


sid?: string;

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

Track.sid


source: TrackSource;

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

Track.source


static defaultMaxListeners: number;

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

Track.defaultMaxListeners

get currentBitrate(): number;

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

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

number

Track.currentBitrate


get isLocal(): boolean;

Defined in: client-sdk-js/src/track/RemoteTrack.ts:30

boolean

Track.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

Track.isMuted


get mediaStreamTrack(): MediaStreamTrack;

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

MediaStreamTrack

Track.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

Track.streamState

attach(element?): HTMLMediaElement;

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

HTMLMediaElement

HTMLMediaElement

Track.attach


detach(element?): HTMLMediaElement[];

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

HTMLMediaElement

HTMLMediaElement[]

Track.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

Track.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)[]

Track.eventNames


getMaxListeners(): number;

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

number

Track.getMaxListeners


getPlayoutDelay(): number;

Defined in: client-sdk-js/src/track/RemoteTrack.ts:94

Returns the current playout delay (in seconds).

number


getRTCStatsReport(): Promise<RTCStatsReport | undefined>;

Defined in: client-sdk-js/src/track/RemoteTrack.ts:75

Gets the RTCStatsReport for the underlying RTP receiver.

Promise<RTCStatsReport | undefined>


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>

Track.monitorStats


protected onEnded(): void;

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

Hook fired when the underlying MediaStreamTrack ends.

void

Track.onEnded


protected onEndedListener(): void;

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

void

Track.onEndedListener


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

Track.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

Track.prependOnceListener


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

Track.setMaxListeners


setPlayoutDelay(delayInSeconds): void;

Defined in: client-sdk-js/src/track/RemoteTrack.ts:84

Set a playout delay (in seconds) for this track. Higher values allow more buffering in the browser and add latency.

number

void


stop(): void;

Defined in: client-sdk-js/src/track/RemoteTrack.ts:53

Stop the remote track.

void

Track.stop


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

Track.listenerCount