mirror of
https://github.com/R0m1k3/LiveFlow.git
synced 2026-10-11 17:27:19 +02:00
fix: correction de la détection et du listing des micros au chargement
This commit is contained in:
1 parent
a85051c4dd
commit
8dbc657d7d
2 files changed
+23
-2
No files matched your search
+22
-2
@@ -32,6 +32,9 @@ function getSpeakerColorIndex(speaker) {
|
||||
|
||||
async function populateMicList() {
|
||||
const sel = $('mic-select');
|
||||
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const devices = await navigator.mediaDevices.enumerateDevices();
|
||||
const mics = devices.filter((d) => d.kind === 'audioinput');
|
||||
@@ -39,6 +42,7 @@ async function populateMicList() {
|
||||
const current = sel.value;
|
||||
sel.innerHTML = '<option value="">Micro par défaut</option>';
|
||||
for (const mic of mics) {
|
||||
if (!mic.deviceId) continue; // Ignorer les périphériques sans ID (permission non accordée)
|
||||
const opt = document.createElement('option');
|
||||
opt.value = mic.deviceId;
|
||||
opt.textContent = mic.label || `Micro ${sel.options.length}`;
|
||||
@@ -267,6 +271,22 @@ $('copy-btn').onclick = copyTranscript;
|
||||
$('delete-btn').onclick = deleteCurrentMeeting;
|
||||
loadMeetings();
|
||||
|
||||
// Peupler la liste des micros au chargement (et quand un périphérique change)
|
||||
populateMicList();
|
||||
// Peupler la liste des micros au chargement et demander la permission si nécessaire
|
||||
async function initMics() {
|
||||
await populateMicList();
|
||||
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
|
||||
try {
|
||||
// Demander l'accès au micro temporairement pour obtenir les autorisations et les noms réels
|
||||
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
||||
// Relâcher immédiatement le micro pour éteindre le témoin d'enregistrement
|
||||
stream.getTracks().forEach((t) => t.stop());
|
||||
// Re-peupler la liste maintenant que la permission est acquise
|
||||
await populateMicList();
|
||||
} catch (err) {
|
||||
console.log('Permission initiale micro refusée ou non disponible :', err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
initMics();
|
||||
navigator.mediaDevices?.addEventListener('devicechange', populateMicList);
|
||||
@@ -27,3 +27,4 @@ Vérification de la cohérence de tous les fichiers (backend et frontend) et tes
|
||||
- Développement du frontend (styles, boutons, sélecteur de micro, badges).
|
||||
- Validation et commit des modifications pour le sélecteur de micro et la diarisation.
|
||||
- Amélioration du frontend pour rafraîchir les noms des micros après autorisation d'accès, commit et push sur main.
|
||||
- Correction de l'affichage de la liste des micros : demande initiale d'autorisation au chargement de la page et filtrage des périphériques sans identifiant.
|
||||
Reference in new issue
Block a user