Skip to main content
useScreenShare covers the sending side of screen sharing: starting and stopping your own share, and observing all active shares in the call. Rendering a share reuses the same DailyVideo component, with the screenVideo track type.

Start and stop sharing

useScreenShare returns startScreenShare, stopScreenShare, and isSharingScreen for the local participant:
startScreenShare triggers the browser’s native screen-picker dialog. The user can cancel it, so do not assume a share started just because you called the function. React to the actual outcome with the callbacks:

Render active screen shares

The screens array describes every active share in the call, local and remote. Each entry has a session_id, a screen_id, local, and the video and audio track states. Render each one with DailyVideo using type="screenVideo":
You can also find who is sharing with useParticipantIds and the built-in filter: 'screen'. Use screens from useScreenShare when you need the screen track state; use the participant filter when you just need the IDs.

Screen share audio

A share can include audio (for example, sharing a browser tab with sound). Remote screen audio is played automatically by DailyAudio. To also play the local participant’s own screen audio, set playLocalScreenAudio:

A complete screen-share area

Next steps

Rendering media

More on DailyVideo and track types.

Recording

Capture the call, screen shares included.