Spaces:
Running
Running
Update index.html
Browse files- index.html +21 -3
index.html
CHANGED
|
@@ -188,6 +188,8 @@
|
|
| 188 |
let bars;
|
| 189 |
let animationId;
|
| 190 |
let isListening = false;
|
|
|
|
|
|
|
| 191 |
|
| 192 |
function createVisualizer() {
|
| 193 |
const barCount = 64;
|
|
@@ -295,9 +297,9 @@
|
|
| 295 |
}
|
| 296 |
});
|
| 297 |
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
|
| 302 |
await myvad.start();
|
| 303 |
startButton.textContent = 'End Call';
|
|
@@ -316,6 +318,22 @@
|
|
| 316 |
isListening = false;
|
| 317 |
addLog('System: Stopped listening.');
|
| 318 |
cancelAnimationFrame(animationId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 319 |
addLog('websocket closed');
|
| 320 |
}
|
| 321 |
}
|
|
|
|
| 188 |
let bars;
|
| 189 |
let animationId;
|
| 190 |
let isListening = false;
|
| 191 |
+
let mediaStream;
|
| 192 |
+
let audioSource;
|
| 193 |
|
| 194 |
function createVisualizer() {
|
| 195 |
const barCount = 64;
|
|
|
|
| 297 |
}
|
| 298 |
});
|
| 299 |
|
| 300 |
+
mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true });
|
| 301 |
+
audioSource = audioContext.createMediaStreamSource(mediaStream);
|
| 302 |
+
audioSource.connect(analyser);
|
| 303 |
|
| 304 |
await myvad.start();
|
| 305 |
startButton.textContent = 'End Call';
|
|
|
|
| 318 |
isListening = false;
|
| 319 |
addLog('System: Stopped listening.');
|
| 320 |
cancelAnimationFrame(animationId);
|
| 321 |
+
|
| 322 |
+
// Stop all tracks in the media stream
|
| 323 |
+
if (mediaStream) {
|
| 324 |
+
mediaStream.getTracks().forEach(track => track.stop());
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
// Disconnect the audio source from the analyser
|
| 328 |
+
if (audioSource) {
|
| 329 |
+
audioSource.disconnect();
|
| 330 |
+
}
|
| 331 |
+
|
| 332 |
+
// Close the audio context
|
| 333 |
+
if (audioContext) {
|
| 334 |
+
await audioContext.close();
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
addLog('websocket closed');
|
| 338 |
}
|
| 339 |
}
|