UNPKG

@corti/dictation-web

Version:
39 lines 1.43 kB
export async function getMediaStream(deviceId, debug_displayAudio) { if (debug_displayAudio) { const stream = await navigator.mediaDevices.getDisplayMedia({ audio: true, video: true, }); stream.getTracks().forEach((track) => { if (track.kind === "video") { stream.removeTrack(track); } }); return stream; } if (!deviceId) { throw new Error("No device ID provided"); } const constraints = deviceId !== "default" ? { audio: { deviceId: { exact: deviceId } } } : { audio: true }; return await navigator.mediaDevices.getUserMedia(constraints); } export function createAudioAnalyzer(mediaStream) { const audioContext = new AudioContext(); const source = audioContext.createMediaStreamSource(mediaStream); const analyser = audioContext.createAnalyser(); analyser.fftSize = 8192; source.connect(analyser); return { analyser, audioContext }; } export function calculateAudioLevel(analyser) { const dataArray = new Uint8Array(analyser.fftSize); analyser.getByteTimeDomainData(dataArray); const sumSquares = Array.from(dataArray).reduce((sum, value) => { const normalized = (value - 128) / 128; return sum + normalized * normalized; }, 0); return Math.sqrt(sumSquares / dataArray.length); } //# sourceMappingURL=media.js.map