# Support Zoom web sdk screen share under chrome 72

**URL:** <https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650>\
**Category:** Web\
**Created:** [June 17, 2019, 6:33am UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650 "2019-06-17T06:33:47Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![liubiantao](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liubiantao/32/1093_2.png) [@liubiantao](https://devforum.zoom.us/u/liubiantao)\
**Post date:** [June 17, 2019, 6:33am UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/1 "2019-06-17T06:33:47Z")

</div>

Since zoom\_electron does not support the new version of electron, we decided to use zoom web sdk instead.

Our plan is:

1. Test the stability of zoom web sdk by abtest on electron 2.x
2. Switch to zoom web sdk, abandon zoom\_electron
3. Upgrade electron to 4 or 5

However, the screen sharing of zoom web sdk only supports chrome 72 or higher, and electron 2.x is chrome@61.

Tencent has a solution: [https://cloud.tencent.com/document/product/647/32251](https://cloud.tencent.com/document/product/647/32251)  
They wrote a [chrome plugin](https://chrome.google.com/webstore/detail/screen-share/igbnnaaplbclljbpbhaplekapmfegkmg) and captured the screen via `chrome.desktopCapture`, but this method requires zoom web sdk to do some change.

So I wonder if you guys can support this feature?

---

<div class="post-metadata">

**Author:** ![michael\_p.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_p.zoom/32/18105_2.png) [@michael\_p.zoom](https://devforum.zoom.us/u/michael_p.zoom)\
**Post date:** [June 17, 2019, 5:32pm UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/2 "2019-06-17T17:32:27Z")

</div>

Hi @liubiantao,

Thanks for reaching out. Looking at this plugin details, it looks like it uses WebRTC. Unfortunately the webSDK doesn’t support WebRTC.

Thanks

---

<div class="post-metadata">

**Author:** ![liubiantao](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liubiantao/32/1093_2.png) [@liubiantao](https://devforum.zoom.us/u/liubiantao)\
**Post date:** [June 18, 2019, 8:31am UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/3 "2019-06-18T08:31:20Z")

</div>

The core question is how to get MediaStream. It is ok to use WebRTC or your own protocol after getting MediaStream.

Don’t look at the plugin details, let’s analyze the source code.

Chrome@72 and above, added a new `getDisplayMedia` API.  
Compare the browser compatibility, you can find that Zoom web sdk also uses this API

- [MediaDevices: getDisplayMedia() method - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#Browser_compatibility)

- [GitHub - zoom/meetingsdk-web-sample: Zoom Meeting SDK web sample](https://github.com/zoom/sample-app-web#video-computer-audio-and-sharing-supported-browser)

More direct evidence is to search your source code:

 ![](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/2/217cf13c7f80ed32dfaee49a2611dcb451de22b5.png)

You can use this API to get MediaStream, see the example:  
https://codepen.io/liubiantao/embed/preview/agZGvq?default-tabs=js%2Cresult&height=300&host=https%3A%2F%2Fcodepen.io&slug-hash=agZGvq

```js
document.querySelector('video').srcObject = await navigator.mediaDevices.getDisplayMedia({
  video: true,
  audio: true
});

```

So zoom web sdk does not support screen sharing below Chrome@72, because there is no `getDisplayMedia`.

Then look at the source code of the plugin:

> <https://gist.github.com/liubiantao/66e06d7203e7ede99b4830e06f911925#file-background-script-js-L20>

The key is `chrome.desktopCapture` API.

```js
chrome.desktopCapture.chooseDesktopMedia(screenOptions, port.sender.tab, onAccessApproved);

```

According to the `onAccessApproved` callback document:

> streamId: An opaque string that can be passed to getUserMedia() API to generate media stream that corresponds to the source selected by the user. If user didn’t select any source (i.e. canceled the prompt) then the callback is called with an empty streamId. The created streamId can be used only once and expires after a few seconds when it is not used.  
> [chrome.desktopCapture &nbsp;|&nbsp; API &nbsp;|&nbsp; Chrome for Developers](https://developers.chrome.com/extensions/desktopCapture#type-DesktopCaptureSourceType)

In other words, `streamId + getUserMedia` is similar to `getDisplayMedia` .

Here I think your engineers should know how to do it.

In addition, in Electron, you can also get the `streamId` using `desktopCapturer.getSources`:

> **[desktopCapturer | Electron](https://www.electronjs.org/docs/latest/api/desktop-capturer)**
>
> Access information about media sources that can be used to capture audio and video from the desktop using the navigator.mediaDevices.getUserMedia API.

So could Zoom web sdk provide an interface that allows users to pass `streamId` or `MediaStream` to zoom to be compatible with Chrome@72 or below?

---

<div class="post-metadata">

**Author:** ![ojus.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ojus.zoom/32/734_2.png) [@ojus.zoom](https://devforum.zoom.us/u/ojus.zoom)\
**Post date:** [June 20, 2019, 12:55am UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/4 "2019-06-20T00:55:31Z")

</div>

@liubiantao,

We will get back to you with an update on this shortly.

Thanks

---

<div class="post-metadata">

**Author:** ![liubiantao](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liubiantao/32/1093_2.png) [@liubiantao](https://devforum.zoom.us/u/liubiantao)\
**Post date:** [June 20, 2019, 5:41am UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/5 "2019-06-20T05:41:20Z")

</div>

I found Zoom Web Client works well in Chrome@61.  
 ![WX20190619-202924%402x](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/2/2d02f64d3d1a7b2ae05724a34e40c83182443ae7.png)

> Prerequisites: Google Chrome 53.0.2785 or higher  
> [https://support.zoom.us/hc/en-us/articles/214629443-Zoom-Web-Client](https://support.zoom.us/hc/en-us/articles/214629443-Zoom-Web-Client)

Then I researched Zoom Scheduler extension  
[https://chrome.google.com/webstore/detail/zoom-scheduler/kgjfgplpablkjnlkjmjdecgdpfankdl](https://chrome.google.com/webstore/detail/zoom-scheduler/kgjfgplpablkjnlkjmjdecgdpfankdl)

 ![zoomextension](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/c/c2e98471410b6987ce3ed445d4571e8db4267ca0.png)

This is exactly what I said yesterday.

Now I know how they work:

1. zoom: check chrome and getDisplayMedia  

2. zoom: CHECK\_CHROME\_SHARING\_EXTENSION  

3. zoom: send ‘WCL.getSourceID’ to extension  

4. extension: get sourceid  

5. extension: send ‘WCL.sharing’ + sourceid to zoom  

Next, I need to write an extension to mock step 2-5.

BUT, I would be grateful if you could provide an official interface, thx 😄

---

<div class="post-metadata">

**Author:** ![michael\_p.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_p.zoom/32/18105_2.png) [@michael\_p.zoom](https://devforum.zoom.us/u/michael_p.zoom)\
**Post date:** [June 20, 2019, 5:12pm UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/6 "2019-06-20T17:12:03Z")

</div>

Hi @liubiantao,

We’ll talk with our product & engineering team to see if we can provide an interface for it.

Thanks

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 6:29pm UTC](https://devforum.zoom.us/t/support-zoom-web-sdk-screen-share-under-chrome-72/4650/7 "2020-08-21T18:29:46Z")

</div>

Closed on August 21, 2020, 6:29pm UTC


