value: function _buildMediaConstraints()

in monitoring-stack-cdk/resources/frontend/connect-rtc.js [10036:10113]


            value: function _buildMediaConstraints() {
                var self = this;
                var mediaConstraints = {};
    
                if (self._enableAudio) {
                    var audioConstraints = {};
                    if (typeof self._echoCancellation !== 'undefined') {
                        audioConstraints.echoCancellation = !!self._echoCancellation;
                    }
                    if (Object.keys(audioConstraints).length > 0) {
                        mediaConstraints.audio = audioConstraints;
                    } else {
                        mediaConstraints.audio = true;
                    }
                } else {
                    mediaConstraints.audio = false;
                }
    
                if (self._enableVideo) {
                    var videoConstraints = {};
                    var widthConstraints = {};
                    var heightConstraints = {};
                    var frameRateConstraints = {};
    
                    //build video width constraints
                    if (typeof self._idealVideoWidth !== 'undefined') {
                        widthConstraints.ideal = self._idealVideoWidth;
                    }
                    if (typeof self._maxVideoWidth !== 'undefined') {
                        widthConstraints.max = self._maxVideoWidth;
                    }
                    if (typeof self._minVideoWidth !== 'undefined') {
                        widthConstraints.min = self._minVideoWidth;
                    }
                    // build video height constraints
                    if (typeof self._idealVideoHeight !== 'undefined') {
                        heightConstraints.ideal = self._idealVideoHeight;
                    }
                    if (typeof self._maxVideoHeight !== 'undefined') {
                        heightConstraints.max = self._maxVideoHeight;
                    }
                    if (typeof self._minVideoHeight !== 'undefined') {
                        heightConstraints.min = self._minVideoHeight;
                    }
                    if (Object.keys(widthConstraints).length > 0 && Object.keys(heightConstraints).length > 0) {
                        videoConstraints.width = widthConstraints;
                        videoConstraints.height = heightConstraints;
                    }
                    // build frame rate constraints
                    if (typeof self._videoFrameRate !== 'undefined') {
                        frameRateConstraints.ideal = self._videoFrameRate;
                    }
                    if (typeof self._minVideoFrameRate !== 'undefined') {
                        frameRateConstraints.min = self._minVideoFrameRate;
                    }
                    if (typeof self._maxVideoFrameRate !== 'undefined') {
                        frameRateConstraints.max = self._maxVideoFrameRate;
                    }
                    if (Object.keys(frameRateConstraints).length > 0) {
                        videoConstraints.frameRate = frameRateConstraints;
                    }
    
                    // build facing mode constraints
                    if (self._facingMode !== 'user' && self._facingMode !== "environment") {
                        self._facingMode = 'user';
                    }
                    videoConstraints.facingMode = self._facingMode;
    
                    // set video constraints
                    if (Object.keys(videoConstraints).length > 0) {
                        mediaConstraints.video = videoConstraints;
                    } else {
                        mediaConstraints.video = true;
                    }
                }
    
                return mediaConstraints;
            }