Class: Video
The Video Class allows you to create WebRTC Video Experiences from websites and applications using Twilio Video WebRTC
Throughout this page, you will see
videoClientwith a lowercase "v" andVideowith an uppercase "V".
Videorefers to theVideoobject provided by the SDK.
videoClientrepresents an instance of aVideo, created with thenewkeyword:
Instantiate a Video Client
A new instance of Video should be constructed by using the new keyword and passing the Config payload as the first argument.
No signaling channel will be opened when instantiating a new Video Client. The signaling WebSocket will be opened when videoClient.connect() is called.
The maximum number of characters for the identity provided in the Access Token is 121. The identity may only contain alpha-numeric and underscore characters. Other characters, including spaces, or exceeding the maximum number of characters, will result in not being able to place or receive calls.
Initiate a Basic Video Client
const videoClient = new Video({
accountSid: "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
identity: "FIXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
});
To see all of the possible properties, see the Config interface section.
Hierarchy
SDKEvent<Video.EventNames>↳
Video
Accessors
client
• get client(): __module
Returns the underlaying Twilio SDK Client for advanced configuration and usage
console.info(videoClient.client.Logger.getLevel())
Returns
__module
isSupported
• get isSupported(): boolean
Returns if Video Calling is Supported in the current Browser / Context
console.info(videoClient.isSupported)
Returns
boolean
localTracks
• get localTracks(): LocalTrack[]
Returns the underlaying Twilio SDK LocalTracks for advanced configuration and usage
Returns empty Array if there is no current call
console.info(videoClient.localTracks[0].name)
Returns
LocalTrack[]
ready
• get ready(): boolean
Is the videoClient ready?
videoClient.ready ? console.info("Ready") ? console.info("Not Ready")
Returns
boolean
room
• get room(): null | Room
Returns the underlaying Twilio SDK Room for advanced configuration and usage
Returns
nullif there is no current call
console.info(videoClient.room?.isRecording)
Returns
null | Room
Methods
connect
▸ connect(Payload?): Promise<void>
Make WebRTC Video Call
videoClient.connect({
localMediaContainer: "LocalVideoMedia",
remoteMediaContainer: "RemoteVideoMedia"
});
Parameters
| Name | Type |
|---|---|
Payload | CreateRoomPayload |
Returns
Promise<void>
disconnect
▸ disconnect(): Room
Disconnect Current Call
videoClient.disconnect();
Returns
Room
flipCamera
▸ flipCamera(): Promise<void>
Flip Local Track Camera Device
await videoClient.flipCamera();
Returns
Promise<void>
getLocalAudioTrack
▸ getLocalAudioTrack(«destructured»): Promise<LocalAudioTrack>
Get Local Audio Track
const localAudio = async videoClient.getLocalAudioTrack();
Parameters
| Name | Type |
|---|---|
«destructured» | LocalAudioTrackOptions |
Returns
Promise<LocalAudioTrack>
Promise Containing Local Audio Track
getLocalTracks
▸ getLocalTracks(«destructured»): Promise<LocalTrack[]>
Get Local Audio Track
const localTracks = async videoClient.getLocalTracks();
Parameters
| Name | Type |
|---|---|
«destructured» | LocalTrackOptions |
Returns
Promise<LocalTrack[]>
Promise Containing Local Tracks
getLocalVideoTrack
▸ getLocalVideoTrack(«destructured»): Promise<LocalVideoTrack>
Get Local Video Track
const localVideo = async videoClient.getLocalVideoTrack();
Parameters
| Name | Type |
|---|---|
«destructured» | LocalVideoTrackOptions |
Returns
Promise<LocalVideoTrack>
Promise Containing Local Video Track
isFlipCameraSupported
▸ isFlipCameraSupported(): boolean
Checks if Flip Camera is Supported by the Device and Current Call.
Returns
falseif no "Local Video Track" is Published
const isSupported = videoClient.isFlipCameraSupported();
Returns
boolean
mute
▸ mute(): void
Mute Local Audio
videoClient.mute();
Returns
void
startScreenShare
▸ startScreenShare(): Promise<void | LocalVideoTrack>
Start Screen Share
await videoClient.startScreenShare();
Returns
Promise<void | LocalVideoTrack>
stopScreenShare
▸ stopScreenShare(): Promise<void>
Stop Screen Share
await videoClient.stopScreenShare();
Returns
Promise<void>
unmute
▸ unmute(): void
UnMute Local Audio
videoClient.unmute();
Returns
void
updateToken
▸ updateToken(newToken): void
Manually update Race Authentication Token
videoClient.on("video#tokenAboutToExpire", () => {
// Get New Token
videoClient.updateToken(newToken);
});
Parameters
| Name | Type |
|---|---|
newToken | string |
Returns
void
getDeviceInfo
▸ Static getDeviceInfo(): Promise<DeviceInfo>
Get Available Input and Output Devices
const devices = await Video.getDeviceInfo();
Returns
Promise<DeviceInfo>
Device Info for Available Devices