diff --git a/src/lib/audio/audio-recorder.js b/src/lib/audio/audio-recorder.js index 2d1bcb91dd3bc3c3fbb686ed1f8252ce2117acae..b452b1f263db15ffc7f60e561c8d7bb728ea83c8 100644 --- a/src/lib/audio/audio-recorder.js +++ b/src/lib/audio/audio-recorder.js @@ -96,8 +96,14 @@ class AudioRecorder { } } - const trimStart = Math.max(2, firstChunkAboveThreshold - 2) / this.buffers.length; - const trimEnd = Math.min(this.buffers.length - 2, lastChunkAboveThreshold + 2) / this.buffers.length; + let trimStart = Math.max(2, firstChunkAboveThreshold - 2) / this.buffers.length; + let trimEnd = Math.min(this.buffers.length - 2, lastChunkAboveThreshold + 2) / this.buffers.length; + + // With very few samples, the automatic trimming can produce invalid values + if (trimStart >= trimEnd) { + trimStart = 0; + trimEnd = 1; + } const buffer = new Float32Array(this.buffers.length * this.bufferLength);