On / Off Camera - JavaScript
This feature enables hosts to turn their cameras on or off to share their video stream with other hosts and audience members during the meeting. Only hosts (in SEND_AND_RECV mode) can broadcast their camera feed, while audience members (in RECV_ONLY mode) can view it in real time.
enableWebcam()
-
By using the
enableWebcam()function of theliveStreamobject, the host can publish their video to to other hosts and audience members. -
You can also pass a customised video track in
enableWebcam()by using Custom Video Track. -
The video stream of a participant can be accessed from the
webcamStreamproperty of theParticipantobject.
disableWebcam()
- By using the
disableWebcam()function of theliveStreamobject, the host can stop publishing their video to to other hosts and audience members.
Example
let liveStream;
// Initialize liveStream
liveStream = VideoSDK.initMeeting({
// ...
});
const enableWebcamBtn = document.getElementById("enableWebcamBtn");
enableWebcamBtn.addEventListener("click", () => {
// Enable Webcam in liveStream
liveStream?.enableWebcam();
});
const disableWebcamBtn = document.getElementById("disableWebcamBtn");
disableWebcamBtn.addEventListener("click", () => {
// Disable Webcam in liveStream
liveStream?.disableWebcam();
});
Events associated with enableWebcam
-
Every Participant—including all the hosts and audience members will receive a callback on
stream-enabledevent of theparticipantobject with theStreamobject. -
Every Participant—including all the hosts and audience members will receive a callback on
media-status-changedevent of theparticipantobject with the type of media and its status.
Events associated with disableWebcam
-
Every Participant—including all the hosts and audience members will receive a callback on
stream-disabledevent of theparticipantobject with theStreamobject. -
Every Participant—including all the hosts and audience members will receive a callback on
media-status-changedevent of theparticipantobject with the type of media and its status.
const participants = liveStream.participants;
const participant = participants.get("<participant-id>");
participant.on("stream-enabled", (stream) => {
if (stream.kind === "video") {
//particiapnt turned on video
//Render Participant video logic here
}
});
participant.on("stream-disabled", (stream) => {
if (stream.kind === "video") {
//particiapnt turned off video
//remove Participant video logic here
}
});
participant.on("media-status-changed", (data) => {
const { kind, newStatus } = data;
if (kind === "video") {
//particiapnt media status changed
}
});
Video Permissions
- By default, VideoSDK will request video permission when the participants attempts to turn on the camera. Once the permission is granted the camera gets turned on. If the permission is denied, VideoSDK will send an error message in the
onErrorevent callback of theliveStreamobject.
Troubleshoot Video Permissions
- If a participant denies the camera permission, they can manually grant it by following below shown steps.
To use the audio and video communications in the web browser, your site must be SSL enabled, i.e. it must be secured and running on https.
API Reference
The API references for all the methods and events utilized in this guide are provided below.
Got a Question? Ask us on discord

