Wanna hear what your Mic sounds like?
Source Code:
<div>
<button id="toggleButton">Then click this Button!</button>
<script>
window.onload = async () => {
const toggleButton = document.getElementById('toggleButton');
let audioContext;
let mediaStream;
let audioSource;
toggleButton.addEventListener('click', async () => {
if (!audioContext) {
try {
const stream = await navigator.mediaDevices.getUserMedia({
audio: {
echoCancellation: false // Disable echo cancellation
}
});
audioContext = new (window.AudioContext || window.webkitAudioContext)();
mediaStream = stream;
audioSource = audioContext.createMediaStreamSource(stream);
audioSource.connect(audioContext.destination);
toggleButton.textContent = 'Stop Test';
} catch (error) {
console.error('Error accessing microphone:', error);
}
} else {
if (audioSource) {
audioSource.disconnect();
mediaStream.getTracks().forEach(track => track.stop());
audioContext = null;
audioSource = null;
mediaStream = null;
toggleButton.textContent = 'Start Test';
}
}
});
};
</script>
</div>