twilio-video
Version:
Twilio Video JavaScript Library
59 lines (54 loc) • 1.43 kB
JavaScript
;
/**
* Track telemetry events
* @internal
*/
class TrackEvents {
/**
* @param {import('../telemetry')} telemetry - The telemetry instance
*/
constructor(telemetry) {
this._telemetry = telemetry;
}
/**
* Emit when a track stalls (frame rate drops below threshold)
* @param {string} trackSid - Track SID
* @param {number} frameRate - Current frame rate
* @param {number} threshold - Stall threshold
* @param {('video'|'audio')} [trackType='video'] - Track type
* @returns {void}
*/
stalled(trackSid, frameRate, threshold, trackType = 'video') {
this._telemetry.warning({
group: 'track-warning-raised',
name: 'track-stalled',
payload: {
trackSid,
frameRate,
threshold,
trackType
}
});
}
/**
* Emit when a stalled track resumes (frame rate rises above threshold)
* @param {string} trackSid - Track SID
* @param {number} frameRate - Current frame rate
* @param {number} threshold - Resume threshold
* @param {('video'|'audio')} [trackType='video'] - Track type
* @returns {void}
*/
resumed(trackSid, frameRate, threshold, trackType = 'video') {
this._telemetry.info({
group: 'track-warning-cleared',
name: 'track-stalled',
payload: {
trackSid,
frameRate,
threshold,
trackType
}
});
}
}
module.exports = TrackEvents;