*** id: 17fd5f76-0afe-4ffe-979e-2fd3d6f71b8c title: Video sidebar-title: Overview position: 0 slug: /js/reference/video max-toc-depth: 3 ---------------- The Video namespace contains the classes and functions that you need to create a video conferencing application. The [RoomSession](/docs/browser-sdk/v3/js/reference/video/room-session) class is the main interface for managing video room sessions. ## Classes The main interface for managing video room sessions Control devices within a room session Manage media playback in a room session Handle recording functionality Manage screen sharing in a room session *Use [RoomSessionDevice](/docs/browser-sdk/v3/js/reference/video/room-session-device) instead.* *Use [RoomSessionScreenShare](/docs/browser-sdk/v3/js/reference/video/room-session-screen-share) instead.* ## Functions ### ~~createRoomObject~~ * `Const` **createRoomObject**(`roomOptions`): `Promise` Use [RoomSession](/docs/browser-sdk/v3/js/reference/video/room-session) instead. Using Video.createRoomObject() you can create a `RoomObject` to join a room. #### Parameters | Name | Type | Description | | :-------------------------- | :------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------- | | `applyLocalVideoOverlay?` | `boolean` | Whether to apply the local-overlay on top of your video. Default: `true`. | | `audio?` | `boolean` \| `MediaTrackConstraints` | Audio constraints to use when joining the room. Default: `true`. | | `autoJoin?` | `boolean` | Whether to automatically join the room session. | | `iceServers?` | `RTCIceServer[]` | List of ICE servers. | | `logLevel?` | `"trace"` \| `"debug"` \| `"info"` \| `"warn"` \| `"error"` \| `"silent"` | Logging level. | | `project` | `string` | SignalWire project id, e.g. `a10d8a9f-2166-4e82-56ff-118bc3a4840f`. | | `rootElementId?` | `string` | Id of the HTML element in which to display the video stream. | | `speakerId?` | `string` | Id of the speaker device to use for audio output. If undefined, picks a default speaker. | | `stopCameraWhileMuted?` | `boolean` | Whether to stop the camera when the member is muted. Default: `true`. | | `stopMicrophoneWhileMuted?` | `boolean` | Whether to stop the microphone when the member is muted. Default: `true`. | | `token` | `string` | SignalWire project token, e.g. `PT9e5660c101cd140a1c93a0197640a369cf5f16975a0079c9`. | | `video?` | `boolean` \| `MediaTrackConstraints` | Video constraints to use when joining the room. Default: `true`. | #### Returns `Promise` #### Example With an HTMLDivElement with id="root" in the DOM. ```js //
try { const roomObj = await Video.createRoomObject({ token: "", rootElementId: "root" }); roomObj.join(); } catch (error) { console.error("Error", error); } ``` *** ### ~~joinRoom~~ * `Const` **joinRoom**(`roomOptions`): `Promise` Use [RoomSession](/docs/browser-sdk/v3/js/reference/video/room-session) instead. Using Video.joinRoom() you can automatically join a room. #### Parameters | Name | Type | Description | | :-------------------------- | :------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------- | | `applyLocalVideoOverlay?` | `boolean` | Whether to apply the local-overlay on top of your video. Default: `true`. | | `audio?` | `boolean` \| `MediaTrackConstraints` | Audio constraints to use when joining the room. Default: `true`. | | `autoJoin?` | `boolean` | Whether to automatically join the room session. | | `iceServers?` | `RTCIceServer[]` | List of ICE servers. | | `logLevel?` | `"trace"` \| `"debug"` \| `"info"` \| `"warn"` \| `"error"` \| `"silent"` | Logging level. | | `project` | `string` | SignalWire project id, e.g. `a10d8a9f-2166-4e82-56ff-118bc3a4840f`. | | `rootElementId?` | `string` | Id of the HTML element in which to display the video stream. | | `speakerId?` | `string` | Id of the speaker device to use for audio output. If undefined, picks a default speaker. | | `stopCameraWhileMuted?` | `boolean` | Whether to stop the camera when the member is muted. Default: `true`. | | `stopMicrophoneWhileMuted?` | `boolean` | Whether to stop the microphone when the member is muted. Default: `true`. | | `token` | `string` | SignalWire project token, e.g. `PT9e5660c101cd140a1c93a0197640a369cf5f16975a0079c9`. | | `video?` | `boolean` \| `MediaTrackConstraints` | Video constraints to use when joining the room. Default: `true`. | #### Returns `Promise` #### Example With an HTMLDivElement with id="root" in the DOM. ```js //
try { const roomObj = await Video.joinRoom({ token: "", rootElementId: "root", }); // You have joined the room.. } catch (error) { console.error("Error", error); } ```