jacquardSnapshot

← 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();