diff --git a/frontend/shared/Webcam.svelte b/frontend/shared/Webcam.svelte index b3dc3dc..ff9b309 100644 --- a/frontend/shared/Webcam.svelte +++ b/frontend/shared/Webcam.svelte @@ -8,6 +8,7 @@ Spinner, Microphone as Mic, VolumeMuted, + Webcam, VolumeHigh } from "@gradio/icons"; import type { I18nFormatter } from "@gradio/utils"; @@ -67,6 +68,7 @@ let volumeMuted = false let micMuted = false + let cameraOff = false const handle_volume_mute = () => { volumeMuted = !volumeMuted } @@ -77,6 +79,15 @@ track.enabled = !micMuted }) } + const handle_camera_off = () => { + cameraOff = !cameraOff + stream.getTracks().forEach(track => { + if (track.kind.includes('video')) + track.enabled = !cameraOff + }) + + } + const dispatch = createEventDispatcher<{ tick: undefined; @@ -122,6 +133,9 @@ async function access_webcam(): Promise { try { const node = show_local_video ? local_video_source : video_source; + micMuted = false + cameraOff = false + volumeMuted = false get_video_stream(include_audio, node, null, track_constraints) .then(async (local_stream) => { webcam_accessed = true; @@ -340,15 +354,26 @@ {/if} {#if include_audio === true && stream_state === "open"}
+