# Browser share options

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

Learn how to [share tab and system audio in Chrome and Edge](#share-tab-and-system-audio-in-chrome-and-edge) and [limit screen sharing in Chrome](#limit-screen-sharing-options-in-chrome) to share tabs, windows, or screens.

## Share tab and system audio in Chrome and Edge

You can share tab audio and system audio in Chrome and Edge using WebAssembly audio with `SharedArrayBuffer` (SAB) enabled, or using WebRTC audio without SAB. To play tab audio or system audio in a session, initiate a screen share. If you select a **Tab**, select the **Also share tab audio** box. If you select **Window** or **Entire Screen**, select the **Also share system audio** box. These features work regardless of whether you enable multiple share screen or not.

![Zoom Video SDK for Web Share system audio](/img/vsdk-web-share-chrome-tab-audio.png)

To enable share tab and system audio, either:

-   Enable [`SharedArrayBuffer`](/docs/video-sdk/web/sharedarraybuffer/) for WebAssembly audio, or
-   Set `audio_webrtc_mode` to `1` in the [JWT payload](/docs/video-sdk/auth/#payload) to use WebRTC audio when starting or joining a session.

Developers can also control this via the `systemAudio` option in the `controls` object of `ZoomVideo.ScreenShareOption`.

```javascript
stream.startShareScreen(VIDEO_OR_CANVAS_ELEMENT, {
    controls: {
        systemAudio: "include", // or "exclude"
    },
});
```

Use [`isSupportMicrophoneAndShareAudioSimultaneously`](https://marketplacefront.zoom.us/sdk/custom/ZoomVideo.Stream.html#isSupportMicrophoneAndShareAudioSimultaneously) to determine if you can support sharing system audio and microphone audio at the same time.

### Limitations for Chrome browsers prior to version 111

Chrome browsers prior to version 111 can either share audio in a Chrome tab or audio from a microphone, but not both.

As a workaround, toggle the audio source between the microphone and the Chrome tab while still sharing the screen content by calling `stream.muteShareAudio()` and `stream.unmuteShareAudio()` respectively.

After you stop sharing audio in the tab, the audio source will switch back to the microphone. You can use the `share-audio-change` event listener to keep track of which audio source is enabled.

```javascript
client.on("share-audio-change", (payload) => {
    if (payload.state === "on") {
        console.log("Switched audio source to Share system audio");
    } else if (payload.state === "off") {
        console.log("Switched audio source to your microphone");
    }
});
```

## Limit screen sharing options in Chrome

If the user's Chrome browser supports it, you can limit the screen sharing options to tabs, windows, or screens. The [Video SDK `displaySurface` option](https://marketplacefront.zoom.us/sdk/custom/web/interfaces/ZoomVideo.ScreenShareOption.html#displaySurface) takes the same options available in the [Chrome `displaySurface` options](https://developer.chrome.com/docs/web-platform/screen-sharing-controls/#displaySurface). The values include `browser` for tabs, `window` for windows, and `monitor` for screens. See the mdn web docs for [MediaTrackConstraints: displaySurface property](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/displaySurface) for details.

For example, to limit the screen share options to tabs, pass `browser` in the `displaySurface` option.

```javascript
stream.startShareScreen(VIDEO_OR_CANVAS_ELEMENT, {
    controls: {
        // ...
    },
    displaySurface: "browser",
});
```

You can also include or exclude other screen sharing control options using the [Video SDK `controls` option](https://marketplacefront.zoom.us/sdk/custom/web/interfaces/ZoomVideo.ScreenShareOption.html#controls). See Chrome for Developers [Privacy-preserving screen sharing controls](https://developer.chrome.com/docs/web-platform/screen-sharing-controls) for details.
