Track
Defined in: client-sdk-js/src/track/Track.ts:26
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.
Extends
Section titled “Extends”Extended by
Section titled “Extended by”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new Track( kind, source?, mediaStreamTrack): Track;Defined in: client-sdk-js/src/track/Track.ts:50
Parameters
Section titled “Parameters”source?
Section titled “source?”TrackSource = TrackSource.Unknown
mediaStreamTrack
Section titled “mediaStreamTrack”MediaStreamTrack
Returns
Section titled “Returns”Track
Overrides
Section titled “Overrides”Properties
Section titled “Properties”_currentBitrate
Section titled “_currentBitrate”protected _currentBitrate: number = 0;Defined in: client-sdk-js/src/track/Track.ts:43
_isMuted
Section titled “_isMuted”protected _isMuted: boolean = false;Defined in: client-sdk-js/src/track/Track.ts:37
_mediaStreamTrack
Section titled “_mediaStreamTrack”protected _mediaStreamTrack: MediaStreamTrack;Defined in: client-sdk-js/src/track/Track.ts:31
_prevBytes
Section titled “_prevBytes”protected _prevBytes: number = 0;Defined in: client-sdk-js/src/track/Track.ts:47
Previous byte count from the last monitor sample.
_prevStatsTime
Section titled “_prevStatsTime”protected _prevStatsTime: number = 0;Defined in: client-sdk-js/src/track/Track.ts:48
addListener
Section titled “addListener”addListener: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:37
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”attachedElements
Section titled “attachedElements”attachedElements: HTMLMediaElement[] = [];Defined in: client-sdk-js/src/track/Track.ts:41
emit: <E>(event, ...args) => boolean;Defined in: client-sdk-js/src/utils/typedEmitter.ts:17
Type Parameters
Section titled “Type Parameters”E extends
| Muted
| Unmuted
| Ended
| ElementAttached
| ElementDetached
| AudioPlaybackStarted
| AudioPlaybackFailed
| VideoPlaybackStarted
| VideoPlaybackFailed
| VisibilityChanged
| VideoDimensionsChanged
| UpstreamPaused
| UpstreamResumed
| AudioSilenceDetected
| StreamStateChanged
| TimeSyncUpdate
Parameters
Section titled “Parameters”E
…Parameters<TrackEvents[E]>
Returns
Section titled “Returns”boolean
Inherited from
Section titled “Inherited from”kind: TrackKind;Defined in: client-sdk-js/src/track/Track.ts:27
listenerCount
Section titled “listenerCount”listenerCount: (event) => number;Defined in: client-sdk-js/src/utils/typedEmitter.ts:57
Parameters
Section titled “Parameters”string | number
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”listeners
Section titled “listeners”listeners: <E>(event) => E extends keyof TrackEvents ? TrackEvents[E][] : ((...args) => void)[];Defined in: client-sdk-js/src/utils/typedEmitter.ts:49
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
Returns
Section titled “Returns”E extends keyof TrackEvents ? TrackEvents[E][] : ((…args) => void)[]
Inherited from
Section titled “Inherited from”monitorInterval?
Section titled “monitorInterval?”protected monitorInterval?: number;Defined in: client-sdk-js/src/track/Track.ts:44
off: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:32
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”on: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:22
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”once: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:27
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”rawListeners
Section titled “rawListeners”rawListeners: <E>(event) => E extends keyof TrackEvents ? TrackEvents[E][] : ((...args) => void)[];Defined in: client-sdk-js/src/utils/typedEmitter.ts:53
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
Returns
Section titled “Returns”E extends keyof TrackEvents ? TrackEvents[E][] : ((…args) => void)[]
Inherited from
Section titled “Inherited from”removeAllListeners
Section titled “removeAllListeners”removeAllListeners: (event?) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:47
Parameters
Section titled “Parameters”event?
Section titled “event?”string | number
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”TypedEmitter.removeAllListeners
removeListener
Section titled “removeListener”removeListener: <E>(event, listener) => this;Defined in: client-sdk-js/src/utils/typedEmitter.ts:42
Type Parameters
Section titled “Type Parameters”E extends string | number
Parameters
Section titled “Parameters”E
listener
Section titled “listener”E extends keyof TrackEvents ? TrackEvents[E] : (…args) => void
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”sid?: string;Defined in: client-sdk-js/src/track/Track.ts:29
source
Section titled “source”source: TrackSource;Defined in: client-sdk-js/src/track/Track.ts:28
defaultMaxListeners
Section titled “defaultMaxListeners”static defaultMaxListeners: number;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:5
Inherited from
Section titled “Inherited from”TypedEmitter.defaultMaxListeners
Accessors
Section titled “Accessors”currentBitrate
Section titled “currentBitrate”Get Signature
Section titled “Get Signature”get currentBitrate(): number;Defined in: client-sdk-js/src/track/Track.ts:77
Current bitrate in bits per second, updated by the monitor.
Returns
Section titled “Returns”number
isLocal
Section titled “isLocal”Get Signature
Section titled “Get Signature”get abstract isLocal(): boolean;Defined in: client-sdk-js/src/track/Track.ts:81
Returns
Section titled “Returns”boolean
isMuted
Section titled “isMuted”Get Signature
Section titled “Get Signature”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.
Returns
Section titled “Returns”boolean
mediaStreamTrack
Section titled “mediaStreamTrack”Get Signature
Section titled “Get Signature”get mediaStreamTrack(): MediaStreamTrack;Defined in: client-sdk-js/src/track/Track.ts:33
Returns
Section titled “Returns”MediaStreamTrack
streamState
Section titled “streamState”Get Signature
Section titled “Get Signature”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.
Returns
Section titled “Returns”Methods
Section titled “Methods”attach()
Section titled “attach()”attach(element?): HTMLMediaElement;Defined in: client-sdk-js/src/track/Track.ts:156
Parameters
Section titled “Parameters”element?
Section titled “element?”HTMLMediaElement
Returns
Section titled “Returns”HTMLMediaElement
detach()
Section titled “detach()”detach(element?): HTMLMediaElement[];Defined in: client-sdk-js/src/track/Track.ts:199
Parameters
Section titled “Parameters”element?
Section titled “element?”HTMLMediaElement
Returns
Section titled “Returns”HTMLMediaElement[]
detachEndedListener()
Section titled “detachEndedListener()”protected detachEndedListener(track): void;Defined in: client-sdk-js/src/track/Track.ts:72
Detach the base-class ‘ended’ listener from the given track.
Parameters
Section titled “Parameters”MediaStreamTrack
Returns
Section titled “Returns”void
eventNames()
Section titled “eventNames()”eventNames(): (string | number)[];Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:7
Returns
Section titled “Returns”(string | number)[]
Inherited from
Section titled “Inherited from”getMaxListeners()
Section titled “getMaxListeners()”getMaxListeners(): number;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:9
Returns
Section titled “Returns”number
Inherited from
Section titled “Inherited from”monitorStats()
Section titled “monitorStats()”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.
Parameters
Section titled “Parameters”getStats
Section titled “getStats”() => Promise<RTCStatsReport> | undefined
returns the underlying transport/producer/consumer stats, or undefined when the source is already closed.
reportType
Section titled “reportType”string
the RTC stats report type to aggregate (e.g. outbound-rtp).
bytesField
Section titled “bytesField”string
the byte field name on that report (e.g. bytesSent).
Returns
Section titled “Returns”Promise<void>
onEnded()
Section titled “onEnded()”protected onEnded(): void;Defined in: client-sdk-js/src/track/Track.ts:67
Hook fired when the underlying MediaStreamTrack ends.
Returns
Section titled “Returns”void
onEndedListener()
Section titled “onEndedListener()”protected onEndedListener(): void;Defined in: client-sdk-js/src/track/Track.ts:62
Returns
Section titled “Returns”void
prependListener()
Section titled “prependListener()”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
Parameters
Section titled “Parameters”string | number
listener
Section titled “listener”Listener
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”prependOnceListener()
Section titled “prependOnceListener()”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
Parameters
Section titled “Parameters”string | number
listener
Section titled “listener”Listener
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”TypedEmitter.prependOnceListener
setMaxListeners()
Section titled “setMaxListeners()”setMaxListeners(n): this;Defined in: client-sdk-js/node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts:8
Parameters
Section titled “Parameters”number
Returns
Section titled “Returns”this
Inherited from
Section titled “Inherited from”stop()
Section titled “stop()”stop(): void;Defined in: client-sdk-js/src/track/Track.ts:233
Returns
Section titled “Returns”void
listenerCount()
Section titled “listenerCount()”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
Parameters
Section titled “Parameters”emitter
Section titled “emitter”EventEmitter
string | number
Returns
Section titled “Returns”number