_buildMediaConstraints()

in src/js/rtc_session.js [1108:1185]


    _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;
    }