Processing state of the audio buffer:
"stopped"
: The SDK stops processing the audio buffer. Reasons may include:"playing"
: The SDK is processing the audio buffer."paused"
: The SDK pauses processing the audio buffer.You can get the state with BufferSourceAudioTrack.on("source-state-change").
The visibility of the <video>
tag.
Get the visibility of the <video>
tag through the following methods and events:
This object contains the following parameters:
visible
: Boolean, whether the <video>
tag is visible or not.reason
: This parameter is only valid when visible
is false
, which indicates the reason:"SIZE"
: The size of <video>
is too small to see."STYLE"
: The CSS styles of <video>
or its ancestor element cause <video>
to be invisible."POSITION"
: The <video>
tag or its ancestor element are positioned outside the viewport."COVERED"
: The <video>
tag is covered by other elements.The user role in a live broadcast channel.
"host"
: Host. A host can both publish tracks and subscribe to tracks."audience"
: Audience. An audience can only subscribe to tracks.Connection state between the SDK and Agora's edge server.
You can get the connection state through connectionState.
The connection between the SDK and the edge server has the following states:
"DISCONNECTED"
: The SDK is disconnected from the server."CONNECTING"
: The SDK is connecting to the server. The SDK enters this state when you call join."CONNECTED"
: The SDK is connected to the server and joins a channel. The user can now publish streams or subscribe to streams in the channel."RECONNECTING"
: The SDK is reconnecting to the server. If the connection is lost because the network is down or switched, the SDK enters this state."DISCONNECTING"
: The SDK is disconnecting from the server. The SDK enters this state when you call leave.The state of the media input device.
"ACTIVE"
: The device is plugged in."INACTIVE"
: The device is unplugged.The encryption mode, which is used in the setEncryptionConfig method call.
"aes-128-xts"
: 128-bit AES encryption, XTS mode."aes-256-xts"
: 256-bit AES encryption, XTS mode."aes-128-gcm"
: 128-bit AES encryption, GCM mode."aes-256-gcm"
: 256-bit AES encryption, GCM mode."aes-128-gcm2"
: 128-bit AES encryption, GCM mode, with salt."aes-256-gcm2"
: 256-bit AES encryption, GCM mode, with salt."aes-128-ecb"
: 128-bit AES encryption, ECB mode."sm4-128-ecb"
: 128-bit SM4 encryption, ECB mode."none"
: No encryption.The video transmission optimization mode:
"detail"
: Prioritizes video quality."motion"
: Since v4.21.0, the browser prioritizes video smoothness.The codec that the Web browser uses for encoding.
"vp8"
: Use VP8 for encoding."h264"
: Use H.264 for encoding."vp9"
: (Beta) Use VP9 for encoding."av1"
: Use AV1 for encoding.Safari 12.1 or earlier does not support the VP8 codec.
The channel profile.
The SDK differentiates channel profiles and applies different optimization algorithms accordingly. For example, it prioritizes smoothness and low latency for a video call, and prioritizes video quality for a video broadcast.
The SDK supports the following channel profiles:
"live"
: Sets the channel profile as live broadcast. You need to go on to call setClientRole to set the client as either a host or an audience. A host can send and receive audio or video, while an audience can only receive audio or video."rtc"
: Sets the channel profile as communication. It is used for a one-on-one call or a group call where all users in the channel can converse freely.Configurations for the audio track of screen sharing. Set these configurations when calling AgoraRTC.createScreenVideoTrack to enable audio during screen sharing.
The preset video encoder configurations for screen sharing.
You can pass the preset video encoder configurations when calling AgoraRTC.createScreenVideoTrack.
The following table lists all the preset video profiles for screen sharing.
Video Profile | Resolution (Width×Height) | Frame Rate (fps) |
---|---|---|
"480p" | 640 × 480 | 5 |
"480p_1" | 640 × 480 | 5 |
"480p_2" | 640 × 480 | 30 |
"480p_3" | 640 × 480 | 15 |
"720p" | 1280 × 720 | 5 |
"720p_1" | 1280 × 720 | 5 |
"720p_2" | 1280 × 720 | 30 |
"720p_3" | 1280 × 720 | 15 |
"720p_auto" ① | 1280 × 720 | 30 |
"1080p" | 1920 × 1080 | 5 |
"1080p_1" | 1920 × 1080 | 5 |
"1080p_2" | 1920 × 1080 | 30 |
"1080p_3" | 1920 × 1080 | 15 |
①
"720p_auto"
is only recommended to be set on Safari to ensure dynamic adjustment of the encoding resolution. For details, see the release notes.
The type of the source for screen sharing.
"screen"
: Sharing the whole screen."application"
: Sharing all windows of an app."window"
: Sharing a window of an app.The user ID to identify a user in the channel.
Each user in the same channel should have a unique user ID with the same data type (number or string).
To ensure a better end-user experience, Agora recommends using a number as the user ID. See join for details.
The preset video encoder configurations.
You can pass the preset video encoder configurations when calling AgoraRTC.createCameraVideoTrack or AgoraRTC.createScreenVideoTrack.
The following table lists all the preset video profiles. The SDK uses "480p_1"
by default.
Video Profile | Resolution (Width×Height) | Frame Rate (fps) | Chrome | Firefox | Safari |
---|---|---|---|---|---|
120p | 160 × 120 | 15 | ✓ | ||
120p_1 | 160 × 120 | 15 | ✓ | ||
120p_3 | 120 × 120 | 15 | ✓ | ||
180p | 320 × 180 | 15 | ✓ | ||
180p_1 | 320 × 180 | 15 | ✓ | ||
180p_3 | 180 × 180 | 15 | ✓ | ||
180p_4 | 240 × 180 | 15 | ✓ | ||
240p | 320 × 240 | 15 | ✓ | ||
240p_1 | 320 × 240 | 15 | ✓ | ||
240p_3 | 240 × 240 | 15 | ✓ | ||
240p_4 | 424 × 240 | 15 | ✓ | ||
360p | 640 × 360 | 15 | ✓ | ||
360p_1 | 640 × 360 | 15 | ✓ | ||
360p_3 | 360 × 360 | 15 | ✓ | ||
360p_4 | 640 × 360 | 30 | ✓ | ||
360p_6 | 360 × 360 | 30 | ✓ | ||
360p_7 | 480 × 360 | 15 | ✓ | ||
360p_8 | 480 × 360 | 30 | ✓ | ||
360p_9 | 640 × 360 | 15 | ✓ | ||
360p_10 | 640 × 360 | 24 | ✓ | ||
360p_11 | 640 × 360 | 24 | ✓ | ||
480p | 640 × 480 | 15 | ✓ | ✓ | ✓ |
480p_1 | 640 × 480 | 15 | ✓ | ✓ | ✓ |
480p_2 | 640 × 480 | 30 | ✓ | ✓ | ✓ |
480p_3 | 480 × 480 | 15 | ✓ | ✓ | ✓ |
480p_4 | 640 × 480 | 30 | ✓ | ✓ | ✓ |
480p_6 | 480 × 480 | 30 | ✓ | ✓ | ✓ |
480p_8 | 848 × 480 | 15 | ✓ | ✓ | ✓ |
480p_9 | 848 × 480 | 30 | ✓ | ✓ | ✓ |
480p_10 | 640 × 480 | 10 | ✓ | ✓ | ✓ |
720p | 1280 × 720 | 15 | ✓ | ✓ | ✓ |
720p_1 | 1280 × 720 | 15 | ✓ | ✓ | ✓ |
720p_2 | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
720p_3 | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
720p_auto ① | 1280 × 720 | 30 | ✓ | ✓ | ✓ |
720p_5 | 960 × 720 | 15 | ✓ | ✓ | ✓ |
720p_6 | 960 × 720 | 30 | ✓ | ✓ | ✓ |
1080p | 1920 × 1080 | 15 | ✓ | ✓ | |
1080p_1 | 1920 × 1080 | 15 | ✓ | ✓ | |
1080p_2 | 1920 × 1080 | 30 | ✓ | ✓ | |
1080p_3 | 1920 × 1080 | 30 | ✓ | ✓ | |
1080p_5 | 1920 × 1080 | 60 | ✓ | ✓ |
①
"720p_auto"
is only recommended to be set on Safari to ensure dynamic adjustment of the encoding resolution. For details, see the release notes.
Triggers when a media track is updated.
The media stream track. See MediaStreamTrack.
The preset audio encoder configurations.
You can pass the preset video encoder configurations when calling the following methods:
The following table lists all the preset audio profiles. The SDK uses
"music_standard"
by default."speech_low_quality"
"speech_standard"
"music_standard"
"standard_stereo"
"high_quality"
"high_quality_stereo"