LoquendoBot/src/js/mediaDevices.js
2023-12-25 07:49:32 +01:00

49 lines
1.5 KiB
JavaScript

let micSelect = document.querySelector('#microphone');
let selectedMic;
function getAvailableMediaDevices(type) {
return new Promise((resolve, reject) => {
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
const microphones = devices.filter((device) => device.kind === type);
resolve(microphones);
})
.catch((error) => {
reject(error);
});
});
}
// Microphones
getAvailableMediaDevices('audioinput')
.then((microphones) => {
let i = 0;
let tempname = '';
for (let mic of microphones) {
if (mic.deviceId === 'default') {
tempname = mic.label.slice(10); // remove "default -" from the label to get the default device name.
}
if (mic.deviceId === 'communications' || mic.label === tempname) {
continue;
}
const option = document.createElement('option');
// Set the options value and text.
option.value = i;
option.innerHTML = `${mic.label}`;
// Add the option to the voice selector.
micSelect.appendChild(option);
if (i === microphones.length - 1) {
document.getElementById('microphone').value = settings.STT.SELECTED_MICROPHONE;
}
i++;
}
})
.catch((error) => {
console.error('Error retrieving microphones:', error);
});