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.
||Sample rate 16 kHz, mono, encoding rate 24 Kbps|
||Sample rate 32 kHz, mono, encoding rate 24 Kbps|
||Sample rate 48 kHz, mono, encoding rate 40 Kbps|
||Sample rate 48 kHz, stereo, encoding rate 64 Kbps|
||Sample rate 48 kHz, mono, encoding rate 128 Kbps|
||Sample rate 48 kHz, stereo, encoding rate 192 Kbps|
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 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": 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.
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.
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.
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|
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).
The preset video encoder configurations.
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||✓||✓|
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.
The ID of the remote user.
The current user state.