{"version":3,"sources":["webpack:///./src/views/recorder/components/volume-tester/index.ts","webpack:///./src/views/recorder/lib/devices.ts"],"names":["VolumeTester","selectDevice","id","type","LocalStorage","setInputDevice","setVideoInputDevice","getInputDevice","getVideoInputDevice","getDevices","navigator","mediaDevices","enumerateDevices","console","log","inputDevice","constraints","video","audio","channelCount","echoCancellation","deviceId","undefined","getUserMedia","stream","getTracks","forEach","t","stop","warn","devices","deviceType","inputDevices","filter","device","kind","map","name","label","length","error"],"mappings":"oJAAA,uBACeA,2B,kQCOFC,EAAe,SAACC,GAA0C,IAA9BC,yDAAmB,QAC7C,UAATA,EAAkBC,OAAaC,eAAeH,GAC7CE,OAAaE,oBAAoBJ,IAG3BK,EAAiB,WAA+B,IAA9BJ,yDAAmB,QAChD,MAAgB,UAATA,EACHC,OAAaG,iBACbH,OAAaI,uBAGNC,EAAU,uDAAG,0HACE,GAA1BN,iCAAmB,QAEdO,UAAUC,cAAiBD,UAAUC,aAAaC,iBAAgB,gBACpB,OAAjDC,QAAQC,IAAI,qCAAqC,kBAC1C,IAAE,OAmBJ,OAhBDC,EAAcR,IACdS,EACK,UAATb,EACI,CACEc,OAAO,EACPC,MAAO,CACLC,aAAc,EACdC,kBAAkB,EAClBC,SAAUN,QAAeO,IAG7B,CACEJ,OAAO,EACPD,MAAO,CACLI,SAAUN,QAAeO,IAE5B,kBAGgBZ,UAAUC,aAAaY,aAAaP,GAAY,OAA/DQ,EAAS,EAAH,KACZA,EAAOC,YAAYC,SAAQ,SAAAC,GAAC,OAAIA,EAAEC,UAAQ,qDAE1Cf,QAAQgB,KAAK,sBAAD,OAEC,UAAT1B,EAAmB,aAAe,SACpC,kBAEA,mCAIoBO,UAAUC,aAAaC,mBAAkB,QAcT,OAdhDkB,EAAU,EAAH,KACPC,EACK,UAAT5B,EAAmB,aAAe,aAE9B6B,EAAeF,EAClBG,QAAO,SAAAC,GAAM,OAAIA,EAAOC,OAASJ,KACjCK,KAAI,SAAAF,GAAM,MAAK,CACdhC,GAAIgC,EAAOb,SACXgB,KAAMH,EAAOI,OAAS,mBAAJ,OAAuBnC,EAAI,UAG5CY,GAAeiB,EAAaO,OAAS,GACxCtC,EAAa+B,EAAa,GAAG9B,GAAIC,GAEnCU,QAAQC,IAAI,kBAAD,OAAmBX,EAAI,MAAM6B,GAAc,kBAE/CA,GAAY,QAEkC,OAFlC,8BAEnBnB,QAAQ2B,MAAM,+BAAgC,EAAF,IAAS,kBAC9C,IAAE,kEAEZ,kBA5DsB","file":"assets/js/chunk-456ac820.e7408198.js","sourcesContent":["import VolumeTester from \"./VolumeTester.vue\";\r\nexport default VolumeTester;\r\n","import LocalStorage from \"@/core/utils/LocalStorage\";\r\n\r\ntype DeviceType = \"video\" | \"audio\";\r\nexport interface Device {\r\n id: string;\r\n name: string;\r\n}\r\n\r\nexport const selectDevice = (id: string, type: DeviceType = \"audio\") => {\r\n if (type === \"audio\") LocalStorage.setInputDevice(id);\r\n else LocalStorage.setVideoInputDevice(id);\r\n};\r\n\r\nexport const getInputDevice = (type: DeviceType = \"audio\") => {\r\n return type === \"audio\"\r\n ? LocalStorage.getInputDevice()\r\n : LocalStorage.getVideoInputDevice();\r\n};\r\n\r\nexport const getDevices = async (\r\n type: DeviceType = \"audio\",\r\n): Promise => {\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {\r\n console.log(\"enumerateDevices() not supported.\");\r\n return [];\r\n }\r\n\r\n const inputDevice = getInputDevice();\r\n const constraints: MediaStreamConstraints =\r\n type === \"audio\"\r\n ? {\r\n video: false,\r\n audio: {\r\n channelCount: 1,\r\n echoCancellation: false,\r\n deviceId: inputDevice || undefined,\r\n },\r\n }\r\n : {\r\n audio: false,\r\n video: {\r\n deviceId: inputDevice || undefined,\r\n },\r\n };\r\n\r\n try {\r\n const stream = await navigator.mediaDevices.getUserMedia(constraints);\r\n stream.getTracks().forEach(t => t.stop());\r\n } catch (error) {\r\n console.warn(\r\n `Warning: Access to ${\r\n type === \"audio\" ? \"microphone\" : \"camera\"\r\n } denied.`,\r\n error,\r\n );\r\n }\r\n\r\n try {\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const deviceType: MediaDeviceKind =\r\n type === \"audio\" ? \"audioinput\" : \"videoinput\";\r\n\r\n const inputDevices = devices\r\n .filter(device => device.kind === deviceType)\r\n .map(device => ({\r\n id: device.deviceId,\r\n name: device.label || `Unknown device (${type})`,\r\n }));\r\n\r\n if (!inputDevice && inputDevices.length > 0)\r\n selectDevice(inputDevices[0].id, type);\r\n\r\n console.log(`Found devices (${type}):`, inputDevices);\r\n\r\n return inputDevices;\r\n } catch (error) {\r\n console.error(\"Error while listing devices:\", error);\r\n return [];\r\n }\r\n};\r\n"],"sourceRoot":""}