import type { ScreenShareCaptureOptions } from 'livekit-client' /** * Опции захвата демонстрации экрана: `audio: true` — звук * вкладки/экрана там, где браузер его отдаёт (Chrome/Edge — вкладка почти * всегда, целый экран — только Windows); `selfBrowserSurface: 'exclude'` * — не предлагать в списке * источников собственную вкладку (зеркальный туннель самой конференции); * `surfaceSwitching: 'include'` — разрешить переключать источник прямо во * время демонстрации, не останавливая её; `systemAudio: 'include'` — не * запрещать захват системного звука при выборе «весь экран». * * Вынесено в модульную константу — `useTrackToggle` держит * `JSON.stringify(captureOptions)` в зависимостях внутреннего `useMemo`, * инлайновый литерал был бы безвреден, но константа явнее фиксирует * неизменность опций. * * Живёт в `lib/`, а не рядом с тулбаром, потому что кнопок демонстрации теперь * ДВЕ: в основном тулбаре (`RoomToolbar`) и в мини-окне (`RoomStage`, * `PipScreenShareToggle`). Опции у них обязаны совпадать: обе кнопки управляют * одной и той же публикацией, и разойдись они хотя бы в `audio`, демонстрация * получалась бы разной в зависимости от того, откуда её запустили. */ export const SCREEN_SHARE_CAPTURE_OPTIONS: ScreenShareCaptureOptions = { audio: true, selfBrowserSurface: 'exclude', surfaceSwitching: 'include', systemAudio: 'include', }