This topic describes the features of each Web SDK version.
V 1.5.0 (2022-04-25)
The degradation policy is a publishing parameter that can be set to either fluency-first or definition-first. For more information, see the degradationType field in the InitRoomConfig and Publish interfaces.
Screen sharing: Added support for audio in tabs (tabs only). For more information, see the enableDesktopAudio field in the InitRoomConfig and Publish interfaces.
Screen sharing: Optimized the listener logic for the desktop sharing shutdown event.
Fixed an error in Safari: RTCRtpSender.getCapabilities.
Audio and video quality statistics: Added support for some mobile browsers.
V 1.4.9 (2022-01-21)
Optimized the status listener logic for cameras and microphones during calls.
Fixed an issue where
RTCIceServer.urlwas deprecated.Deprecated the
OnGetSigninterface. You now pass thesignparameter. This change is compatible with previous connection types.Added the
crf(definition) andtagPositions(custom video layout) recording parameters. For more information, see the parameter descriptions in Appendix.Added publishing parameters to support custom settings for resolution, frame rate, and bitrate.
Added the
OnFileStreamClosedcallback interface for file sharing shutdown.Added the
OnDesktopDisplayClosedcallback interface for desktop sharing shutdown.
V 1.4.8 (2021-10-12)
Added the StreamFilterHandler feature to support custom stream editing.
Removed version checks for non-Chrome browsers. A mandatory alert is now used.
The release notes for versions earlier than V1.4.8 are no longer maintained.
V 1.4.7 (2021-08-23)
Deprecated the
ice_relay_ip_arrayparameter. Configure it on the server.Added support for playing and pausing shared audio and video files.
Added a choice for automatic publishing and subscription. Option 5 is added to the
auto_publish_subscribeparameter.Added support for custom stream ingest.
Added an interface to switch camera resolution.
Optimized browser recording:
Supports setting the canvas size.
Supports timestamp, text, and image watermarks.
V 1.4.6 (2021-06-08)
Fixed an issue where shared video files could not be viewed on the peer end in Chrome 88 and later.
V 1.4.5 (2021-05-18)
Added the 540p resolution option.
Refactored the internal architecture of the software development kit (SDK).
Events are now sent when switching streams, and the mediaSource is changed.
Added support for real-time watermark changes in server-side recording.
Adjusted the startup parameters for server-side recording. This change is compatible with previous parameters. For more information, see Appendix.
V 1.4.4 (2021-03-04)
Browser recording now supports four ingest endpoints.
Added a white border to separate streams in browser recordings.
V 1.4.3 (2021-02-24)
Added the 1280p resolution option.
You can adjust the bitrate for each profile.
Added support for custom configuration of multiple public IP addresses for relay agents.
Set bundlePolicy to max-bundle. Multiple streams now share the same ICE.
V 1.4.2 (2021-01-21)
Fixed a configuration issue with custom relay servers in automatic subscription mode.
V 1.4.1 (2021-01-14)
Fixed an abnormal heartbeat issue when entering a channel for the first time after SDK initialization.
Fixed an issue where some server-pushed messages did not receive an ACK.
Optimized custom area sharing.
Added loose connection detection for the camera interface with support for automatic recovery.
Added support for publishing audio-only streams without passing a video tag. Added support for subscribing to video-only or audio-only streams by passing only a video or audio tag.
Added a feature to pre-start the camera or microphone.
V 1.4.0 (2020-12-17)
Fixed an issue where no callback was received after a custom stream ingest was successfully published.
Fixed an issue where frame rate switching failed.
Added support for adding a publish tag watermark to each frame in server-side recordings.
Fixed an issue where the RTMP address setting for live streaming was invalid.
V 1.3.9 (2020-12-09)
Fixed a blur issue in custom stream ingest.
V 1.3.8 (2020-12-02)
Fixed a bug where an error occurred if you started a recording when no stream was being published in the channel.
V 1.3.7 (2020-11-23)
Audio and video calls now support H5 on Android Chrome browsers (VP8, with H.264 support on some models) and iOS Safari (H.264).
V 1.3.6 (2020-11-06)
Deprecated the ASR and TTS features.
V 1.3.5 (2020-11-02)
Server-side recording now supports custom layouts. See the mixPosition parameter in main call interfaces 3 and 21.
Added support for multiple concurrent publications.
V 1.3.4 (2020-09-29)
Server-side recording now supports two end types, in addition to ending by an active call. See the endType parameter in main call interfaces 3 and 21.
Fixed an issue where plugging or unplugging an external microphone caused a loss of audio.
V 1.3.3 (2020-09-02)
Server-side recording now supports a silence feature. See the silentRecord parameter in main call interfaces 3 and 21.
V 1.3.2 (2020-08-25)
Fixed an issue in client-side recording where inconsistent video heights caused black bars to appear below shorter videos after they were stitched together.
Fixed an issue where server-side recording would time out during initialization if no stream was being published in the channel.
V 1.3.1 (2020-08-14)
Renamed the server-side recording callback interfaces. This change is compatible with previous interfaces.
Added pause and resume features for server-side recording.
V 1.3.0 (2020-08-12)
Added the record_third_id parameter for server-side recording. This parameter helps you distinguish between call batches. Pass it when you start a recording (see main call interfaces 3 and 21). It is returned in the callbacks for successful initialization, successful start, and failed start (see callback interfaces 33, 34, and 63).
Added support for starting concurrent recordings.
V 1.2.9 (2020-08-11)
Optimized audio and video quality statistics.
Removed the concurrency limit for server-side recording.
V 1.2.8 (2020-08-07)
Browser recording: Upgraded the interface and added more configuration options. The original main call interface 16 is deprecated. The new interface is main call interface 40.
Server-side recording: Added tagFilter and tagPostion configurations. See main call interfaces 3 and 21.
Added a third-party business ID property to channel initialization. See main call interface 3.
V 1.2.7 (2020-07-28)
Added the maximum publishing bitrate parameter publish_bitrate:
The InitRoomConfig API (see Core API 3).
The Publish API (see Core API 9).
The ChangeMediaStream API (see Core API 37).
Custom stream ingest now supports PDF files.
Server-side recording now supports timestamp watermarks, image watermarks, and multi-user recording. See main call interfaces 3 and 21.
Added support for configuring a custom relay server (defaultTurnServer). See main call interface 3.
V 1.2.6
Fixed an issue where the timer was not purged after an ICE connection was established.
V 1.2.5
Fixed an issue where browser-side recording information was not destroyed after leaving a channel.
V 1.2.4
Adjusted browser recording interfaces
Main call interface adjustments
StartRecord: Removed the targetType parameter and added the timeSlice parameter. The recordType value is adjusted to 1, 2, or 3 (see main call interface 16).
DownloadRecord: Removed the returnType parameter (see main call interface 20).
Callback notification interface adjustments
OnClientStartRecordSuccess: Removed the targetType parameter (see callback interface 67).
OnClientStopRecordSuccess: Removed the targetType parameter (see callback interface 69).
OnClientDownloadRecordSuccess: Removed the returnType and clientRecordBlob parameters (see callback interface 75).
Added the OnClientRecordBlob interface (see callback interface 81).
V 1.2.3
You can add related content.
Added the OnChangeMediaStreamSuccess notification for successful stream switching (see callback interface 79).
Added the OnChangeMediaStreamFailed notification for failed stream switching (see callback interface 80).
ChangeProfile: Added the local_video_width and local_video_height parameters (see main call interface 38).
Deletions
Browser recording: Removed the targetType parameter from the StopRecord interface (see main call interface 17).
Removed option 4 from the video_profile_type parameter (see main call interfaces 3 and 9).
Internal adjustments
Added user browser information when creating and joining a channel (internal SDK adjustment).
Fixed an issue where the BLOB result of a browser recording was empty (internal SDK optimization).
Updated the publish stream tag (internal SDK adjustment).
Added instructions for business integration with the Web SDK.
V 1.2.2
Fixed a bug that caused multiple callbacks for browser recording.
V 1.2.1
publish_device: Added two publishing types: publishing a file and publishing a custom page area (see main call interfaces 3 and 9).
Adjustments to publishing and initialization interfaces.
Added the videoSource parameter, which is the deviceId of a camera, to publish a stream from a specific camera (see main call interfaces 3 and 9).
Added the audioSource parameter, which is the deviceId of a microphone, to publish a stream from a specific microphone (see main call interfaces 3 and 9).
Added the aspectRatioStrongDepend parameter to specify whether to use a fixed aspect ratio (see main call interfaces 3 and 9).
Added the aspectRatio parameter for aspect ratio (see main call interfaces 3 and 9).
Added the file parameter to publish an image or video file (see main call interface 9).
Added the part_of_screen_id parameter to publish a specific page area (see main call interface 9).
Added the ChangeMediaStream interface for custom stream switching (see main call interface 37).
Added the ChangeProfile interface for dynamic switching of resolution, camera, microphone, and aspect ratio (see main call interface 38).
Added interfaces related to audio and video devices.
Added the GetDevices interface to get audio and video devices (see main call interface 39).
OnGetDevicesSuccess: The device information was obtained (see callback interface 77).
OnGetDevicesFailed: Failed to obtain the device information (see callback interface 78).
V 1.2.0
Browser recording
Main call interfaces
StartRecord: Starts browser recording (see main call interface 16).
StopRecord: Stops browser recording (see main call interface 17).
PauseRecord: Pauses browser recording (see main call interface 18).
ResumeRecord: Resumes browser recording (see main call interface 19).
DownloadRecord: Downloads the recorded audio and video from the browser (see main call interface 20).
Callback interfaces
OnClientStartRecordSuccess: Browser recording started (see callback interface 67).
OnClientStartRecordFailed: Failed to start browser recording (see callback interface 68).
OnClientStopRecordSuccess: Browser recording stopped (see callback interface 69).
OnClientStopRecordFailed: Failed to stop browser recording (see callback interface 70).
OnClientPauseRecordSuccess: Browser recording paused (see callback interface 71).
OnClientPauseRecordFailed: Failed to pause browser recording (see callback interface 72).
OnClientResumeRecordSuccess: Browser recording resumed (see callback interface 73).
OnClientResumeRecordFailed: Failed to resume browser recording (see callback interface 74).
OnClientDownloadRecordSuccess: The browser recording was downloaded (see callback interface 75).
OnClientDownloadRecordFailed: Failed to download the browser recording (see callback interface 76).
V 1.1.9
Added sessionId to ASR callback interfaces.
OnStartAsrSuccess: Speech recognition started (see callback interface 49).
OnStartAsrFailed: Failed to start speech recognition (see callback interface 50).
OnStopAsrSuccess: Speech recognition stopped (see callback interface 51).
OnStopAsrFailed: Failed to stop speech recognition (see callback interface 52).
OnAsrMessage: Notifies of the recognition result (see callback interface 53).
OnAsrMsgIdle: Notifies that no result has been returned for a long time (see callback interface 54).
V 1.1.8
Removed the `asr` suffix from the UID in ASR connections (internal SDK update).
V 1.1.7
ASR-related information.
Notes:
The tag is a pass-through parameter for your business.
The status indicates whether the session has ended. A value of 0 means the session has not ended. A value of 1 means the final result after the session has ended.
StartAsr: Added the tag pass-through parameter to the config (see main call interface 30).
OnStartAsrSuccess: Added the tag return parameter (see callback interface 49).
OnStartAsrFailed: Added the tag return parameter (see callback interface 50).
OnStopAsrSuccess: Added the tag return parameter (see callback interface 51).
OnStopAsrFailed: Added the tag return parameter (see callback interface 52).
OnAsrMessage: Added two parameters. The interface changed from OnAsrMessage(msg, sid) to OnAsrMessage(msg, sid, tag, status) (see callback interface 53).
OnAsrMsgIdle: Added the tag return parameter (see callback interface 54).
Fixed an issue with concurrent ASR startup.
TTS-related updates
StartTts: Starts speech synthesis (see main call interface 35).
StopTts: Stops speech synthesis (see main call interface 36).
OnStartTtsSuccess: Speech synthesis started (see callback interface 64).
OnStartTtsFailed: Failed to start speech synthesis (see callback interface 65).
OnTtsResult: Returns the speech synthesis result (see callback interface 66).
Recording-related updates
Adjusted default recording parameters (see main call interfaces 3 and 21).
If recordTotalStream is 0, the default value of startTimeout is 10s.
If recordTotalStream is not 0, the default value of startTimeout is 5 minutes.
startTimeout priority: The value you specify takes precedence over the default value.
V 1.1.6
Updated the ASR domain name for the production environment.
V 1.1.5
A pop-up window is now displayed for Chrome versions earlier than 67.
Adjusted the publishing resolution options:
1: 720p (HD), 1280 × 720, 16:9.
2: VGA, 640 × 480, 4:3.
3: 360p (nHD), 640 × 360, 16:9.
4: CIF, 352 × 288, 4:3.
When publishing, the SDK attempts to capture video at the preceding resolutions first. If the browser does not support them, the browser's default resolution is used.
When access to a device fails, an alert pop-up window now displays the reason.
Adjustments to server-side recording:
Startup timeout (startTimeout): The range is 3s to 10s. The default is 5s.
Recording start success criteria (recordTotalStream): The number of successfully subscribed streams. The default is 0. The previous default was 2, which meant both parties were successfully recorded.
Added the OnInitRecordSucc interface for successful initialization of server-side recording (see callback interface 63). Note: Under normal circumstances, after you start a recording, OnInitRecordSucc is called first, followed by OnStartRecordSucc. The time interval between these two callbacks depends on your setting for recordTotalStream.
Fixed a state management vulnerability through internal ASR optimization.
V 1.1.4
Fixed an issue of inaccurate recognition through internal ASR optimization.
V 1.1.3
Internally optimized the recording notification callback in the SDK.
ASR recognition result: Improved the description. The format is now determined by procType (see callback interface 53).
V 1.1.2
Added a video-on-demand notification feature. The vodParams parameter was changed in the StartVod interface (see main call interface 32).
Added a recording notification feature. Two properties were added to the recordParam parameter in the InitRoomConfig and StartRemoteRecord interfaces: startTimeout and recordTotalStream (see main call interfaces 3 and 21).
Added the OnRecordingFailed interface for recording interruptions (see callback interface 62).
Changed the default audio sampling rate (sampleRate) for recordings from 24000 to 48000 (see InitRoomConfig and StartRemoteRecord).
Deprecated the OnRecordInfo interface. Use OnStartRecordSucc instead (see callback interface 32).
V 1.1.1
Fixed an ASR signature verification failure (internal SDK change, no interface change).
V 1.1.0
Fixed an issue where the camera was not turned off after leaving a channel (internal SDK change, no interface change).
V 1.0.9
Added the OnStartAsrFailed interface for failed speech recognition startup (see callback interface 50).
Renamed the speech recognition result interface from OnAsrMsg to OnAsrMessage (see callback interface 53).
Added the procType parameter for DPI engine type to the speech recognition start interface (see main call interface 30).
Renamed the server-side recording end notification interface from OnRecorderOver to OnRecordOver (see callback interface 61).
Added the video_profile_type parameter for video definition (see main call interfaces 3 and 9).
Added the sid parameter to the weak network callback interface (see callback interface 48).
Deprecated interfaces related to instruction messages (see main call interface 27 and callback interfaces 41 to 44).
V 1.0.8
Added a feature to report and save error logs locally (see main call interface 34).
V 1.0.7
Added a speech recognition feature (see main call interfaces 30 to 31 and callback interfaces 49 to 54).
Added a voice-on-demand feature (see main call interfaces 32 to 33 and callback interfaces 55 to 59).
Added support for custom screenshot file formats (see main call interface 15).
Added a real-time volume visualization feature (see the need_volume_analyser field in main call interfaces 3, 9, and 10, and callback interface 60).
Added a notification callback for the end of a server-side recording (see callback interface 61).
Added the sid parameter to the audio and video shutdown notification interface (see callback interface 30).
Added the channelType parameter to the invite-to-join-channel feature (see main call interface 6).
V 1.0.6
Modified the weak network frequency alert for publishing (see main call interface 28, SetPublishWeakBitrateLimit).
Added a weak network frequency alert for subscriptions (see main call interface 29, SetSubscribeWeakBitrateLimit).
Added the leaveType exit parameter to the exit callback (see callback interface 45, OnLeaveRoom).
Added the recordParam parameter to start server-side recording (see main call interface 21, StartRemoteRecord).
Added an exit type parameter (see callback interface 46, OnParticipantLeaveRoom).
Added server-side recording parameters recordParam and recordStrongDepend (see main call interface 3, InitRoomConfig).
V 1.0.5
Added an interface to get recording information (see GetRecordInfo).
Added a callback for successfully getting server-side recording results (see OnRecordInfoSucc).
Added a callback for failing to get server-side recording results (see OnRecordInfoFailed).
Added an exit type parameter to OnParticipantLeaveRoom (see callback interface 46).
Added the defaultRecord parameter to specify whether to record on the server (see main call interface 3, InitRoomConfig).
V 1.0.4
Added a feature to publish a shared desktop.
Added a weak network callback interface (see callback interface 46).
Added a setting for the lower limit of the weak network bitrate alert (see main call interface 27).
Added the publish_device parameter to identify the publishing type (see main call interfaces 3 and 9).
V 1.0.3
Added support for rewriting signatures on the page (see callback interface 3).
If you do not specify the width and height for a screenshot, the width and height of the video window are used by default.
Set default values for the width and height parameters of the TakePicture() interface (see main call interface 15).
For server-side recording, if you stop a recording that is not in progress, the call returns directly (see main call interface 22).
Added an optional parameter for the server-side recording path to the StartRemoteRecord interface (see main call interface 21).
Changed publish_video_id from required to optional based on the media_type (see main call interfaces 3 and 9).
Added the optional filePath parameter for the server-side recording path to the StartRemoteRecord interface (see main call interface 21).
Removed the feed parameter from the OnSubscribeFailed(sid, err_code, err_msg) interface (see callback interface 23).
If you publish an audio-only stream, the sid is the name value of publish_streamId_id. For more information, see meeting.html.
Added the optional filePath parameter for the server-side recording path to the InitRoomConfig interface. The recordId is returned through the OnRecordInfo interface callback (see main call interface 3 and callback interface 32).
V 1.0.2
Added a recording feature: main call interfaces 16 to 22 and callback interfaces 31 to 35.