← snapshot
795 bytes
import { chromium } from "@playwright/test";
const browser = await chromium.launch({ args: [
"--use-fake-ui-for-media-stream","--use-fake-device-for-media-stream",
"--use-file-for-fake-audio-capture=/tmp/probe.wav"] });
const ctx = await browser.newContext({ permissions: ["microphone"] });
const page = await ctx.newPage();
await page.goto("http://localhost:3000/lab/voice", { waitUntil: "domcontentloaded" });
const r = await page.evaluate(async () => {
try {
const s = await navigator.mediaDevices.getUserMedia({ audio: { channelCount: 1, echoCancellation: true } });
const t = s.getAudioTracks()[0];
return { ok: true, label: t.label, state: t.readyState };
} catch (e) { return { ok: false, err: String(e) }; }
});
console.log(JSON.stringify(r));
await browser.close();