12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree.
- */
- /* eslint-env node */
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.shimGetDisplayMedia = shimGetDisplayMedia;
- function shimGetDisplayMedia(window, getSourceId) {
- if (window.navigator.mediaDevices && 'getDisplayMedia' in window.navigator.mediaDevices) {
- return;
- }
- if (!window.navigator.mediaDevices) {
- return;
- }
- // getSourceId is a function that returns a promise resolving with
- // the sourceId of the screen/window/tab to be shared.
- if (typeof getSourceId !== 'function') {
- console.error('shimGetDisplayMedia: getSourceId argument is not ' + 'a function');
- return;
- }
- window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(constraints) {
- return getSourceId(constraints).then(function (sourceId) {
- var widthSpecified = constraints.video && constraints.video.width;
- var heightSpecified = constraints.video && constraints.video.height;
- var frameRateSpecified = constraints.video && constraints.video.frameRate;
- constraints.video = {
- mandatory: {
- chromeMediaSource: 'desktop',
- chromeMediaSourceId: sourceId,
- maxFrameRate: frameRateSpecified || 3
- }
- };
- if (widthSpecified) {
- constraints.video.mandatory.maxWidth = widthSpecified;
- }
- if (heightSpecified) {
- constraints.video.mandatory.maxHeight = heightSpecified;
- }
- return window.navigator.mediaDevices.getUserMedia(constraints);
- });
- };
- }
|