This page provides the release notes for the Agora Web SDK 3.x and earlier versions.
The Agora Web SDK is a JavaScript library loaded by an HTML web page. The Agora Web SDK library uses APIs in the web browser to establish connections and control the communication and interactive live streaming services.
For the web browser support of the Agora Web SDK, see Which browsers does the Agora Web SDK support?
Chrome deprecates and removes the Plan B dialect
Chrome plans to deprecate and remove the Plan B dialect in WebRTC. For details, see the Chrome feature description. This change affects the following Agora Web SDK versions:
Web SDK version | Impact |
---|---|
After a stream is published, the method call of switchDevice causes video freezes or no sound issues. |
|
v4.0.0-4.0.1 | The publish and subscribe methods do not take effect. |
If you use any of the above SDK versions, Agora recommends that you upgrade the SDK to the latest version.
Other limitations
Stream.play
, Stream.startAudioMixing
, and Stream.getAudioLevel
methods need to be triggered by the user's gesture on Chrome 70 or later and on Safari. See Autoplay Policy Changes.For more issues, see Web FAQs.
v3.6.11 was released on June 21, 2022. This release fixed the issue that subscribing to audio or video streams failed on Chrome 103. This issue occurred because Chrome 103 introduced behavior changes in WebRTC.
If you use v3.6.10 or earlier, Agora strongly recommends you upgrading the SDK to v3.6.11 or later.
v3.6.10 was released on March 28, 2022 with the following changes:
v3.6.9 was released on January 6, 2022. This release fixed the issue that after you enabled the cloud proxy service and tried to join a channel, the browser console might present a CORS error.
v3.6.8 was released on December 20, 2021, and fixed some known issues.
v3.6.7 was released on November 24, 2021, and fixed a known issue on Chrome 100 or later versions.
v3.6.6 was released on November 10, 2021, with the following changes:
TypeError: null is not an object (evaluating 'e.track.kind')
error.v3.6.5 was released on September 13, 2021. This release fixed the issue that after you enabled the cloud proxy service and tried to join a channel, the browser console might present a CORS error.
v3.6.4 was released on September 1, 2021, and fixed some known issues.
v3.6.3 was released on August 6, 2021. This release fixed the issue that the SDK did not destroy all the media players created during a call or live streaming. Chrome 92 introduced a limit on the number of media players that can be created in a particular tab: 75 for the desktop. After you play tracks several times, the undestroyed media players in the SDK might cause the playback failure in the tab.
v3.6.2 was released on July 16, 2021. This release fixed the issue caused by the deprecation and removal of the Plan B dialect in Chrome 93 and later versions: After a stream is published, the method call of switchDevice causes video freezes or no sound issues.
v3.6.1 was released on July 1, 2021. This release fixed the issue that after you enable the cloud proxy service, the SDK did not automatically retry when it fails to connect to the cloud proxy service.
v3.6.0 was released on May 25, 2021.
Channel encryption
To strengthen the security of the key, v3.6.0 adds two encryption modes, "aes-128-gcm2"
and "aes-256-gcm2"
, which use the PBKDF2 (Password-Based Key Derivation Function 2). When calling setEncryptionMode
and setting the encryption mode as "aes-128-gcm2"
or "aes-256-gcm2"
, you need to set secret
and salt
. For how to generate and set secret
and salt
, see Media Stream Encryption.
Network geofencing
v3.6.0 adds the excludedArea
parameter in ClientConfig
. You can use the areaCode
parameter to specify a large region and use the excludedArea
parameter to specify a small region. The region for connection is the large region excluding the small region. You can only specify the large region as "GLOBAL"
. For details, see Network Geofencing.
v3.6.0 fixes the issue that after a user was kicked out of a channel, if the user rejoins the channel with the same uid, the user received the error of uid conflict.
v3.5.2 was released on April 19, 2021. This release fixed the issue that the SDK fails to connect to Agora servers when you specify CHINA
as the region for connection.
v3.5.1 was released on April 14, 2021. This release fixed the issue due to the None Ice Candidate not allowed
error.
v3.5.0 was released on April 12, 2021.
Firewall domain whitelist
As of v3.5.0, the destination domains required for your firewall whitelist changes to:
.agora.io
.edge.agora.io
.sd-rtn.com
.edge.sd-rtn.com
If you upgrade the SDK to v3.5.0, update your firewall domain whitelist to ensure you can use Agora products in environments with restricted network access.
AES-GCM encryption mode
In scenarios requiring high security, to ensure the confidentiality, integrity and authenticity of data, and to improve the computational efficiency of data encryption, v4.4.0 adds the following encryption modes in EncryptionMode
:
"aes-128-xts"
: 128-bit AES encryption, GCM mode."aes-256-gcm"
: 256-bit AES encryption, GCM mode.Once you enable the built-in encryption, all users in the same channel must use the same encryption mode and key, including the server-side users, such as the Agora recording service.
Cloud proxy
v3.5.0 adds the proxy
property in client.on("stream-published")
for indicating whether the media stream is forwarded by the cloud proxy service.
Added
"aes-128-gcm"
and "aes-256-gcm"
in EncryptionMode
proxy
in client.on("stream-published")
v3.4.0 was released on January 26, 2021.
Cloud proxy
This release optimizes the Agora cloud proxy architecture and enhances the connectivity of the Web SDK in environments with restricted network access. The optimized Agora cloud proxy service also supports regional connection.
You can contact support@agora.io to apply for using the optimized Agora cloud proxy service and set the type
parameter as 3
when calling startProxyServer
. For details, see Use Cloud Proxy.
The SDK failed to trigger the first-video-frame-decode
event on Safari.
v3.3.1 was released on December 11, 2020. This release fixed the connection error when using the cloud proxy service.
v3.3.0 was released on December 1, 2020.
After you call Client.setEncryptionMode
to enable the built-in encryption, when the user sets a weak secret by calling Client.setEncryptionSecret
, the SDK outputs a warning message to the Web Console and prompts the user to set a strong secret. A strong secret must contain at least eight characters and be a combination of uppercase and lowercase letters, numbers and special characters.
publish
in the Client.on("stream-unpublished")
event caused an error.switchDevice
to switch the microphone, the display mode of the local view changed from contain
to cover
.Client.on("network-quality")
event did not change to 0 until 30 seconds after the network disconnection.v3.2.3 was released on October 28, 2020. This release fixed the following issues:
setLiveTranscoding
was called, pushing streams to CDN failed if startLiveStreaming
was called before the SDK triggers the Client.on("liveTranscodingUpdated")
event.stopLiveStreaming
was called, the SDK failed to trigger the Client.on("liveStreamingStopped")
event.v3.2.1 was released on September 11, 2020. This version fixed the error in compiling and packaging after some users upgraded to v3.2.0.
v3.2.0 was released on September 7, 2020.
New features
v3.2.0 adds the optimizationMode
property in the StreamSpec
interface. When creating a stream object by calling createStream
, you can choose between the following two optimization strategies to ensure the quality of video images meets the end users' requirement under poor network conditions:
"detail"
: Prioritizes clarity. In most cases, the SDK does not reduce the sending resolution, but may reduce the frame rate."motion"
: Prioritizes smoothness. In most cases, the SDK does not reduce the frame rate, but may reduce the sending resolution.If you leave this property empty, the SDK uses the default transmission optimization strategy:
screen
property as true
when calling createStream
), the default transmission optimization strategy is to prioritizes clarity.Improvements
v3.2.0 fully supports Chromium-based versions of Microsoft Edge (versions 80 and later).
Fixed issues
setAudioProfile
.Stream.init
failed when the device does not support the capture frame rate of 15 fps.API changes
v3.2.0 adds the optimizationMode
property in StreamSpec
.
v3.1.2 was released on August 11, 2020.
New features
This release adds the areaCode
property in ClientConfig
for specifying the region for the connection when creating a Client
object. After specifying the region, the SDK connects to the Agora servers within that region.
You can choose from the following regions:
This advanced feature applies to scenarios that have regional restrictions.
Fixed issues
The value of the success
parameter in the Client.on("stream-reconnect-end")
callback was inaccurate.
API changes
Adds the areaCode
property in ClientConfig
.
v3.1.1 was released on June 1, 2020.
Improvements
From this release, the RTMP converter supports the Agora cloud proxy service.
Fixed issues
getLocalVideoStats
within three seconds after publishing a stream.v3.1.0 was released on April 30, 2020.
Behavior changes
v3.1.0 optimizes dual-stream mode and makes the following changes in SDK behavior:
New features
Adds the Client.on("stream-unpublished")
callback. When the local user successfully unpublishes a stream, the SDK triggers this callback.
This release enables you to pass configurations of multiple TURN servers to ClientConfig.turnServer.
Fixed issues
Stream.getStats
got an empty result.Stream.switchDevice
caused errors.Client.join
, the SDK did not return the user ID after joining the channel successfully.status
property in StreamPlayError
was inaccurate.Client.on("mute-audio")
and Client.on("mute-video")
callbacks repeatedly.API changes
Added the event "stream-unpublished"
in Client.on
.
v3.0.2 was released on March 16, 2020. This version made some internal improvements.
v3.0.1 was released on February 12, 2020.
New features
This version supports the dual-stream mode (enableDualStream
) for video streams created by defining the videoSource
property.
Improvements
Optimizes the reconnection strategy to improve the user experience under poor network conditions.
Fixed issues
setClientRole
causes errors.Client.leave
when the network is disconnected.videoSource
property.muteAudio
and muteVideo
methods do not take effect after unsubscribing from and then subscribing to a remote stream.v3.0.0 was released on December 2, 2019.
This release optimizes the SDK's performance in terms of transmission quality and interoperability, significantly reducing the time to render the first remote video frame, and improving the video experience under poor downlink network conditions.
New features
Adds the following methods for relaying the media stream of a host from a source channel to a destination channel. This feature applies to scenarios where hosts from different live streaming channels interact with each other.
startChannelMediaRelay
updateChannelMediaRelay
stopChannelMediaRelay
During a media stream relay, the SDK reports the states and events of the relay with the Client.on("channel-media-relay-state")
and Client.on("channel-media-relay-event")
callbacks.
For more information on the implementation, API call sequence, sample code, and considerations, see Co-host across Channels.
Adds the screenAudio
property to StreamSpec
for sharing the local audio playback when sharing a screen. See Share audio for details.
Adds the setBeautyEffectOptions
method for setting image contrast, brightness, sharpness, and red saturation. See Image enhancement for details.
Adds the images
property to LiveTranscoding
for inserting online PNG images as watermarks to a live streaming.
Adds the Client.on("crypt-error")
callback for notifying the app that an encryption/decryption failure occurs when the local users is publishing or subscribing to a stream.
Improvements
Adds the Client.on("enable-local-video")
and Client.on("disable-local-video")
callbacks for notifying the app that a remote user on the Native SDK calls enableLocalVideo
to enable or disable video capture.
Adds reason
to the Client.on("peer-leave")
callback for reporting the reason why the remote user goes offline.
Fixed issues
Client.join
does not report the error of an incorrect App ID in its onFailure callback function.
Occasionally, the SDK does not automatically reconnect after being disconnected from the servers for pushing and pulling streams.
For answers to questions arising from common disconnection issues, click the following FAQ links: When pushing streams to the CDN, what should I do when a disconnection happens?
Occasionally, the error message "Cannot read property 'getLastMsgTime' of null"
appears.
The console reports an error when the local user enables or disables the audio or video track of a remote stream.
API changes
Adds the following events in Client.on
"enable-local-video"
"disable-local-video"
"channel-media-relay-event"
"channel-media-relay-state"
"crypt-error"
Adds the screenAudio
property inAgoraRTC.createStream
.
v2.9.0 is released on September 5, 2019.
Compatibility changes
To improve the usability of the Media Push service, v2.9.0 defines the following parameter limits in LiveTranscoding
:
videoFramerate
: Frame rate (fps) of the CDN live output video stream. Agora adjusts all values over 30 to 30.videoBitrate
: Bitrate (Kbps) of the CDN live output video stream. Set this parameter according to the Video Bitrate Table. If you set a bitrate beyond the proper range, the SDK automatically adapts it to a value within the range.videoCodecProfile
: The video codec profile. Set it as 66, 77, or 100. If you set this parameter to other values, Agora adjusts it to the default value of 100.width
and height
: Pixel dimensions of the video. The minimum value of width x height is 16 x 16.New features
Supports using the Agora Web SDK in NAT64 networks.
Adds the facingMode
parameter in the createStream
method to set using the front or rear camera on mobile devices.
Adds the Client.off
method to support removing the events attached by the Client.on()
method.
Improvements
Issues fixed
Stream.close
when initializing the stream causes abnormal behaviors.cacheResource
in Stream.startAudioMixing
does not take effect.API changes
Client.off
method.facingMode
parameter inAgoraRTC.createStream
.v2.8.0 is released on July 8, 2019.
This version optimizes the support for string UIDs.
All users in the same channel should have the same type (number or string) of user ID. If you use string UIDs to interoperate with the Agora Native SDK, ensure that the Native SDK uses the string user account to join the channel. See Use String User Accounts for details.
v2.7.1 is released on July 3, 2019.
Issues fixed
Setting the video profile of the shared screen by the Stream.setScreenProfile
method does not take effect.
v2.7.0 is released on June 21, 2019.
New features
Adds the Stream.setVideoEncoderConfiguration
method to customize the video encoder configuration. Compared with theStream.setVideoProfile
method, this method is more flexible and supports customizing the video resolution, frame rate, and bitrate. See Set the Video Profile for details.
For easier management of the stream playback status, v2.7.0 adds the following functions:
callback
parameter in the Stream.play
method to report the result of playing a stream. If the playback fails, this parameter provides the error details."player-status-change"
callback in Stream.on
. When the stream playback status changes, this callback is triggered to report the playback status and the reason why the status changes.Stream.resume
method to resume the playback when the Stream.play
method fails.Adds the "first-audio-frame-decode"
and "first-video-frame-decode"
callbacks in Client.on
to notify the app when the first remote audio/video is decoded after subscribing to the remote stream.
Adds the "audioTrackEnded"
and "videoTrackEnded"
callbacks in Stream.on
to notify the app when the audio/video track no longer provides data to the stream, for example when the device is removed or deauthorized.
Supports audio calls, video calls, and interactive live streaming on the Microsoft Edge browser. For details, see Agora Web SDK FAQ.
Improvement
This version allows updating the video encoder configuration dynamically. You can call setVideoProfile
or setVideoEncoderConfiguration
before or after Stream.init
.
Do not set the video encoder configuration when publishing a stream.
Issues fixed
Stream.getStats
are incorrect.Client.leave
does not take effect when the network connection is lost.Stream.getAudioMixingPosition
is inaccurate when the audio mixing file is playing.API changes
Stream.setVideoEncoderConfiguration
Stream.resume
Client.on
method:"first-audio-frame-decode"
"first-video-frame-decode"
Stream.on
method:"audioTrackEnded"
"videoTrackEnded"
"player-status-change"
Stream.play
: Adds the callback
parameter.
v2.6.1 is released on April 11, 2019.
Improvement
This version supports using empty strings for the cameraId
and microphoneId
properties in the createStream
method.
Issues fixed
enableDualStream
method before publishing a stream.getStats
method are missing in calls using string UIDs.v2.6.0 is released on April 3, 2019.
New features
Supports playing multiple audio effect files at the same time, and managing the files. You can set the volume, pause/stop the playback, and preload the audio effect file. See Play Audio Effects/Audio Mixing.
Supports screen sharing on Chrome 72 and later without using the Chrome extension. See Share the Screen.
cacheResource
property in the Stream.startAudioMixing
method to set whether or not to store the audio mixing file in the cache.AgoraRTC.getSupportedCodec
method to get the supported codecs of the web browser.stream-updated
callback in the Client.on
method to notify users when the remote stream adds or removes a track.startAudioMixing
method.Improvements
stream-fallback
callback in the Client.on
method to notify the user when the remote video stream falls back to audio-only when the network conditions worsen or switches back to video when the network conditions improve.Issues fixed
switchDevice
method fails to switch between microphones on Chrome 72.addTrack
method.switchDevice
method and start audio mixing again, the remote user cannot hear the audio mixing.active-speaker
callback.muteAudio
and muteVideo
methods immediately after subscribing to the remote stream might not take effect.replaceTrack
method to switch the video track on Windows, if you call the startAudioMixing
method, the remote user cannot hear the audio mixing.API changes
AgoraRTC.getSupportedCodec
Stream.playEffect
Stream.stopEffect
Stream.pauseEffect
Stream.resumeEffect
Stream.setVolumeOfEffect
Stream.preloadEffect
Stream.unloadEffect
Stream.getEffectsVolume
Stream.setEffectsVolume
Stream.stopAllEffects
Stream.pauseAllEffects
Stream.resumeAllEffects
Client.on
method: stream-fallback
stream-updated
cacheResource
parameter in the Stream.startAudioMixing
method.v2.5.2 is released on February 28, 2019.
Issues fixed
Stream.switchDevice
method fails to switch audio devices on Chrome 72 or later.Client.subscribe
method.v2.5.1 is released on February 19, 2019.
New features
Adds more statistics on the call quality.
Client.getSessionStats
method to get the statistics of the call sessions, such as the duration in the channel, the total received and sent bitrate of the stream, and the number of users in the channel.network-quality
callback to report the uplink and downlink network conditions of the local user once every two seconds. Client.getRemoteAudioStats
method:Client.getRemoteVideoStats
method:Client.getLocalVideoStats
method:Client.getTransportStats
method:Adds the options
parameter to the Client.subscribe
method to set whether or not to receive the audio and/or video data.
This method can be called multiple times and enables users to switch between receiving and not receiving the audio and/or video data flexibly.
Adds the Client.addInjectStreamUrl
method to pull a voice or video stream and inject it into a live streaming channel. This is applicable to scenarios where all of the audience members in the channel can watch a live show and interact with each other.
Adds the streamInjectedStatus
callback to inform the app of changes to the injection status.
Adds the Client.setClientRole
method to set the user role as a host or an audience in a live streaming channel. A host can both send and receive streams while an audience can only receive streams.
Adds the client-role-changed
callback to inform the app of changes to the user role.
Client.getConnectionState
method to retrieve the connection status between the SDK and Agora's edge server.connection-state-change
callback to inform the app of changes to the connection status. Supports the cloud proxy service. See Use Cloud Proxy for details.
Stream.isPlaying
method to detect whether or not a stream is playing.Client.on
method:peer-online
: Informs the app that a remote user or host joins the channel.stream-reconnect-start
: Informs the app that the SDK starts republishing or re-subscribing to streams.stream-reconnect-end
: Informs the app that the SDK finishes republishing or re-subscribing to streams.exception
: Informs the app of exceptions.Stream.on
method:audioMixingPlayed
: Informs the app that the audio mixing stream starts or resumes playing.audioMixingFinished
: Informs the app that the audio mixing stream finishes playing. Improvements
muted
parameter to the Stream.play
method to work around the web browser's autoplay policy.callback
parameter to the Stream.setAudioMixingPosition
method to return error messages when the method call fails.Client.on
method to be consistent in style.Issues fixed
getStats
method is 0 on Safari for macOS.enableAudio
method is called after disabling audio and then starting audio mixing.getAudioLevel
method is 0 after calling the switchDevice
method to switch audio devices.replaceTrack
method.switchDevice
method.API changes
AgoraRTC.getScreenSources
Client.addInjectStreamUrl
Client.removeInjectStreamUrl
Client.getSessionStats
Client.setClientRole
Client.getConnectionState
Client.startProxyServer
Client.stopProxyServer
Stream.isPlaying
Stream.muteAudio
Stream.unmuteAudio
Stream.muteVideo
Stream.unmuteVideo
Client.on
method:streamInjectedStatus
client-role-changed
peer-online
network-quality
connection-state-change
stream-reconnect-start
stream-reconnect-end
exception
Stream.on
method:audioMixingPlayed
audioMixingFinished
Client.subscribe
: Adds the options
parameter.
Stream.setAudioMixingPosition
: Adds the callback
parameter.
Stream.play
: Adds the muted
parameter.
Renames the following callbacks in the Client.on
method:
Old Callback Name | Current Callback Name |
---|---|
networkTypeChanged | network-type-changed |
recordingDeviceChanged | recording-device-changed |
playoutDeviceChanged | playout-device-changed |
cameraChanged | camera-changed |
streamTypeChange | stream-type-changed |
Client.getNetworkStats
Stream.enableAudio
Stream.disableAudio
Stream.enableVideo
Stream.disableVideo
v2.5.0 is released on October 30, 2018.
If you set the domain firewall, ensure that
*.agoraio.cn
and*.agora.io
are added to your whitelist before using this version.
New features
To enable better interoperability between the Agora Web SDK and other Agora SDKs, this version adds the following features. For detailed descriptions of the APIs, see Agora Web SDK API Reference.
Adds the following API methods on call statistics to give users a better idea of the call quality:
Client.getNetworkStats
: Retrieves the network statistics (network type).Client.getSystemStats
: Retrieves the system statistics (system battery level).Client.getRemoteAudioStats
: Retrieves the audio statistics of the remote stream.Client.getLocalAudioStats
: Retrieves the audio statistics of the local stream.Client.getRemoteVideoStats
: Retrieves the video statistics of the remote stream.Client.getLocalVideoStats
: Retrieves the video statistics of the local stream.Client.getTransportStats
: Retrieves the statistics of network transport.Provides flexible device management and device status notification.
Adds the following API methods:
Client.getRecordingDevices
: Enumerates the audio input device, such as the microphone.Client.getPlayoutDevices
: Enumerates the audio output device, such as the speaker.Client.getCameras
: Enumerates the video input device, such as the camera.Adds the following callbacks to inform the app on relevant device changes:
recordingDeviceChanged
: The audio input device is changed.playoutDeviceChanged
: The audio output device is changed.cameraChanged
: The video input device is changed.Adds the following API methods:
Stream.switchDevice
: Switches the media input devices in the channel. For example, the microphone and camera.Stream.setAudioOutput
: Sets the audio output device. You can use this method to switch between the microphone and the speaker.Supports audio mixing, namely mixing the original sound (the audio captured by the microphone) with the audio playback (an audio file).
Adds the following API methods:
Stream.startAudioMixing
: Starts audio mixing.Stream.stopAudioMixing
: Stops audio mixing.Stream.pauseAudioMixing
: Pauses audio mixing.Stream.resumeAudioMixing
: Resumes audio mixing.Stream.adjustAudioMixingVolume
: Adjusts the audio mixing volume.Stream.getAudioMixingDuration
: Retrieves the audio mixing duration.Stream.getAudioMixingCurrentPosition
: Retrieves the current position of the audio mixing.Stream.setAudioMixingPosition
: Sets the playback position of the audio mixing.Provides flexible management of the audio and video tracks.
Adds the following API methods:
Stream.getAudioTrack
: Retrieves the audio track.Stream.getVideoTrack
: Retrieves the video track.Stream.replaceTrack
: Replaces the audio/video track.Stream.addTrack
: Adds an audio/video track.Stream.removeTrack
: Removes an audio/video track.Stream.play
method.Client.enableAudioVolumeIndicator
method to enable the SDK to regularly report on the active speakers and their volumes.Stream.setAudioVolume
method, which sets the audio volume of the subscribed stream.networkTypeChanged
callback to inform the app on network type changes.streamTypeChanged
callback to inform the app on stream type changes (from a low-stream video to a high-stream video or vice versa).uid
parameter in the Client.join
method.Issues fixed
stream-removed
callback 10 seconds after another user calls the Stream.close
method to stop streaming from the Safari browser.Stream.userID
method.v2.4.1 is released on September 19, 2018.
Issues fixed
stream-removed
callback.v2.4.0 is released on August 24, 2018.
New features
See Security Keys for details.
Adds the support for AEC (Acoustic Echo Cancellation) and ANS (Automatic Noise Suppression) in the audioProcessing
property.
Adds the audioSource
and videoSource
properties in the client.createStream
method, which specifies the audio and video tracks. Therefore, you can process the audio/video before creating a stream.
Adds the stream.setAudioProfile
method, which provides various audio profile options (the sample rate, mono or stereo, and the encoding rate).
Adds the client.setStreamFallbackOption
method, which allows the receiver to automatically subscribe to the low-stream video or the audio-only stream under poor network conditions.
Adds delay-related statistics in the stream.getStats
callback, including the delays from the publisher to the SD-RTN, from the SD-RTN to the subscriber, from end to end, and from sending to playing audio/video.
Adds the AgoraRTC.Logger.enableLogUplaod
method, which supports uploading the SDK’s log to Agora’s server.
Issues fixed
cameraId
and microphoneId
settings do not take effect unless the stream.setVideoProfile
method is called.setScreenProfile
method does not take effect on the Firefox browser.client.createStream
method.microphoneId
setting does not take effect in screen sharing.audioProcessing
settings do not take effect.stream.play
method can be called repeatedly without calling the stream.stop
method.v2.3.1 is released on June 7, 2018.
Issues fixed
v2.3.0 is released on June 4, 2018.
New features
To increase the application scenarios and improve interoperability with the Agora Native SDK, the mode
and codec
properties are added in the createClient
method, in which mode
includes rtc
and live
, while codec
includes vp8
and h264
.
To meet customers’ needs for audio control during a communication or interactive live streaming session, the audioProcessing
property is added in the createStream
method.
To enable enterprises with a company firewall to access Agora’s services, the setProxyServer
and setTurnServer
methods are added. By calling these methods, you can bypass the firewall and send the signaling messages and media data directly to the Agora SD-RTN through the servers. You need to deploy the Nginx and TURN servers before calling these methods before joining the channel.
Encryption is supported to enhance security for communications or live streaming. Users need to set the encryption mode and password before joining a channel to use this function.
Issues fixed
In the case of p2plost, the SDK stops reconnecting to the server after one or several reconnections.
v2.2 is released on April 16, 2018.
New features
Supports getting the version of the current Web SDK.
Adds the setLowStreamParameter
method to set the low-stream parameter.
Adds the support for the Firefox browser to share the screen by adding the mediaSource
property in the createStream
method. See Screen Sharing on Firefox for details.
Adds the support for the QQ browser.
Issues fixed
No voice in the voice-only mode when an iOS device joins a session using the Safari browser.
v2.1.1 is released on March 19, 2018.
Fixes the issue of unable to view the remote video when using the Web SDK on the Firefox browser v59.01 on macOS.
v2.1.0 is released on March 7, 2018.
New features
Function | Description |
---|---|
Quality Detection | Adds callbacks to return the quality of the compatibility, microphone, camera, and network status. |
Simulcast | Adds the function of controlling which stream type (high or low) to send or receive. |
User-ban Notification | Adds a callback to notify a user of being banned from a channel. |
RTMP Stream-Pushing | Adds a method to support RTMP stream-pushing. |
Log Output Level Settings | Adds a method to set the log output level. |
Mute/Unmute | Adds a method to mute or unmute users in a call or interactive streaming. |
Improvements
Improvement | Description |
---|---|
P2P Connection Establishment | Shortens the time from 1.8 s to 500 ms. |
Packet Loss | Optimizes the FEC packet loss and ULP FEC packet loss. |
Issues fixed
v2.0 is released on November 21, 2017.
#New features
CreateClient
method, to check the compatibility between the system and the web browser.#Issues fixed
v1.14 is released on October 20, 2017.
Adds the screen-sharing function by modifying the screen
property and adding the extensionId
property in the createStream
method.
v1.13 is released on September 4, 2017.
#New features
configPublisher
method.v1.12 is released on July 25, 2017.
Adds and updates the following APIs:
API | Type | Description |
---|---|---|
createClient |
New | Creates a client object for web-only or web interop depending on which mode you set. |
renewChannelKey |
New | Updates a Channel Key when the previous Channel Key expires. |
active-speaker |
New | Indicates who is the active speaker in the current channel. |
setRemoteVideoStreamType |
New | Specifies the video stream type of the remote user to be received by the local user when the remote user sends dual streams. |
setVideoProfile |
Update | Sets the video profile. The default value is 480p_1. |
init |
Update | Initializes the client object. |
join |
Update | Allows a user to join an Agora channel. |
Updates the error codes.
v1.8.1 is released on March 16, 2017.
Fixes the incompatibility issue on Chrome v57.
v1.8 is released on December 26, 2016.
The Agora Web SDK supports both communication and live streaming scenarios starting from v1.8. This release is a beta version.