fix: resolve selected Windows microphone

This commit is contained in:
EtienneLescot
2026-05-05 20:36:59 +02:00
parent 0ebf5c143b
commit c7b43a50ef
11 changed files with 355 additions and 21 deletions
+5 -1
View File
@@ -102,6 +102,7 @@ export function LaunchWindow() {
setMicrophoneEnabled,
microphoneDeviceId,
setMicrophoneDeviceId,
setMicrophoneDeviceName,
systemAudioEnabled,
setSystemAudioEnabled,
webcamEnabled,
@@ -169,8 +170,9 @@ export function LaunchWindow() {
useEffect(() => {
if (selectedMicId && selectedMicId !== "default") {
setMicrophoneDeviceId(selectedMicId);
setMicrophoneDeviceName(micDevices.find((d) => d.deviceId === selectedMicId)?.label);
}
}, [selectedMicId, setMicrophoneDeviceId]);
}, [selectedMicId, micDevices, setMicrophoneDeviceId, setMicrophoneDeviceName]);
useEffect(() => {
if (selectedCameraId) {
@@ -403,8 +405,10 @@ export function LaunchWindow() {
<select
value={microphoneDeviceId || selectedMicId}
onChange={(e) => {
const selectedDevice = micDevices.find((d) => d.deviceId === e.target.value);
setSelectedMicId(e.target.value);
setMicrophoneDeviceId(e.target.value);
setMicrophoneDeviceName(selectedDevice?.label);
}}
className={`w-full appearance-none bg-white/5 text-white text-[11px] rounded-lg pl-2 pr-6 py-1 border border-white/10 outline-none hover:bg-white/10 transition-colors cursor-pointer ${!micExpanded ? "sr-only" : ""}`}
>
+6
View File
@@ -53,6 +53,8 @@ type UseScreenRecorderReturn = {
setMicrophoneEnabled: (enabled: boolean) => void;
microphoneDeviceId: string | undefined;
setMicrophoneDeviceId: (deviceId: string | undefined) => void;
microphoneDeviceName: string | undefined;
setMicrophoneDeviceName: (deviceName: string | undefined) => void;
webcamDeviceId: string | undefined;
setWebcamDeviceId: (deviceId: string | undefined) => void;
webcamDeviceName: string | undefined;
@@ -102,6 +104,7 @@ export function useScreenRecorder(): UseScreenRecorderReturn {
const [elapsedSeconds, setElapsedSeconds] = useState(0);
const [microphoneEnabled, setMicrophoneEnabled] = useState(false);
const [microphoneDeviceId, setMicrophoneDeviceId] = useState<string | undefined>(undefined);
const [microphoneDeviceName, setMicrophoneDeviceName] = useState<string | undefined>(undefined);
const [webcamDeviceId, setWebcamDeviceId] = useState<string | undefined>(undefined);
const [webcamDeviceName, setWebcamDeviceName] = useState<string | undefined>(undefined);
const [systemAudioEnabled, setSystemAudioEnabled] = useState(false);
@@ -617,6 +620,7 @@ export function useScreenRecorder(): UseScreenRecorderReturn {
microphone: {
enabled: microphoneEnabled,
deviceId: microphoneDeviceId,
deviceName: microphoneDeviceName,
gain: MIC_GAIN_BOOST,
},
},
@@ -1125,6 +1129,8 @@ export function useScreenRecorder(): UseScreenRecorderReturn {
setMicrophoneEnabled,
microphoneDeviceId,
setMicrophoneDeviceId,
microphoneDeviceName,
setMicrophoneDeviceName,
webcamDeviceId,
setWebcamDeviceId,
webcamDeviceName,
+1
View File
@@ -20,6 +20,7 @@ export type NativeWindowsRecordingRequest = {
microphone: {
enabled: boolean;
deviceId?: string;
deviceName?: string;
gain: number;
};
};