Share Your Screen - Javascript
Whenever any participant wants to share either the complete screen, a specific window or, a browser tab, they can simply do it with VideoSDK Meeting.
This guide will provide an overview of how to use enable and disable Screen Share in a meeting.
- Enable Screen Share - By using
enableScreenShare()
function, a participant can publish screen stream to other participants. - Disable Screen Share - By using
disableScreenShare()
function, a participant can stop publishing screen stream to other participants.
Enable, Disable Screen Share​
const onPress = () => {
// Enabling ScreenShare
meeting?.enableScreenShare();
// Disabling ScreenShare
meeting?.disableScreenShare();
};
Events​
Events associated with enableScreenShare()
:
-
stream-enabled
event will be emitted withstream
object from the event callback, inside that participant object. -
presenter-changed
will also receive a callback with thepresenterId
.
Events associated with disableScreenShare()
:
-
stream-disabled
event will be emitted withstream
object from the event callback, inside that participant object. -
presenter-changed
will also receive a callback withnull
value.
participant.on("stream-enabled", (stream) => {
if (stream.kind === "share") {
//particiapnt turned on screen share
//Render screenshare logic here
}
});
participant.on("stream-disabled", (stream) => {
if (stream.kind === "share") {
//particiapnt turned off screenshare
//remove screenshare logic here
}
});
meeting.on("presenter-changed", (presenterId) => {
if (presenterId) {
//someone start presenting
} else {
//someone stopped presenting
}
});
Screen Share with Audio​
To do screen share with audio, select the Share tab audio option when sharing the chrome tab as shown below.
After clicking Share
button, you will receive a selected tab audio stream in the participant stream-enabled
callback with kind as shareAudio
.
participant.on("stream-enabled", (stream) => {
if (stream.kind == "shareAudio") {
const audioElem = createShareAudioElement(participant.id, stream);
//add audioElem to your container
container.appendChild(audioElem);
}
});
// creating audio element
function createShareAudioElement(pId, stream) {
if (pId == meeting.localParticipant.id) return;
let audioElement = document.createElement("audio");
audioElement.setAttribute("autoPlay", false);
audioElement.setAttribute("playsInline", "false");
audioElement.setAttribute("controls", "false");
audioElement.setAttribute("id", `a-share-${pId}`);
audioElement.style.display = "none";
const mediaStream = new MediaStream();
mediaStream.addTrack(stream.track);
audioElement.srcObject = mediaStream;
audioElement
.play()
.catch((error) => console.error("audioElem.play() failed", error));
return audioElement;
}
Screen Share with Audio feature is only supported while sharing chrome tab on Google Chrome browser only.
Got a Question? Ask us on discord