Skip to content

Screen share enhancements: audio profiles, preview panel, and volume controls#3762

Draft
alisonjenkins wants to merge 9 commits intoelement-hq:livekitfrom
alisonjenkins:alisonjenkins/screen-share-enhancements
Draft

Screen share enhancements: audio profiles, preview panel, and volume controls#3762
alisonjenkins wants to merge 9 commits intoelement-hq:livekitfrom
alisonjenkins:alisonjenkins/screen-share-enhancements

Conversation

@alisonjenkins
Copy link

@alisonjenkins alisonjenkins commented Feb 28, 2026

Summary

  • Add configurable screen share audio profile setting (Music, Music Stereo, Music HQ, Music HQ Stereo) with a dedicated screen share settings tab
  • Add opt-in screen share viewing state to CallViewModel so remote screen shares are not forced into the spotlight
  • Add screen share preview panel component with a view button in the toolbar for browsing active screen shares
  • Add stop viewing button to spotlight for remote screen shares to return to the previous layout
  • Add per-screen-share volume and mute controls for individual audio management

Test plan

  • Verify screen share audio profile can be changed in settings and takes effect when sharing
  • Confirm screen share settings tab appears in the settings modal
  • Test screen share preview panel opens/closes via toolbar button and shows active screen shares
  • Verify clicking a screen share in the preview panel opens it in spotlight
  • Test stop viewing button returns from spotlight to previous layout
  • Verify per-screen-share volume slider and mute toggle work correctly

🤖 Generated with Claude Code

alisonjenkins and others added 9 commits February 28, 2026 07:48
Introduce a ScreenShareAudioProfile enum with four quality levels
(Music, MusicStereo, MusicHighQuality, MusicHighQualityStereo) and a
persisted setting that defaults to MusicHighQuality. Stereo profiles
implicitly enable stereo capture instead of requiring a separate toggle.
Read the user's screen share audio profile setting and pass it as
publish options to setScreenShareEnabled. Disable audio processing
(AGC, echo cancellation, noise suppression) for screen share audio,
and derive stereo capture from the selected profile rather than a
separate setting.
Add a dedicated Screen Share tab with radio buttons for selecting the
audio quality profile (Music 48kbps, Music Stereo 64kbps, Music High
Quality 96kbps, Music HQ Stereo 96kbps). Add corresponding translation
keys.
Screen shares no longer appear in spotlight automatically. A new
BehaviorSubject tracks which screen share IDs the user has accepted.
Local screen shares bypass opt-in and always appear in spotlight.

Modifies spotlight$, pip$, and hasRemoteScreenShares$ to filter
through accepted shares. Stale accepted IDs are cleaned up when
screen shares end. Exposes screenShares$, acceptedScreenShareIds$,
acceptScreenShare(), and dismissScreenShare() on the CallViewModel
interface.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New panel shows a grid of remote screen share tiles with live video
previews (no audio) and sharer display names. Clicking a tile toggles
opt-in. Accepted shares show a "Viewing" badge. Adds translation keys
for the preview panel UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds ScreenShareViewButton to the toolbar when remote screen shares
are active. The button opens a modal containing the preview panel
where users can opt in to individual screen shares. The button only
renders when there are remote screen shares available.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a dismiss button on remote screen share items in the spotlight
tile. Clicking it calls dismissScreenShare to remove the share from
the accepted set, returning the user to the grid or next accepted
share.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Screen share audio can now be independently controlled via a menu button
on the spotlight tile. Uses track-level volume (ScreenShareAudio) rather
than participant-level volume to avoid conflicts with per-user controls.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@toger5
Copy link
Contributor

toger5 commented Mar 13, 2026

There are some new components in this PR.
It would be nice to have screenshots in the PR description to see what it does/looks like.

@toger5
Copy link
Contributor

toger5 commented Mar 13, 2026

dedicated screen share settings tab

Is this tab always shown. I think adding another required step (next to the browser permissions ui) would be undesired.

@alisonjenkins
Copy link
Author

There are some new components in this PR.
It would be nice to have screenshots in the PR description to see what it does/looks like.

I will be adding these soon when I get time to work on my PRs (hoping it will be tomorrow).

@alisonjenkins
Copy link
Author

dedicated screen share settings tab

Is this tab always shown. I think adding another required step (next to the browser permissions ui) would be undesired.

These are just quality settings in the settings section. They control the quality of the RTC screen share. These settings are needed as afaik there is no way to expose them as part of the browser screen share settings. We could potentially expose them next to the screen share button somehow though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants