matrix-react-sdk
Version:
SDK for matrix.org using React
57 lines (54 loc) • 5.95 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.requestMediaPermissions = void 0;
var _logger = require("matrix-js-sdk/src/logger");
var _ErrorDialog = _interopRequireDefault(require("../../components/views/dialogs/ErrorDialog"));
var _languageHandler = require("../../languageHandler");
var _Modal = _interopRequireDefault(require("../../Modal"));
var _SdkConfig = _interopRequireDefault(require("../../SdkConfig"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const requestMediaPermissions = async (video = true) => {
let stream;
let error;
try {
stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video
});
} catch (err) {
// user likely doesn't have a webcam,
// we should still allow to select a microphone
if (video && err.name === "NotFoundError") {
try {
stream = await navigator.mediaDevices.getUserMedia({
audio: true
});
} catch (err) {
error = err;
}
} else {
error = err;
}
}
if (error) {
_logger.logger.log("Failed to list userMedia devices", error);
const brand = _SdkConfig.default.get().brand;
_Modal.default.createDialog(_ErrorDialog.default, {
title: (0, _languageHandler._t)("voip|no_media_perms_title"),
description: (0, _languageHandler._t)("voip|no_media_perms_description", {
brand
})
});
}
return stream;
};
exports.requestMediaPermissions = requestMediaPermissions;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9FcnJvckRpYWxvZyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX01vZGFsIiwiX1Nka0NvbmZpZyIsInJlcXVlc3RNZWRpYVBlcm1pc3Npb25zIiwidmlkZW8iLCJzdHJlYW0iLCJlcnJvciIsIm5hdmlnYXRvciIsIm1lZGlhRGV2aWNlcyIsImdldFVzZXJNZWRpYSIsImF1ZGlvIiwiZXJyIiwibmFtZSIsImxvZ2dlciIsImxvZyIsImJyYW5kIiwiU2RrQ29uZmlnIiwiZ2V0IiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJFcnJvckRpYWxvZyIsInRpdGxlIiwiX3QiLCJkZXNjcmlwdGlvbiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbWVkaWEvcmVxdWVzdE1lZGlhUGVybWlzc2lvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9sb2dnZXJcIjtcblxuaW1wb3J0IEVycm9yRGlhbG9nIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvRXJyb3JEaWFsb2dcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9Nb2RhbFwiO1xuaW1wb3J0IFNka0NvbmZpZyBmcm9tIFwiLi4vLi4vU2RrQ29uZmlnXCI7XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0TWVkaWFQZXJtaXNzaW9ucyA9IGFzeW5jICh2aWRlbyA9IHRydWUpOiBQcm9taXNlPE1lZGlhU3RyZWFtIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgbGV0IHN0cmVhbTogTWVkaWFTdHJlYW0gfCB1bmRlZmluZWQ7XG4gICAgbGV0IGVycm9yOiBhbnk7XG5cbiAgICB0cnkge1xuICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7XG4gICAgICAgICAgICBhdWRpbzogdHJ1ZSxcbiAgICAgICAgICAgIHZpZGVvLFxuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAvLyB1c2VyIGxpa2VseSBkb2Vzbid0IGhhdmUgYSB3ZWJjYW0sXG4gICAgICAgIC8vIHdlIHNob3VsZCBzdGlsbCBhbGxvdyB0byBzZWxlY3QgYSBtaWNyb3Bob25lXG4gICAgICAgIGlmICh2aWRlbyAmJiBlcnIubmFtZSA9PT0gXCJOb3RGb3VuZEVycm9yXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIGVycm9yID0gZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IgPSBlcnI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGYWlsZWQgdG8gbGlzdCB1c2VyTWVkaWEgZGV2aWNlc1wiLCBlcnJvcik7XG4gICAgICAgIGNvbnN0IGJyYW5kID0gU2RrQ29uZmlnLmdldCgpLmJyYW5kO1xuICAgICAgICBNb2RhbC5jcmVhdGVEaWFsb2coRXJyb3JEaWFsb2csIHtcbiAgICAgICAgICAgIHRpdGxlOiBfdChcInZvaXB8bm9fbWVkaWFfcGVybXNfdGl0bGVcIiksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogX3QoXCJ2b2lwfG5vX21lZGlhX3Blcm1zX2Rlc2NyaXB0aW9uXCIsIHsgYnJhbmQgfSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJlYW07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsWUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQWJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVNPLE1BQU1NLHVCQUF1QixHQUFHLE1BQUFBLENBQU9DLEtBQUssR0FBRyxJQUFJLEtBQXVDO0VBQzdGLElBQUlDLE1BQStCO0VBQ25DLElBQUlDLEtBQVU7RUFFZCxJQUFJO0lBQ0FELE1BQU0sR0FBRyxNQUFNRSxTQUFTLENBQUNDLFlBQVksQ0FBQ0MsWUFBWSxDQUFDO01BQy9DQyxLQUFLLEVBQUUsSUFBSTtNQUNYTjtJQUNKLENBQUMsQ0FBQztFQUNOLENBQUMsQ0FBQyxPQUFPTyxHQUFRLEVBQUU7SUFDZjtJQUNBO0lBQ0EsSUFBSVAsS0FBSyxJQUFJTyxHQUFHLENBQUNDLElBQUksS0FBSyxlQUFlLEVBQUU7TUFDdkMsSUFBSTtRQUNBUCxNQUFNLEdBQUcsTUFBTUUsU0FBUyxDQUFDQyxZQUFZLENBQUNDLFlBQVksQ0FBQztVQUFFQyxLQUFLLEVBQUU7UUFBSyxDQUFDLENBQUM7TUFDdkUsQ0FBQyxDQUFDLE9BQU9DLEdBQUcsRUFBRTtRQUNWTCxLQUFLLEdBQUdLLEdBQUc7TUFDZjtJQUNKLENBQUMsTUFBTTtNQUNITCxLQUFLLEdBQUdLLEdBQUc7SUFDZjtFQUNKO0VBQ0EsSUFBSUwsS0FBSyxFQUFFO0lBQ1BPLGNBQU0sQ0FBQ0MsR0FBRyxDQUFDLGtDQUFrQyxFQUFFUixLQUFLLENBQUM7SUFDckQsTUFBTVMsS0FBSyxHQUFHQyxrQkFBUyxDQUFDQyxHQUFHLENBQUMsQ0FBQyxDQUFDRixLQUFLO0lBQ25DRyxjQUFLLENBQUNDLFlBQVksQ0FBQ0Msb0JBQVcsRUFBRTtNQUM1QkMsS0FBSyxFQUFFLElBQUFDLG1CQUFFLEVBQUMsMkJBQTJCLENBQUM7TUFDdENDLFdBQVcsRUFBRSxJQUFBRCxtQkFBRSxFQUFDLGlDQUFpQyxFQUFFO1FBQUVQO01BQU0sQ0FBQztJQUNoRSxDQUFDLENBQUM7RUFDTjtFQUVBLE9BQU9WLE1BQU07QUFDakIsQ0FBQztBQUFDbUIsT0FBQSxDQUFBckIsdUJBQUEsR0FBQUEsdUJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=