UNPKG

@nethesis/phone-island

Version:
3 lines (2 loc) 2.83 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),require("../../node_modules/mic-check/lib/index.js");var e=require("../webrtc/janus.js"),i=require("../../store/index.js"),r=require("../user/default_device.js");require("react");var t=require("../../utils/genericFunctions/localStorage.js"),s=require("../../_virtual/index8.js"),n=e.default;exports.checkMediaPermissions=function(){if(r.isPhysical())return i.store.dispatch.alerts.removeAlert("browser_permissions"),i.store.dispatch.alerts.removeAlert("user_permissions"),i.store.dispatch.alerts.removeAlert("busy_camera"),void i.store.dispatch.alerts.removeAlert("unknown_media_permissions");s.__exports.requestMediaPermissions({audio:!0}).then((function(){})).catch((function(e){var r,t,o=e.type,u=null!==(t=((r={})[s.__exports.MediaPermissionsErrorType.SystemPermissionDenied]={alert:"browser_permissions",message:"WebRTC: browser does not have permission to access camera or microphone"},r[s.__exports.MediaPermissionsErrorType.UserPermissionDenied]={alert:"user_permissions",message:"WebRTC: user didn't allow app to access camera or microphone"},r)[o])&&void 0!==t?t:{alert:"unknown_media_permissions",message:"WebRTC: can't access audio or camera on this device. unknown error"};i.store.dispatch.alerts.setAlert(u.alert),n.error&&n.error(u.message)}))},exports.checkWebCamPermission=function(){return new Promise((function(e){s.__exports.requestMediaPermissions({video:!0}).then((function(){e(!0)})).catch((function(i){console.error("Error requesting webcam permission:",i),e(!1)}))}))},exports.getCurrentAudioInputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-input-device").deviceId||null;return i.store.select.mediaDevices.audioInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentAudioOutputDeviceId=function(){var e=t.getJSONItem("phone-island-audio-output-device").deviceId||null;return i.store.select.mediaDevices.audioOutputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getCurrentVideoInputDeviceId=function(){var e=t.getJSONItem("phone-island-video-input-device").deviceId||null;return i.store.select.mediaDevices.videoInputDevices(i.store.getState()).find((function(i){return i.deviceId===e}))?e:null},exports.getSupportedDevices=function(e){var i,r,t=!1,s=!1,o=!1,u=!1;i=function(){var i={audio:t,audioCap:o,video:s,videoCap:u};n.log&&n.log("supportedDevices=",i),e()},r=[],navigator.mediaDevices.enumerateDevices().then((function(e){e.forEach((function(e){var i=!1;r.forEach((function(r){r.deviceId===e.deviceId&&r.kind===e.kind&&(i=!0)})),i||("videoinput"!==e.kind||u||(u=!0),"audioinput"!==e.kind||o||(o=!0),"audioinput"===e.kind&&(t=!0),e.kind,"videoinput"===e.kind&&(s=!0),r.push(e))})),i&&i()}))}; //# sourceMappingURL=devices.js.map