feat(macos): per-app audio selection for screen sharing
Let users choose what the SCREEN_AUDIO stream captures before sharing: share everything, only selected apps, or all except selected apps, plus a first-class "Exclude screen reader (VoiceOver) audio" toggle. ScreenCaptureKit filters audio per application, so ScreenAudioCapture now takes a ScreenAudioSelection and builds the matching SCContentFilter (including:/excludingApplications:). New ScreenSharePickerSheet lists running apps from SCShareableContent. iOS left untouched -- ReplayKit only delivers the mixed system stream, so per-app filtering is impossible there.
This commit is contained in:
12
PROGRESS.md
12
PROGRESS.md
@@ -61,6 +61,18 @@ up instantly. Newest status at the top.
|
||||
aborts at shutdown (`mutex lock failed`), a **pre-existing** teardown crash unrelated to this
|
||||
change (no C++ was modified).
|
||||
|
||||
- **Done (2026-06-21):** **macOS per-app screen-audio selection.** Before sharing, a new
|
||||
`ScreenSharePickerSheet` lets the user choose scope — share Everything / Only selected apps /
|
||||
All except selected apps — plus a first-class **"Exclude screen reader (VoiceOver) audio"**
|
||||
toggle. `ScreenAudioCapture` now takes a `ScreenAudioSelection` and builds the matching
|
||||
`SCContentFilter` (`including:` / `excludingApplications:`); app list comes from
|
||||
`SCShareableContent`. macOS `xcodebuild` Debug BUILD SUCCEEDED. iOS deliberately untouched —
|
||||
ReplayKit only delivers the mixed system stream, so per-app/VoiceOver filtering is impossible
|
||||
there (documented in voice.md §9). **Still to verify on-device:** which process actually
|
||||
carries VoiceOver speech (VoiceOver app vs. `com.apple.speech.speechsynthesisd`) — the exclude
|
||||
set covers both candidates in `ScreenAudioCapture.screenReaderBundleIDs`; confirm exclusion
|
||||
actually silences it in a real share.
|
||||
|
||||
- **Done (2026-06-20):** **macOS client UI overhaul** — mirrors the Windows client's UI
|
||||
overhaul (commit 97fa659 + 540ec13), adapted to Mac-native conventions. Also fixed and
|
||||
verified the previously-uncompiled Swift changes from the external PCM feed/tap commit
|
||||
|
||||
Reference in New Issue
Block a user