AgoraWebSDK NG API Docs

Index

Type aliases

AudioEncoderConfigurationPreset

AudioEncoderConfigurationPreset: keyof object

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.

Audio Profile Configurations
"speech_low_quality" Sample rate 16 kHz, mono, encoding rate 24 Kbps
"speech_standard" Sample rate 32 kHz, mono, encoding rate 24 Kbps
"music_standard" Sample rate 48 kHz, mono, encoding rate 40 Kbps
"standard_stereo" Sample rate 48 kHz, stereo, encoding rate 64 Kbps
"high_quality" Sample rate 48 kHz, mono, encoding rate 128 Kbps
"high_quality_stereo" Sample rate 48 kHz, stereo, encoding rate 192 Kbps

AudioSourceState

AudioSourceState: "stopped" | "playing" | "paused"

Processing state of the audio buffer:

  • "stopped": The SDK stops processing the audio buffer. Reasons may include:
    • The SDK finishes processing the audio buffer.
    • The user manually stops the processing of the audio buffer.
  • "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").

ClientRole

ClientRole: "audience" | "host"

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.

ConnectionState

ConnectionState: "DISCONNECTED" | "CONNECTING" | "RECONNECTING" | "CONNECTED" | "DISCONNECTING"

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.
    • This is the initial state until you call join.
    • The SDK also enters this state after you call leave, when the user is banned, or when the connection fails.
  • "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.

DeviceState

DeviceState: "ACTIVE" | "INACTIVE"

The state of the media input device.

  • "ACTIVE": The device is plugged in.
  • "INACTIVE": The device is unplugged.

EncryptionMode

EncryptionMode: "aes-128-xts" | "aes-256-xts" | "aes-128-ecb" | "sm4-128-ecb" | "none"

The encryption mode, which is used in the setEncryptionConfig method call.

  • "aes-128-xts": 128-bit AES encryption, XTS mode.
  • "aes-256-xts": 128-bit AES encryption, ECB mode.
  • "aes-128-ecb": 256-bit AES encryption, XTS mode.
  • "sm4-128-ecb": 128-bit SM4 encryption, ECB mode.
  • "none": No encryption.

SDK_CODEC

SDK_CODEC: "h264" | "vp8"

The codec that the Web browser uses for encoding.

  • "vp8": Use VP8 for encoding.
  • "h264": Use H.264 for encoding.

Safari 12.1 or earlier does not support the VP8 codec.

SDK_MODE

SDK_MODE: "live" | "rtc"

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.

ScreenEncoderConfigurationPreset

ScreenEncoderConfigurationPreset: keyof object

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 1
480p_1 640 × 480 1
480p_2 640 × 480 30
720p 1280 × 720 1
720p_1 1280 × 720 1
720p_2 1280 × 720 30
1080p 1920 × 1080 1
1080p_1 1920 × 1080 1
1080p_2 1920 × 1080 30

ScreenSourceType

ScreenSourceType: "screen" | "window" | "application"

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.

UID

UID: number | string

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).

VideoEncoderConfigurationPreset

VideoEncoderConfigurationPreset: keyof object

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) Bitrate (Kbps) Chrome Firefox Safari
120p 160 × 120 15 65
120p_1 160 × 120 15 65
120p_3 120 × 120 15 50
180p 320 × 180 15 140
180p_1 320 × 180 15 140
180p_3 180 × 180 15 100
180p_4 240 × 180 15 120
240p 320 × 240 15 200
240p_1 320 × 240 15 200
240p_3 240 × 240 15 140
240p_4 424 × 240 15 220
360p 640 × 360 15 400
360p_1 640 × 360 15 400
360p_3 360 × 360 15 260
360p_4 640 × 360 30 600
360p_6 360 × 360 30 400
360p_7 480 × 360 15 320
360p_8 480 × 360 30 490
360p_9 640 × 360 15 800
360p_10 640 × 360 24 800
360p_11 640 × 360 24 1000
480p 640 × 480 15 500
480p_1 640 × 480 15 500
480p_2 640 × 480 30 1000
480p_3 480 × 480 15 400
480p_4 640 × 480 30 750
480p_6 480 × 480 30 600
480p_8 848 × 480 15 610
480p_9 848 × 480 30 930
480p_10 640 × 480 10 400
720p 1280 × 720 15 1130
720p_1 1280 × 720 15 1130
720p_2 1280 × 720 30 2000
720p_3 1280 × 720 30 1710
720p_5 960 × 720 15 910
720p_6 960 × 720 30 1380
1080p 1920 × 1080 15 2080
1080p_1 1920 × 1080 15 2080
1080p_2 1920 × 1080 30 3000
1080p_3 1920 × 1080 30 3150
1080p_5 1920 × 1080 60 4780
1440p 2560 × 1440 30 4850
1440p_1 2560 × 1440 30 4850
1440p_2 2560 × 1440 60 7350
4K 3840 × 2160 30 8910
4K_1 3840 × 2160 30 8910
4K_3 3840 × 2160 60 13500

Variables

Const AgoraRTC

AgoraRTC: IAgoraRTC

Functions

stream-inject-status

  • Occurs when the status of the media stream injected by addInjectStreamUrl updates.

    Parameters

    • status: InjectStreamEventStatus

      The current status.

    • uid: UID

      The ID of the user who injects the media stream.

    • url: string

      The URL address of the medida stream.

    Returns void

user-info-updated

  • user-info-updated(uid: UID, msg: "mute-audio" | "mute-video" | "enable-local-video" | "unmute-audio" | "unmute-video" | "disable-local-video"): void
  • Reports the state change of users using the Agora RTC Native SDK when your scenario involves the Native SDK.

    This event is only for synchronizing states with the clients that integrate the Native SDK.

    In most cases, you only need to listen for user-published and user-unpublished events for operations including subscribeing, unsubscribing, and displaying whether the remote user turns on the camera and microphone. You do not need to pay special attention to user states since the SDK automatically handles user states.

    This event indicating the media stream of a remote user is active does not necessarily mean that the local user can subscribe to this remote user. The local user can subscribe to a remote user only when receiving the user-published event.

    Parameters

    • uid: UID

      The ID of the remote user.

    • msg: "mute-audio" | "mute-video" | "enable-local-video" | "unmute-audio" | "unmute-video" | "disable-local-video"

      The current user state.

    Returns void