Files
Recordly/electron/ipc/recording/windowsFallbacks.ts

35 lines
978 B
TypeScript

const WINDOWS_MIC_CAPTURE_INIT_WARNING = "WARNING: Failed to initialize WASAPI mic capture";
export const WINDOWS_MIC_CAPTURE_MODE_ENV = "RECORDLY_WINDOWS_MIC_CAPTURE";
export function shouldStartWindowsBrowserMicrophoneFallback(
options?: { capturesMicrophone?: boolean },
env: NodeJS.ProcessEnv = process.env,
) {
if (!options?.capturesMicrophone) {
return false;
}
const mode = env[WINDOWS_MIC_CAPTURE_MODE_ENV]?.trim().toLowerCase();
if (mode === "native" || mode === "wasapi") {
return false;
}
if (!mode) {
return true;
}
return mode === "browser" || mode === "fallback" || mode === "renderer";
}
export function shouldUseWindowsBrowserMicrophoneFallback(
captureOutput: string,
options?: { capturesMicrophone?: boolean },
env: NodeJS.ProcessEnv = process.env,
) {
return (
Boolean(options?.capturesMicrophone) &&
(shouldStartWindowsBrowserMicrophoneFallback(options, env) ||
captureOutput.includes(WINDOWS_MIC_CAPTURE_INIT_WARNING))
);
}