sinch-rtc
Version:
RTC JavaScript/Web SDK
41 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CallQualityWarningController = void 0;
class CallQualityWarningController {
constructor(factory, call) {
this.call = call;
this.missingMediaStreamWarningDetector =
factory.createMissingMediaStreamDetector();
this.webRtcStatsDectors = factory.createWebRtcStatsDetectors();
}
onCallEstablished(_) {
this.missingMediaStreamWarningDetector.isActive = true;
this.startFetchingWebRTCStats();
}
onCallEnded(_) {
this.missingMediaStreamWarningDetector.isActive = false;
if (this.intervalId) {
clearInterval(this.intervalId);
}
}
onIceConnectionStateChanged(state) {
this.missingMediaStreamWarningDetector.onIceConnectionStateChanged(state);
}
startFetchingWebRTCStats() {
this.intervalId = setInterval(() => {
this.call.getPeerConnectionStats().then((stats) => {
if (!stats) {
return;
}
this.webRtcStatsDectors.forEach((detector) => {
if (stats) {
detector.onNewWebRtcStats(stats);
}
});
});
}, CallQualityWarningController.WEBRTC_FETCH_STATS_INTERVAL_MS);
}
}
exports.CallQualityWarningController = CallQualityWarningController;
CallQualityWarningController.WEBRTC_FETCH_STATS_INTERVAL_MS = 500;
//# sourceMappingURL=CallQualityWarningController.js.map