Skip to content

Commit b90d078

Browse files
committed
fix(types): pass recorder options to recorder
1 parent def69fa commit b90d078

File tree

3 files changed

+3
-73
lines changed

3 files changed

+3
-73
lines changed

src/recorder.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { Monitor, type MonitorOptions } from "./monitor.js";
22

3-
export interface RecorderOptions extends MonitorOptions {
3+
export interface RecorderOptions
4+
extends Omit<MediaRecorderOptions, "mimeType">,
5+
MonitorOptions {
46
mimeType?: string | string[];
57
}
68

tests/analyser.spec.js

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -290,30 +290,6 @@ test.describe("Monitor with Default Analyser", () => {
290290
expect(result.analyserUsesCustomContext).toBe(true);
291291
});
292292

293-
test("should create Monitor with custom analyser", async ({ page }) => {
294-
const result = await page.evaluate(async () => {
295-
const { Monitor, Analyser, getMediaStream } = await import(
296-
"/dist/index.js"
297-
);
298-
299-
const customContext = new AudioContext();
300-
const customAnalyser = new Analyser(customContext, { fftSize: 512 });
301-
const stream = await getMediaStream();
302-
const monitor = new Monitor(stream, {
303-
context: customContext,
304-
defaultAnalyser: customAnalyser,
305-
});
306-
307-
return {
308-
analyserMatches: monitor.analyser === customAnalyser,
309-
customFFTSize: monitor.analyser.node.fftSize,
310-
};
311-
});
312-
313-
expect(result.analyserMatches).toBe(true);
314-
expect(result.customFFTSize).toBe(512);
315-
});
316-
317293
test("should provide volume through monitor", async ({ page }) => {
318294
const result = await page.evaluate(async () => {
319295
const { Monitor, getMediaStream } = await import("/dist/index.js");

tests/integration.spec.js

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,6 @@ test.describe("Integration Tests", () => {
55
await page.goto("/tests/index.html");
66
});
77

8-
test("should integrate Recorder with custom Analyser", async ({ page }) => {
9-
const result = await page.evaluate(async () => {
10-
const { Recorder, Analyser, getMediaStream } = await import(
11-
"/dist/index.js"
12-
);
13-
14-
const stream = await getMediaStream();
15-
const customContext = new AudioContext();
16-
const customAnalyser = new Analyser(customContext, { fftSize: 512 });
17-
const recorder = new Recorder(stream, {
18-
context: customContext,
19-
defaultAnalyser: customAnalyser,
20-
});
21-
22-
await recorder.start();
23-
await new Promise((resolve) => setTimeout(resolve, 300));
24-
25-
const volume1 = recorder.volume;
26-
const frequencyData1 = recorder.frequencyData;
27-
28-
await new Promise((resolve) => setTimeout(resolve, 200));
29-
30-
const volume2 = recorder.volume;
31-
const blob = await recorder.stop();
32-
33-
return {
34-
customFFTSize: customAnalyser.node.fftSize,
35-
recorderFFTSize: recorder.analyser.node.fftSize,
36-
analysersMatch: recorder.analyser === customAnalyser,
37-
contextsMatch: recorder.context === customContext,
38-
volume1Valid: typeof volume1 === "number" && Number.isFinite(volume1),
39-
volume2Valid: typeof volume2 === "number" && Number.isFinite(volume2),
40-
frequencyDataValid:
41-
frequencyData1 instanceof Uint8Array && frequencyData1.length === 256,
42-
recordingValid: blob instanceof Blob && blob.size > 0,
43-
};
44-
});
45-
46-
expect(result.customFFTSize).toBe(512);
47-
expect(result.recorderFFTSize).toBe(512);
48-
expect(result.analysersMatch).toBe(true);
49-
expect(result.contextsMatch).toBe(true);
50-
expect(result.volume1Valid).toBe(true);
51-
expect(result.volume2Valid).toBe(true);
52-
expect(result.frequencyDataValid).toBe(true);
53-
expect(result.recordingValid).toBe(true);
54-
});
55-
568
test("should integrate Monitor with Recorder using same stream", async ({
579
page,
5810
}) => {

0 commit comments

Comments
 (0)