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
videoClient
with a lowercase "v" andVideo
with an uppercase "V".
Video
refers to theVideo
object provided by the SDK.
videoClient
represents an instance of aVideo
, created with thenew
keyword:
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
null
if 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
false
if 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