Video Call
  • iOS
  • Android
  • Web : JavaScript
  • Flutter
  • React Native
  • Electron
  • Unity3D
  • Cocos Creator
  • Windows
  • macOS
  • Linux
  • Overview
  • Develop your app
    • Integrate the SDK
    • Implement a basic video call
    • Enhance basic feature
      • Use Tokens for authentication
      • Check the room connection status
      • Set up common video config
      • Set up common audio config
  • Best practices
    • Implement a video call for multiple users
  • Upgrade using advanced features
    • Advanced features
      • Configure the video
        • Improve your appearance in the video
        • Configure video codec
      • Improve video quality
        • Visualize the sound level
        • Monitor streaming quality
      • Message signaling
        • Broadcast real-time messages to a room
        • Quotas and limits
      • Share the screen
      • Mix the video streams
      • Publish multiple video streams
      • Replace the audio/video track
    • Distincitve features
      • Join multiple rooms
      • Customize the video and audio
      • Set the voice hearing range
      • Render the audio and video
      • Autoplay policy
      • Restrictions on playing multiple videos simultaneously in Safari
      • Play streams via URL
      • Browser compatibility
      • Audio mixing
      • Vitrual Background and Blur
    • Implement a video call using frameworks
      • Implement a video call using Vue
      • Implement a video call using Angular
      • Implement a video call using React
  • Resources & Reference
    • SDK
    • Sample codes
    • API reference
      • Client APIs
      • Server APIs
    • Debugging
      • Error codes
      • Logging/Version number
    • FAQs
    • Key concepts
  • Documentation
  • Video Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2024-03-21 16:55

Version 3.3.0

Release date: 2024-03-21

New Features

1. Supports AI-balanced noise reduction mode.

Note: The current official SDK does not include this function. If necessary, please contact ZEGOCLOUD technical support for special packaging.

Support balanced AI noise reduction mode. Compared with the original mode, under the premise of the same human voice fidelity effect, the noise suppression effect is significantly improved, and can reach the level of clean and noise-free or non-disturbing; but the performance Consumption increased slightly. Suitable for noisy (low signal-to-noise ratio) outdoor environments such as streets, roads, markets, etc..

For related APIs, please refer to setAiDenoiseModeenableAiDenoise

2. Support mute all audio and video data when playing streams.

Added muteAllPlayAudioStreams and muteAllPlayVideoStreams interfaces. Local users can control whether to receive audio and video data from all remote users when playing streams.

Developers can individually control whether to receive specified audio and video streams through the mutePlayStreamAudio and mutePlayStreamVideo interfaces.

For related APIs, please refer to muteAllPlayAudioStreamsmuteAllPlayVideoStreams

Enhancements

1. Optimize the room switching logic in single room mode.

After the user successfully logs in to a room, if he does not log out of the room, log in to the room again, or directly log in to another room, the operation will be invalid or the login will fail, and a 1002001 error code will be returned.

For related API, please refer to loginRoom

2. Optimize the UI effect of Safari browser when the battery of iOS or macOS device is too low, so that the pause button no longer appears.

Bug Fixes

  1. Fixed the problem of occasional failure of dynamic retweet CDN.
  2. Fixed the problem of occasionally receiving duplicate SEI content or losing SEI content within a short period of time after the stream is successfully pulled.


Version 3.2.0

Release date: 2024-01-30

New Features

1. Add local proxy function.

Note: Before using this feature, please contact ZEGOCLOUD technical support to obtain the unified access service domain name, logger domain name, and other information required for the proxy server.

Support developers to use their own deployed Nginx and coturn servers as intermediate stations for SDK data, proxy access to ZEGOCLOUD backend services.

After enabling the local proxy function:

  • The SDK's HTTP and WebSocket request packets will be forwarded through the Nginx server.
  • The SDK's audio and video packets will be forwarded through the coturn server.

For related APIs, please refer to setCloudProxyConfigsetTurnServer

2. Support for obtaining audio PCM data.

Note: This API interface needs to be called after calling the startPlayingStream interface successfully. The PCM data retrieval will automatically stop after stopping play the stream. When replaying the stream, this interface needs to be called again to retrieve audio PCM data.

Support is provided for obtaining PCM data of audio through listening to audio data callbacks. Developers can process business logic based on the PCM data, such as integrating with third-party audio content filtering or generating subtitles.

For related API, please refer to setAudioFrameCallback

3. Before start mixing audios, support pitch shifting of audio data with media tags.

Note:

  • At the same time, only one type of audio processing, such as voice modulation, reverb, stereo, or pitch shifting, can be applied to the data of a <video> or <audio> tag. Multiple processing cannot be performed simultaneously.
  • For the same <audio> tag's data, if developers call setAudioChangerParam and enableLiveAudioEffect (both interfaces include a mode parameter for setting the audio effect mode), the audio effect mode will be determined by the interface called last.

Before start mixing audios, it is possible to modify the audio data of media tags (<video> or <audio>) using the setAudioChangerParam interface. For example, in a KTV solo singing scenario, this feature can be used to raise or lower the pitch of the accompaniment while keeping the vocals unchanged.

For related API, please refer to setAudioChangerParam

4. Mixed flow task supports input of super whiteboard information.

In the mixed-stream function, the operation content in the whiteboard can be converted into real-time video, and the whiteboard configuration information can be set, for example, the whiteboard ID, the whiteboard aspect ratio, and whether dynamic PPT loading is supported.

For related APIs, please refer to startMixerTaskZegoMixStreamConfig

5. Mobile devices support quick switching between front and rear cameras.

Newly added useFrontCamera interface, which is used to switch between the front and rear cameras on mobile devices. Compared to the previous version's mode of switching cameras using facingMode, the interface call is simpler.

For related API, please refer to useFrontCamera

Enhancements

1. Optimize the ZegoStreamView streaming rendering component.

In previous SDK versions, when a media file fails to play and triggers the autoplayFailed event callback, users need to call the ZegoStreamView.resume method to resume playback. Typically, this is done by prompting the user to click on a pop-up window on the webpage.

From this version, the ZegoStreamView stream rendering component has been optimized. When the media file fails to play and triggers the autoplayFailed event callback, the user can automatically resume playback by clicking anywhere on the webpage.

For related API, please refer to ZegoStreamView.play

2. Performance of using beauty and background blur functions simultaneously optimized.



Version 3.1.3

Release date: 2023-12-20

Bug Fixes

  1. Fixed the issue of SEI failure when publishing pure audio.
  2. Fixed the issue of adding a video track without video after enabling SEI publish for pure audio.


Version 3.1.2

Release date: 2023-12-13

Bug Fixes

  1. Fixed the problem that when creating a media stream of "capture audio only" or "capture video only" through the createZegoStream interface, the set audioBitrate and videoBitrate parameters did not take effect, so the default bitrate being used when publish streams.
  2. Fix other known issues.


Version 3.1.0

Release date: 2023-12-01

New Features

1. SDK supports setting cloud proxy

Note: If you need to use this function, please contact ZEGOCLOUD technical support.

By setting the cloud proxy interface of the SDK, all the traffic corresponding to the SDK is transferred through the cloud proxy server to achieve communication with the RTC.

For related API, please refer to setCloudProxyConfig

2. Support for non-continuous transmission of DTX audio.

Note: This feature is disabled by default and may affect audio quality when enabled. Please use it with caution.

Supports non-continuous transmission of DTX audio, which means that mute data (EnableMic, EnableMicDevice) is not sent during publishing streams. This reduces the audio bitrate during periods of silence and saves bandwidth to a certain extent.

For related API, please refer to startPublishingStream

Enhancements

New error codes have been added, which are thrown through the deviceError callback.

  • 1106007,the microphone is loose or there is abnormal collection caused by quick insertion and removal.
  • 1106008,the camera is loose or there is abnormal collection caused by quick insertion and removal.
  • 1106009,audio track collection is abnormal and stopped.
  • 1106010,video track collection is abnormal and stopped.

So, audio track collection abnormality 1106009, and microphone loosening or rapid plugging and unplugging 1106007, may be triggered successively; Same as 1106010 and 1106008.

2. The SDK package has been streamlined and compressed, reducing the package size to 1.7 MB.

3. Optimize the way of adding or deleting video tracks for publish-play streaming, reducing the latency and failure rate of adding or deleting video tracks.

4. Optimize scenario-based audio and video configuration ZegoScenario to improve user experience.

5. Optimize WebRTC publish-play streaming strategy to improve stability. At the same time, optimize negotiation process to reduce latency in streaming.

6. Optimize video's SEI

  • Optimize SEI performance to avoid stuttering issues when publish or play audio and video in certain situations.
  • Optimize SEI compatibility to support the following browsers:
    • Firefox 117 or above.
    • Safari 15.4 or above.
    • Android WeChat Browser.

For related APIs, please refer to sendSEIplayerRecvSEI

7. Optimize the SDK for playing compatibility on different devices.

In some devices where "video coding" or "audio coding" is not supported, the older version of the SDK would fail to play stream directly. Starting from this version, the SDK has been optimized for compatibility in playing streams on different devices:

  • On devices that do not support "video coding," only the audio stream will be played.
  • On devices that do not support "audio coding," only the video stream will be played.

For related API, please refer to startPlayingStream

8. Optimize multi-device login logic.

After the user successfully logs in on device A, device A loses network connection. Then, the user logs in successfully on device B using the same userID. If the network connection on device A is restored and a reconnection is attempted, it will fail and throw error code 1002050, indicating that the userID is already logged in another device.

9. Optimize server-side mixing and single-stream transcoding capabilities.

Optimize server-side mix streaming and single-stream transcoding capabilities to improve encoding efficiency and achieve a 5% or more increase in subjective and objective video quality at the same bitrate.



Version 3.0.1

Release date: 2023-10-27

Bug Fixes

  1. Fixed an issue where the page would crash on Safari of iOS 15.1 system after calling the createZegoStream interface and then publishing the stream.
  2. Fixed the problem that on Chrome of Windows system, calling the createRemoteStreamView interface to create a player component and switching the background will cause lag.


Version 3.0.0

Release date: 2023-10-19

New Features

1. Added new interfaces for creating and updating media streams, optimizing audio and video call logic

  • Express SDK version 3.0.0 optimizes the internal logic of the SDK, improves the stability of the SDK, the quality of audio and video calls, and the ease of use of the API interface. ZEGOCLOUD strongly recommends that you use the SDK version 3.0.0 or above.
  • The old version of createStream and a series of interfaces will be officially abandoned in version 3.0.0. Please update your code logic in time to avoid affecting the normal use of your business. For details, please refer to Upgrade guide v3.0.0+.

New interfaces such as createZegoStream and updatePublishingStream have been added. Developers can use this interface to generate ZEGOCLOUD streamObjects, which have the ability to replace or add audio and video tracks, preview, and stop collection and so on. Optimize the streaming process, shorten access time, and improve access experience.

Compared with previous versions of the createStream interface, SDK versions 3.0.0 and above will directly manage localStream (MediaStream), reducing the risk of publish and play stream failures.

For related APIs, please refer to createZegoStream, updatePublishingStream, ZegoLocalStream

2. Added ZegoExpressPlayer

A new ZEGOCLOUD self-developed Web ZegoExpressPlayer plug-in is added. After integrating the plug-in, it supports playing CDN live streams in H.265 and H.264 formats, and also supports common player control functions.

For related APIs, please refer to ZegoExpressPlayer

3. Added local stream-compositor

A new local stream-compositor is added. Developers can use this plug-in to mix images and sounds locally, merge multiple audio and video streams or page elements into one audio and video stream and then push the stream.

It is suitable for scenarios such as online education, online meetings, live broadcasts, show live broadcasts, game live broadcasts, etc.

For related APIs, please refer to ZegoStreamCompositor, createStreamCompositor

4. Supports removing the background outside the characters on the publisher's side

Note:

  1. To use this feature, please contact ZEGOCLOUD technical support.
  2. This function is recommended to be used in conjunction with stream-compositor.

It supports removing the background outside the characters on the streaming side, and cooperates with stream-compositor to realize portrait picture-in-picture, speaker mode, and immersive live broadcast delivery.

For related APIs, please refer to setTransparentBackgroundOptions

5. Added mixed flow sound wave callback

Note: To use this feature, please contact ZEGOCLOUD technical support.

When mixing streams, it supports enabling the sound callback for the specified stream; after enabling it, the sound information of the specified stream can be monitored when mixing the streams.

For related APIs, please refer to startMixerTask, autoMixerSoundLevelUpdate, mixerSoundLevelUpdate

6. Added reverb, virtual stereo, and in-ear reverb functions

Added preset reverb, virtual stereo, and the ability to configure in-ear reverb effects. Based on this, developers can achieve some audio pre-processing effects.

For related APIs, please refer to setReverbPreset, enableVirtualStereo

7. Supports setting tone parameters and controlling voice changing effect

Note: Reverb, virtual stereo, voice changing and other functions cannot be turned on at the same time, otherwise the effect may be abnormal.

Supports controlling the voice changing effect by passing in pitch parameters, which can be used to make interactions more interesting or protect user privacy.

The value range of pitch is [-12.0, 12.0]. The larger the value, the sharper the sound. When set to 0.0, it means turning off the voice changing effect.

For related API, please refer to setVoiceChangerParam

8. Supports obtaining local NTP timestamp

Supports obtaining the local NTP timestamp, which can be used to align the local time of multiple terminals. For example, it can be used to align song progress in a KTV chorus scene.

For related API, please refer to getNetworkTimeInfo

Enhancements

1. Optimize the publish-play streaming quality data callback interface and increase the supported call frequency.

The fastest call frequency of the publish-play streaming quality data callback interface has been increased from 3 to 1 second/time to increase the supported call frequency.

For related APIs, please refer to getPublishingStreamQuality, getPlayingStreamQuality

Bug Fixes

  1. Fixed the problem of abnormal rendering and sound after calling the [mutePublishStreamAudio] and [mutePublishStreamVideo] interface first, and then calling the [replaceTrack] interface to replace the audio and video track.
  2. Fixed an issue where an error would be reported if the [destroyEngine] interface was called immediately after initializing the engine.


Version 2.26.0

Release date: 2023-08-18

New Features

1. Support for Geofencing Function.

Note:

  1. To use this feature, please contact ZEGOCLOUD technical support.

  2. Please configure geofencing information before creating the engine.

Restrict access to audio, video, and signaling data to a specific area to meet regional data privacy and security regulations, which restrict users' access to audio and video services in a specific area.

For related API, please refer to setGeoFence

Enhancements

1. Optimize the sound wave algorithm, based on the sound wave monitoring can get more accurate volume.

For related API, please refer to soundLevelUpdate, capturedSoundLevelUpdate

2. Optimize scene-based audio and video configuration, and add "high-quality voice chat room" scene.

Optimize the scene-based audio and video configuration, support the HighQualityChatroom, which is suitable for music teaching and other language chat room scenes that require high sound quality.

For related API, please refer to setRoomScenario

3. Optimize the internal logic of the SDK to improve the call experience in a weak network environment.

Bug Fixes

  1. Fix the problem that the screen sharing does not save the video track, resulting in the problem that the view track is not destroyed when the stream is destroyed.
  2. Fix the problem that when the video is closed and the preview screen is kept, the problem of obtaining the stream quality is reported incorrectly.


Version 2.25.6

Release date: 2023-07-17

Bug Fixes

  1. Fix other known issues.


Version 2.25.5

Release date: 2023-07-03

New Features

1. Add audio track and video track detection interface

Added audio track detection interface checkAudioTrackIsActive, video track detection interface checkVideoTrackIsActive, developers can check whether the current audio and video capture is normal.

For related APIs, please refer to checkAudioTrackIsActivecheckVideoTrackIsActive

Bug Fixes

  1. Fix other known issues.


Version 2.25.2

Release date: 2023-06-15

Bug Fixes

  1. Fix the problem that when using the cloud recording function, the SDK's room user update callback roomUserUpdate will throw unexpected cloud recording robot user information
  2. Fix other known issues.


Version 2.25.1

Release date: 2023-06-08

New Features

1. Added an interface for destroying engine instances

Note: After this interface is called, other interfaces of the same instance cannot be called again. Developers are requested to leave this engine instance empty in time to avoid errors.

Added the interface destroyEngine to destroy the engine instance. This interface is called at the end of the SDK life cycle to reclaim the remaining internal resources of the engine and close redundant network connections.

For related APIs, please refer to destroyEngine

Enhancements

1. Optimize the quality of basic publish and play streams

  • Reduce the connection time consumption of basic publish and play streams by 20% to 30%, achieving faster publish and play streams and lower first frame time consumption.
  • Compared with the old version, the audio and video quality under weak network conditions has been optimized. Under the same weak network conditions, versions 2.25.0 and above provide higher quality sound and picture quality.

2. Compatible with RTCMediaStreamTrackStats deprecated by Chrome

Starting from version 112 of Chrome, RTCMediaStreamTrackStats is deprecated, causing the information returned in publishQualityUpdate, playQualityUpdate callbacks in the SDK to be affected. Affected fields include: videoTransferFPS, frameHeight, frameWidth, audioLevel, audioSendLevel, audioSamplingRate and other local and remote media information fields.

SDK versions 2.25.0 and above are compatible with RTCMediaStreamTrackStats to ensure the correctness and completeness of the information returned by the callback.

For related APIs, please refer to publishQualityUpdate, playQualityUpdate

Bug Fixes

  1. Fix the problem that room streams cannot be added in some weak network scenarios.
  2. Fix the problem that the SDK calculates the validity period of the Token incorrectly due to the wrong system time, thus triggering the tokenWillExpire callback.


Version 2.24.5

Release date: 2023-04-28

New Features

Note: If you need to use this function, please contact ZEGOCLOUD technical support.

Support to obtain copyright songs or accompaniment resources through the copyright music function, which can be used in chorus or background music scenes such as online KTV, Voice Chatroom, etc.



Version 2.24.0

Release date: 2023-04-23

New Features

1. Add background blur and virtual background function

Notice:

  • To use this function, please contact ZEGOCLOUD technical support.
  • This function is free for a limited time, and the free period is limited to 2023.06.30. If you need to apply for an extension of the free period or consult the official charging standard, please contact ZEGOCLOUD business personnel.

Express Web SDK 2.24.0 and above provide background blur and virtual background functions, which can separate the subject in the Video screen from the original picture, and blur the area outside the subject or replace it with a custom picture.

For related APIs, please refer to initBackgroundModule, setBackgroundBlurOptions, setVirtualBackgroundOptions, enableBackgroundProcess

2. The Stream Mixing interface supports adding pictures, text Watermark, and Video rounded corners to the input stream, and supports adding Watermark to the output stream

For related APIs, please refer to startMixerTask

3. Scope Voice supports custom setting of sounding mode and listening mode

Notice:

  • You can only choose one of the custom setting audio listening mode and the range voice mode of the old version, that is, it cannot be called together with the setRangeAudioMode interface.
  • Web custom sounding mode and listening mode only support interoperability with Express SDK 3.3.0 and above on iOS, Android, Windows, macOS, and Linux platforms.

Scope Voice supports custom setting of the sounding mode and listening mode. Users can decide who can hear his voice by selecting the sounding mode, and who can listen to his voice by selecting the listening mode.

For related APIs, please refer to setRangeAudioCustomMode

4. Added a hidden squad mode to range voice

ZegoRangeAudioMode Added the secret team mode SecretTeam, in this mode, users in the same room, the listener can communicate with the same team, and can also hear all the players within the Audio receiving range, And it is the voice of the speaker in the world mode, such as the scene of the game Werewolf in Space.

For related APIs, please refer to setRangeAudioMode

5. The web side supports triggering the networkQuality event, which is used to obtain the push-pull streaming quality of local users and remote users.

For related APIs, please refer to networkQuality

Enhancements

1. Optimize the Audio Mixing interface

When the startMixingAudio interface is called, after the src of the audio tag player that has been Audio Mixing is replaced, the SDK will automatically Audio Mixing without additional calls to the interface.

For related APIs, please refer to startMixingAudio, stopMixingAudio

2. Optimize the compatibility of the Voice Changer function and support the use of mobile terminals

For related APIs, please refer to setVoiceChangerPreset

3. Optimize the compatibility of AI noise reduction function and support the use of mobile terminals

For related APIs, please refer to enableAiDenoise

4. SEI function optimization, support conditional filtering without setting unregisterSEIFilter attribute

For the SEI content whose payloadType is 5, when the SEIPass parameter value of ZegoSEIConfig is set to true and unregisterSEIFilter is not set, all SEI sending and receiving will be released. When the SEIPass parameter value of ZegoSEIConfig is set to false (default value), only SEI content matching unregisterSEIFilter will be sent and received.

For related APIs, please refer to setSEIConfig

5. Optimize SEI switch anti-competition code processing

When sending SEI binary data, it may be the same as the fragmentation start identifier of the NALU in H264, resulting in an error in the NALU slice. Therefore, ZegoSEIConfig adds the emulationPreventionByte property to optimize the anti-competition code processing of the SEI switch, that is, to encode the content of the SEI data that is the same as the identifier, and then send it out, and decode it when the play streams receives it , which can effectively avoid this situation.

For related APIs, please refer to setSEIConfig

Bug Fixes

  1. Fix canPlayAudio and canPlayVideo events of ZegoStreamView are not triggered in iOS WeChat browser.
  2. Fix the occasional problem that the sound wave callback is not triggered and the playback has no sound when pulling 25 streams on a page.
  3. Fix the problem that when the startPlayingStream interface is changed from RTC to L3 play streams, it will take a long time to retry play streams.
  4. Fix the problem that switching devices does not take effect after some devices are plugged into an external Microphone.
  5. Fix the problem that some devices fail to refresh the page to recreate the stream.


Version 2.23.0

Release date: 2023-03-17

New Features

1. Add real-time Voice Changer function

Notice:

  • The Voice Changer function only supports the use of web pages on the PC side, and does not support the use of web pages on the mobile side for the time being.
  • To use this function, please contact ZEGOCLOUD technical support.

When users have privacy protection needs, or want to improve the fun of voice gameplay, and want to be able to change the voice in real time, they can use the real-time Voice Changer function.

For related APIs, please refer to setVoiceChangerPreset

2. Added exceptionUpdate callback to monitor collection, encoding, rendering exceptions and other issues

For related APIs, please refer to exceptionUpdate

Enhancements

1. Add the first frame playback event to the Web playback component

Added canPlayVideo and canPlayAudio events to the on interface of the Web media streaming component ZegoStreamView, respectively for listening to playback The first frame of the Video and Audio of the controller is played.

For related APIs, please refer to canPlayVideo, canPlayAudio

2. Optimized the internal strategy of the SDK, improved weak network and first frame performance.

Bug Fixes

  1. Fix the problem that when the setAudioMuted and play interfaces are used to turn off the Audio and play pure Video, it is still restricted by the browser's automatic playback, resulting in the failure to play.
  2. Fix the problem that the checkSystemRequirements interface cannot check whether the SDK uses HTTPS or localhost.
  3. Fix the problem that the roomStreamUpdate callback on the play streams side does not detect the new addition of the room stream when repeatedly logging in to a large room (the number of people in the room exceeds a certain size, for example, more than 500 people).
  4. Fix the problem that when Screen Sharing, some Safaris set the width and height parameters, resulting in an error in the collection.


Version 2.22.0

Release date: 2023-01-06

New Features

1. Support the function of adding or deleting audio and Video tracks after creating a stream.

Note: All audio and Video tracks cannot be removed, and the function of adding or deleting audio and Video tracks does not support the use of large and small streams.

Audio and Video support separate management. In the case of restricted (unauthorized) audio and Video permissions, after creating a stream with only audio or video tracks, you can add or remove audio and Video tracks in the stream according to subsequent permissions.

For example, initially there was only Microphone permission, so an Audio-only stream was created. However, during use, the user authorizes the Camera permission, so the user can add the Camera track to the existing stream, and the play streams end is not aware of this, and can smoothly switch from Audio rendering to audio and Video rendering.

For related APIs, please refer to addTrack, removeTrack

2. Scope voice supports getting the user list within the callback scope.

Range audio support obtains the list of users within the callback range through the enableAudioSourceUpdateChecker interface. When updating the listener or audio source location, the audioSourceWithinRangeUpdate callback can be triggered.

For related APIs, please refer to enableAudioSourceUpdateChecker, audioSourceWithinRangeUpdate

Enhancements

1. When the publish streams end stops pushing Video data, the support setting of the play streams end screen stays at the last frame.

When the publish streams end stops pushing Video data, the Video screen support setting of the play streams end stays at the last frame. Developers can flexibly choose whether to stay at the last frame or display a black screen according to business needs.

For related APIs, please refer to play

2. When creating a Screen Sharing stream, you can enable 3A configuration through parameters.

When creating a Screen Sharing stream, you can enable 3A configuration through the ANS, AGC and AEC parameters of the createStream interface. When creating Audio for a Screen Sharing stream, the default 3A configuration only has AEC turned on, and AGC and noise cancellation processing turned off.

For related APIs, please refer to createStream

Bug Fixes

  1. Fix the problem that the Safari browser causes abnormal device status due to permission issues.
  2. Fix the problem that the range voice switching speaker device interface fails.
  3. Fix the problem that when the resourceMode parameter of the startPlayingStream interface is configured as CDN, the CDN URL is empty when playing a non-room stream.


Version 2.21.0

Release date: 2022-11-25

New Features

1. Added the function of setting room scene

​Note:

In order to facilitate developers' quick access and lower the developer's access threshold, the SDK provides a variety of Preset scenarios. Developers can select the corresponding room mode according to the required scene, and the SDK will automatically apply the audio and Encoding & Decoding, audio and Video parameters, flow control strategy and other configurations suitable for the scene, so as to quickly achieve the best effect in the scene.

​Currently supported scenarios include Live Video Streaming, standard 1v1 audio and Video Calling, high-quality 1v1 audio and Video Calling, and standard Voice Chatroom.

For related APIs, please refer to setRoomScenario, ​createStream​​ ​

2. Added AI noise reduction function to range voice stream

​Note:

  • If you want to use this function, please contact ZEGOCLOUD technical support for special packaging.
  • AI noise reduction requires a special package and is set through the ZegoExpressRangeAudio.enableAiDenoise interface. It is not set together with 3A and other Audio-related parameters and is independent of each other.

The scope voice stream supports turning on the AI ​​noise reduction function. In the call scene, all sounds except human voices are recognized as noise and eliminated. On the basis of eliminating steady-state noise, effectively eliminate unsteady-state noise and achieve high-fidelity human voice. The main noises include mouse, keyboard, knocking, air conditioner, kitchen dishes, noisy restaurant, ambient wind, coughing, blowing, etc. Non-human noise.

​Related API please refer to ZegoExpressRangeAudio.enableAiDenoise ​ ​ ​

3. Range Voice supports custom play streams, and supports Audio files as the sound source, and supports setting the sound range and sound source position

Note: The mobile web platform does not support enabling spatial AudioEffect due to compatibility issues, but the range Controller effect is still available. ​ ​For related APIs, please refer to setStreamVocalRange, updateStreamPosition, setCustomSourceVocalRange, updateCustomSourcePosition

Bug Fixes

1. After calling the mutePublishStreamVideo and mutePublishStreamAudio interfaces, when using the Safari browser to play streams, the play streams end page that must appear will flash for a while.

2. Fixed the problem that when the user uses the Chrome58 browser, the Express SDK calls the startPublishingStream method with a compatibility problem and an error occurs, resulting in the problem that the publish streams does not continue

3. Fixed the problem that the voice and ZegoStreamView media stream playback components were preempted by other software audio on the iOS Safari browser, and the playback was interrupted. After the preemption, the playback was not resumed.



Version 2.20.2

Release date: 2022-11-04

Enhancements

1. The node retry logic and multi cluster minimum guarantee strategy of push and pull streams.

Bug Fixes

1. Fixed the problem that the SDK relies on the browser's network status ID during network detection, resulting in login failure.



Version 2.20.1

Release date: 2022-10-27

New Features

1. Support live play streams using CDN Plus

NOTE: To use this feature, please contact ZEGOCLOUD Technical Support.

Seamless integration of ultra-low latency L3 live broadcast and CDN, real-time diagnosis of viewers' Video stream quality problems and intelligent adjustment, to improve viewers' live broadcast viewing experience, weak network resistance is significantly better than CDN, this function can be enabled through SDK Controller, and at the same time The startPlayingStream interface adds the enumeration value of ZegoWebPlayOption.resourceMode to 3.

For related APIs, please refer to startPlayingStream

2. Support to enable Video hardware encoding function

Note: Since there are some abnormal problems in the hardware encoding of a small number of devices, the SDK uses the software encoding method by default.

A new interface for enabling Video hardware encoding enableHardwareEncoder has been added. Developers can enable this configuration to improve encoding efficiency.

Developers can choose whether to enable this switch according to the support of the model, and can check the ZegoPublishVideoStats.isHardwareEncode logo through the publish streams quality interface publishQualityUpdate to confirm the current hardware encoding is enabled or off state.

If the hardware encoding is not publish streams after calling the interface for enabling Video hardware encoding, it means that the device does not support the hardware encoding function.

For related APIs, please refer to enableHardwareEncoder, ZegoPublishVideoStats.isHardwareEncode

3. Screen Sharing supports custom setting of minimum bit rate minBitrate and keyframe interval keyFrameInterval when creating media stream

When creating a media stream for Screen Sharing, the SDK will automatically select the corresponding optimal bit rate range and key frame interval according to the actual resolution, frame rate and other Video configurations, which can meet most scenarios. If the developer has a special scenario and wants to set it by himself, he can call the createStream interface to set the minimum bit rate minBitrate and the keyframe interval keyFrameInterval:

  • Minimum bitrate minBitrate, in kbps, when the network condition is poor, the minimum bitrate of acceptable Video quality degradation. If the network condition is poor:
  • For developers who require high-quality Video without fluency, minBitrate can be set to a value close to the target bitrate.
  • When developers do not have high requirements for Video quality, they can set minBitrate to a lower value.
  • Keyframe interval keyFrameInterval, in seconds. Screen Sharing can reduce the performance pressure of Video encoding by increasing the interval of key frames, but it will affect the smoothness, so it is not recommended to adjust this parameter arbitrarily. The current default value: 2 seconds, the value range: [2, 6], the required value is an integer.

For related APIs, please refer to createStream, ZegoScreen.keyFrameInterval, ZegoScreen.minBitrate, ZegoCamera.keyFrameInterval, ZegoCamera.minBitrate

4. When the used device is removed, it supports automatic switching of available devices

A new interface for enabling automatic switching devices enableAutoSwitchDevice is added. You can call this interface to enable the automatic switching device switch. When the current device is removed, the SDK will automatically switch to the first device according to the device list in the browser. equipment. Due to version compatibility, this switch is disabled by default, and it is recommended that users turn this switch on.

For related APIs, please refer to enableAutoSwitchDevice

Enhancements

1. Optimize the sound wave callback function

Optimized the original sound wave callback implementation to improve the compatibility and performance of the sound wave callback function.

Bug Fixes

  1. Fix the problem that the room attachment message cannot be received if the sender exits and immediately re-enters the room after the sender sends the room attachment message.
  2. Fixed the problem of repeated error reporting when the push-pull stream failed to retry.
  3. When the SDK implements the In-game Voice Chat function, there is no sound or noise in some devices or browsers when play streams and switching to the background.
  4. Fixed roomStreamUpdate] in some cases, the deletion information of the stream launched by the local end will be called back.
  5. Fix the problem that the SDK thinks the network is disconnected and prevents the room from being logged in because the browser's navigator.onLine is incorrectly marked as false.


Version 2.19.0

Release date: 2022-09-09

New Features

1. Added AI noise reduction function

Note:

  • To use this function, please contact technical support for special programming.
  • Before calling the enableAiDenoise interface, please call the createStream interface to create a media stream.
  • The AI noise reduction function is only supported on the PC-side web platform, and the mobile-side web platform is not currently supported. Theoretically, the AI noise reduction function is supported on Google Chrome 66.0, Edge 79.0, FireFox 76.0 and Safari 14.1 and above, but to ensure the stability of the AI noise reduction function, it is recommended that you use the latest versions of Google Chrome and Edge browsers .
  • The current AI noise reduction function only supports noise reduction for a single stream, and cannot perform noise reduction for multiple streams at the same time.

ZEGO Express Web SDK provides AI noise reduction function, developers can perform noise reduction processing on the sound when using the microphone to collect sound. On the basis of traditional noise reduction to eliminate steady-state noise, synchronously processes non-steady-state noise (including mouse click, keyboard, percussion, air conditioner, kitchen dishes, restaurant noise, ambient wind, cough, non-human noises such as blowing sound), retain pure voice, and improve the user's call experience.

For related APIs, please refer to enableAiDenoise

2. After the device is unplugged, it can automatically switch to other devices

​​ In the process of using push-pull flow, after the collection device is pulled out, it can automatically switch to the first device in the current collection device list.​ ​

3. Range Voice Support Switching Speakers

Note:Currently, only the Google Chrome browser on the PC side is supported.

Added ZegoExpressRangeAudio.selectSpeaker interface to specify the speaker device for range audio playback.

​For related APIs, please refer to selectSpeaker

4. Added a new interface for setting the playback volume of the range voice

Added the ZegoExpressRangeAudio.setRangeAudioVolume interface, which is used to set the audio playback volume in the range. The settable range is [0,200], and the default value is 100.

For related APIs, please refer to ZegoExpressRangeAudio.setRangeAudioVolume

Enhancements

1. Optimize the capture volume function of the setCaptureVolume interface

The setCaptureVolume interface supports volume gain based on the original captured volume. The gain interval is adjusted from [0,100] to [0,200]

For related APIs, please refer to setCaptureVolume

2. Push-pull streaming quality data increases the duration of the audio and video freezing rate

​​ In the playerStateUpdate callback interface, supplement the indicator information related to the freeze. The fields are defined as follows:

  • audioCumulativeDecodeTime:Accumulated audio decoding time, unit: ms.
  • audioCumulativeBreakTime:Accumulated audio freeze duration, unit: ms.
  • audioCumulativeBreakRate:Accumulated audio freeze rate, the value range is 0.0 ~ 1.0.
  • videoCumulativeDecodeTime:Cumulative video decoding time, unit: ms.
  • videoCumulativeBreakTime:Cumulative video freeze duration, unit: ms.
  • videoCumulativeBreakRate:The cumulative video freeze rate, the value range is 0.0 ~ 1.0.

​For related APIs, please refer to playerStateUpdate

3. Optimized range voice location update function

Range speech support sets how often the location is updated in real-time inside the SDK.

​For related APIs, please refer to ZegoExpressRangeAudio.setPositionUpdateFrequency

Bug Fixes

  1. After the v2.17.0 version, the setVideoConfig interface part must be selected.
  2. Fix the problem that the screen sharing setting start bit rate does not take effect.
  3. Fixed the issue that the stream of the original room was not stopped when the range voice switched rooms.


Version 2.18.0

Release date: 2022-08-05

New Features

1. Support large and small flow function

Note: The streamType parameter of the startPlayingStream interface currently does not support modification during streaming.

In order to provide users with different network statuses with a better playback experience, the Express SDK supports the configuration of streams with different resolutions on the streaming end, which is suitable for multi-person calls, monitoring, and weak network scenarios. In a multi-person session, you can tile and view the small images of each user, or zoom in to view individual user images.

  • Publisher: Support to enable small and large streams and configure small stream resolution settings through the enableDualStream, setLowStreamParameter interfaces respectively.
  • Player: Supports setting the streaming type through the streamType parameter of the startPlayingStream interface. You can use this interface to choose to pull large streams, small streams, or configure the automatic mode. In the automatic mode, when the downlink network of the streaming end is poor, the small stream is automatically pulled to ensure the smoothness of the user's playback.

For related APIs, please refer toenableDualStream,setLowStreamParameter,startPlayingStream

2. Support Snapshot function

Use the takeStreamSnapshot interface of the media streaming component to take Snapshot of the publish streams Preview and play streams rendering screen respectively.

For related APIs, please refer to takeStreamSnapshot

3. Low Light Enhancement

When the surrounding environment of the host is dark and affects the viewing experience of the audience, the publish streams end can set the low-light enhancement through the setLowlightEnhancement interface to improve the picture brightness of the publish streams Video. The Low Light Boost feature consists of two modes:

  • 0: Disable low-light enhancement (default).
  • 1: Turn on low light enhancement.

For related APIs, please refer to setLowlightEnhancement

Enhancements

1. Optimize the login success rate

Optimize the domain name connection strategy, when the default domain name connection fails, retry the alternate domain name.

Bug Fixes

  1. Fix the issue that occasional stream deletion events are lost.
  2. Fix the problem that different platforms use the same SteamID to publish streams abnormally.
  3. Fix the problem that the quality of push-pull flow is still excellent when the network is disconnected.
  4. Fixed the problem that the publish streams static image was abnormal when the Google Chrome browser was used to switch tabs.
  5. Fixed the problem that the resolution width and height obtained by the push-pull stream of the Firefox browser are 0.
  6. Fixed the problem that there is no sound in the range voice.


Version 2.17.1

Release date: 2022-07-12

Bug Fixes

  1. Fix the lack of related dependencies when npm was introduced.

Version 2.17.0

Release date: 2022-07-08

New Features

1. Add MediaStream media streaming component

The newly added MediaStream media stream playback component has the ability to play media and manage playback, simplifying the user access process and management process.

For related APIs, please refer to createLocalStreamView, createRemoteStreamView, ZegoStreamView

2. The range voice function supports custom selection of Microphone

When using the range voice capability, you can specify a Microphone. Obtain the Microphone device through getMicrophones, and then call ZegoExpressRangeAudio.selectMicrophone to specify the Microphone device through deviceID.

For related APIs, please refer to selectMicrophone

3. The range voice function supports AEC

The range voice supports the AEC function. When the user turns on the device to speak, the Microphone may pick up the sound of the far end, and the AEC function will eliminate the possible echo noise.

For related APIs, please refer to enableSpeaker

Note: When setting the constraint parameters for the resolution of the obtained media stream, it is not recommended to use too low parameters for constraint (the resolution setting is less than 100x100), otherwise the publish streams may fail or the stream cannot be pulled.

When selecting videoQuality as 4 and setting width, height and frameRate, you can set an optional constraint object, including four configuration items of exact, ideal, max and min, so as to set the configuration of width, height and frameRate of the media stream respectively:

  • exact: Strictly specify the final output value of the acquisition device. If the device does not support the specified value, the acquisition will fail.
  • ideal: Expect the final output value of the collection device. If the device does not support the specified value, it will try to output the closest value.
  • max: The upper limit of the final output value of the collection device.
  • min: The lower limit of the final output value of the acquisition device.

For related APIs, please refer to createStream, setVideoConfig, ZegoPublishStreamConfig, ZegoCamera, ZegoScreen

Enhancements

1. Added abnormal event callback for Beautify function

Added the event callback for abnormal Beautify function, involving the following Error Codes:

  • 1103072: The browser does not support WebGL, it may appear during startup or running, and the SDK will turn off the Beautify.
  • 1103074: The current video track does not support enabling Beautify. When an error is reported during startup, the SDK will disable Beautify.
  • 1103075: The Beautify function is overloaded. At this time, the screen will freeze, and the SDK will not turn off the Beautify function. The developer can decide whether to turn off the Beautify function.

For related APIs, please refer to beautyEffectError

2. Scope voice listening range judgment optimization

Increase the frequency of judging whether the range voice function exceeds the listening range (currently 1 second), so that the developer can more sensitively judge whether there is sound after calling the interface to update the position.

Bug Fixes

  1. Fixed the problem that the frame rendering task is abnormal when the beauty leaves the screen and then returns to the page, resulting in an abnormal increase in the frame rate for a period of time.
  2. Fixed an issue where the range voice function may not receive the sound of the audio source after moving its position to the range of the audio source when the 3D AudioEffect is turned on.
  3. Fixed the problem that the return value of the resumeEffect interface of the Audio Effect Player function is incorrect, the parameter of the setEffectVolume interface to set the Volume size is incorrect, and the stopEffect interface may stop other AudioEffect by mistake.

Version 2.16.1

Release date: 2022-06-10

Bug Fixes

  1. Fixed an issue where type verification errors may occur when importing SDK using TypeScript due to missing declaration files

Version 2.16.0

Release date: 2022-05-11

New Features

1. Added send SEI function

SEI (Media Supplementary Enhancement Information) is the supplementary enhancement information (such as text information) in the H.264 encoded Video . It is used to transmit some information in the Video stream to the opposite end during a Video Calling , so that the picture and additional information can be accurately aligned. . Commonly used for live answering questions, lyrics synchronization and other scenarios.

After the developer publish streams successfully, he can call the sendSEI interface to send the SEI information, and the peer end will trigger the playerRecvSEI callback after receiving the SEI information sent by the publish streams end when play streams .

For related APIs, please refer to sendSEI, setSEIConfig, playerRecvSEI, startPublishingStream, startPlayingStream

2. Added room state change notification roomStateChanged

When the connection state of the room changes, the roomStateChanged callback will be triggered, and the "ZegoRoomStateChangedReason" parameter will provide more detailed connection state and state change reasons.

In version 2.16.0 and above, it is recommended to use the roomStateChanged callback instead of the roomStateUpdate callback to monitor room state changes.

For related APIs, please refer to loginRoom, logoutRoom, roomStateChanged

Enhancements

Set the audio and Video configuration interfaces setVideoConfig and setAudioConfig to support calling in the Preview stage from version onwards, you can modify the resolution, frame rate, bit rate, Audio of the Video before the publish streams is successful 3A and other parameters.

The interfaces related to the Audio Mixing function startMixingAudio, stopMixingAudio and setMixingAudioVolume support calling in the Preview stage since version 1.

Audio Effect Player ZegoAudioEffectPlayer instance methods, such as start, stop, pause, etc., starting from this version, support in Called in the Preview phase.

The above interfaces in 2.15.0 and earlier versions only support calling after successful publish streams.

For related APIs, please refer to setVideoConfig, setAudioConfig, startMixingAudio, stopMixingAudio, setMixingAudioVolume, ZegoAudioEffectPlayer

Bug Fixes

  1. Fixed the issue that calling the setAudioConfig interface would cause the Volume setting of the setCaptureVolume interface to fail.
  2. Fixed the problem that the roomStateUpdate state callback (the state should be "DISCONNECT" at this time) is not triggered when the Token passed in through the loginRoom interface is called incorrectly.
  3. Fixed the issue that when the Firefox browser publish streams calls mutePublishStreamVideo to close the video track, the last frame of the play streams end screen will be stuck, and the screen will be closed after 1s to 3s.
  4. Fixed an issue where the tokenWillExpire event callback would be triggered immediately after logging in with a token with a remaining validity period exceeding 2147483647ms.


Version 2.15.0

Release date: 2022-04-08

New Features

1. Added audio file player function

Sound effects refer to short sound effects played to enhance the sense of realism or to enhance the atmosphere of the scene, such as applause, gift sound effects, prompt sounds, etc. during live broadcasts; in games, bullet sounds and collision sounds are played. ZegoExpress SDK provides a sound file player, which manages the sound effects on the media stream in a unified manner through ZegoAudioEffectPlayer, supports sound playback (multiple sound effects can be overlapped), playback control (such as pause playback, volume adjustment, set playback progress), preload sound effects and other functions.

For related APIs, please refer to createAudioEffectPlayer, loadAudioEffect, unloadAudioEffect

2. Support to enable or disable the camera capture function

After creating the camera media stream, call the enableVideoCaptureDevice interface, and set the "enable" parameter to enable or disable the camera capture function. For example, when the host does not want the streaming end to see the camera picture during a certain period of time, and does not want the camera device to be occupied all the time, it can be set to off.

For related APIs, please refer to enableVideoCaptureDevice

3. Support active access to push stream quality and pull stream quality

Developers can actively obtain the quality of push and pull streams (including resolution, frame rate, bit rate, etc.) to understand the quality status of the current stream, so as to perform related business operations such as UI display. After the stream is pushed successfully, call the getPublishingStreamQuality interface to actively obtain the stream quality that is being pushed. After the stream is pulled successfully, call the getPlayingStreamQuality interface to actively obtain the stream quality of the stream being pulled.

For related APIs, please refer to getPublishingStreamQuality, getPlayingStreamQuality

4. Support setting the specified speaker to play sound

After obtaining the list of audio output devices through the getSpeakers interface, call the useAudioOutputDevice interface, set the media label element (<audio> or <video>), and pass the Enter the deviceID (obtained through the getSpeakers interface), and use the corresponding speaker device to play.

For related APIs, please refer to useAudioOutputDevice

5. Support to push still pictures when the camera is closed

When the camera is turned off, it supports continuous push of still pictures in JPEG/JPG, PNG and other formats. For example, when the host exits the background, the camera will be automatically turned off. At this time, the audience side needs to display the picture of the host leaving temporarily. After initializing the SDK, set the path of the still image to be pushed through the setDummyCaptureImagePath interface before closing the camera. After the normal push is started, it will start when the camera is closed by calling the mutePublishStreamVideo interface. To push a still image, calling the mutePublishStreamVideo interface to open the camera will end pushing the still image.

For related APIs, please refer to setDummyCaptureImagePath, mutePublishStreamVideo

Enhancements

1. Support login and pull stream parallel operation

Supports the parallel operation of login and streaming, that is, after calling the loginRoom interface, the startPlayingStream interface can be called immediately (the stream ID needs to be specified), which is used to achieve faster pull-in Stream playback effect.

2. Added 1001004 error code

When the AppID is incorrect, an error code of 1001004 will be thrown, indicating that the authentication failed. At this point, you need to check whether the incoming AppID is consistent with the AppID in the ZEGOCLOUD console.

3. Added 1002036 error code

When the multi-room function is not enabled, calling the loginRoom interface will throw an error code of 1002036, indicating that the login fails. Please contact ZEGOCLOUD technical support to enable this function.

4. Added 1101002 error code

When getting the streaming media configuration fails, the error code 1101002 will be thrown, please contact ZEGOCLOUD technical support.

5. Added 1104039 error code

When the "streamID" passed in when calling startPlayingStream does not exist, the error code 1104039 will be thrown. Please confirm whether the "streamID" is correct.

6. Turn on the sound wave callback interface to stop getting the sound wave when the page is hidden

When calling the setSoundLevelDelegate interface, the "options.enableInBackground" parameter can be used to set whether to keep the sound wave and callback sound wave when the page is hidden. When "options.enableInBackground" is set to "false", the SDK will turn off the acquisition of sound waves when the page is hidden to reduce performance consumption.

For related APIs, please refer to setSoundLevelDelegate

7. Support to modify the video quality level of the push stream

Call the setVideoConfig interface to dynamically modify the video quality level "videoQuality" of the push stream.

For related APIs, please refer to setVideoConfig

Bug Fixes

  1. Fixed the issue that when a pure camera video stream was created but the microphone was not captured, the callback for capturing sound waves would also be triggered.
  2. Fixed the issue that the value of "audio.AudioFPS" in the streaming quality packet was displayed as NaN when streaming using the Firefox browser.


Version 2.14.0

Release date: 2022-03-09

New Features

1. Support to get the list of required media devices

Added [getCameras] interface to get the list of Video input devices, [getMicrophones] to get the list of Audio input devices, and [getSpeakers] to get the list of Audio output devices. The difference from the [enumDevices] interface is that the above 3 newly added media device lists will pop up a prompt box for the corresponding device permission acquisition when the page does not grant device permissions, and there is no need to call [createStream] or [checkSystemRequirement] in advance. .

For related APIs, please refer to getCameras, getMicrophones, getSpeakers, enumDevices

  • Due to the browser's protection of security and privacy, the page needs to call the [getCameras], [getMicrophones], [getSpeakers] interfaces in a secure environment (https, localhost, 127.0.0.1). For the privacy protection protocol, please refer to Privacy and security.

  • In the case of no device permission granted to the page, calling the [getCameras] interface will temporarily open the Camera/[getMicrophones] interface will temporarily open the Microphone to trigger the browser's application for Camera and Microphone device permissions. On browsers such as Chrome 81+, Firefox, Safari, etc., accurate device information cannot be obtained without media device permissions.

Enhancements

1. The loginRoom and renewToken interfaces support the use of "token04" version Tokens

Bug Fixes

  1. Fixed an issue where the browser could not get the Audio -related quality parameter totalSamplesReceived when the play streams setting only pulled the Video but not the Audio , which caused the SDK to report an error.

  2. Fixed a bug where the start of publish streams will be blocked and the Error Codes 1103073 will be thrown if the Beautify has not yet taken effect, indicating that the developer cannot publish streams during the Beautify activation process.

  3. Fixed the problem that the Microphone status becomes true after pushing the pure Video stream after setCaptureVolume.

  4. Fixed the issue that when the user server calls the RTC server API to send the room additional message, the sender triggers the callback of the room additional message sent by the user.

  5. In version 2.13.0, before the Beautify on, the probability of calling the startPublishingStream publish streams interface will cause an unclear error report. On version 2.14.0, calling startPublishingStream before the Beautify is enabled will throw Error Codes 1103073, indicating that the timing of the publish streams timing of the API call is wrong.

  6. After the SDK stops the push-pull stream, the log error message related to websocket will appear.



Version 2.13.0

Release date: 2022-01-11

New Features

1. Added basic Beautify function

ZEGO provides basic Beautify functions to show users a good skin condition and create a natural Beautify effect. Developers can call the setEffectsBeauty interface to adjust the degree of Whiten, Polish, Sharpen, and ruddy after obtaining the media stream in createStream to achieve basic Beautify capabilities.

This function is often used in scenarios such as Video Calling and live broadcasts.

For related APIs, please refer to setEffectsBeauty

Bug Fixes

  1. Fixed the issue of calling mutePublishStreamAudio, mutePublishStreamVideo, useVideoDevice or useAudioDevice after starting to publish streams until the publish streams is successful] When the interface is used, an error message will be thrown.

  2. Fixed the problem that the page automatically refreshes when publish streams on the Safari browser of iOS 15.1, causing it to not work properly.

    The SDK uses the canvas collection solution to avoid this problem, and the performance overhead of this avoidance solution is relatively larger. For performance reasons, it is recommended that the quality of the publish streams capture in iOS 15.1 should not be too high. This issue has been fixed in iOS 15.2.

  3. Fixed the problem that the Audio will be automatically restored to open when the setAudioConfig interface is called to modify the publish streams Audio parameters after calling the mutePublishStreamAudio interface to close the Audio during the publish streams process.

  4. Fixed the problem that the Token cannot be updated by calling the renewToken interface when the Token expiration management mechanism is not configured.



Version 2.12.3

Release Date: 2021-12-06

Enhancements

1. In order to avoid the failure of push-pull streaming due to compatibility issues of lower version browsers, this version starts to disable the real-time orderly data transmission function by default.

Bug Fixes

  1. Fixed an issue where the user list might not be updated in a weak network scenario.
  2. Fixed other known issues in Firefox.


Version 2.12.2

Release Date: 2021-11-23

New Features

1. Added real time sequential data function

When developers need to distribute instructions such as remote Controller, cloud games, etc., through real time sequential data, they can obtain news from the publisher with low latency.

Added [createRealTimeSequentialDataManager] interface. After calling this interface, it returns a real time sequential data instance, which supports the functions of start broadcasting (startBroadcasting), stop broadcasting (stopBroadcasting), sending real time sequential data (sendRealTimeSequentialData), start subscribing (startSubscribing), and stop subscribing (stopSubscribing).

For related API, please refer to createRealTimeSequentialDataManager, startBroadcasting, stopBroadcasting, sendRealTimeSequentialData, startSubscribing, stopSubscribing

Bug Fixes

  1. In version 2.11.0, an exception may occur when multiple instances of ZegoExpressEngine are used in one browser page. This version fixes this problem.
  2. Due to the limitation of the browser's automatic playback strategy, after play streams without page interaction, there is a sound after manually clicking to play, but the sound wave callback for getting the stream is still 0. This version fixes this problem. After the page is clicked, the sound wave callback for play streams can be obtained normally.


Version 2.12.1

Release Date: 2021-11-18

Bug Fixes

  1. Fix known issues


Version 2.11.3

Release Date: 2021-11-04

Bug Fixes

  1. Fixed the missing declaration file of version 2.11.0, which caused a type verification error when using TypeScript to import the SDK.


Version 2.11.2

Release Date: 2021-11-02

Bug Fixes

  1. Fixed the situation where the code using ES6 syntax in version 2.11.0 caused compatibility issues with some packaging tool compression codes.
  2. Fixed the problem that remoteCameraStatusUpdate and remoteMicStatusUpdate callbacks were not triggered when the Video and Audio of the play streams were both turned on.

Version 2.11.1

Release Date: 2021-10-28

Bug Fixes

  1. Fixed the issue that when calling the muteMicrophone interface, the wrong Camera status would be sent to the opposite end.

Version 2.11.0

Release Date: 2021-10-15

New Features

1. Support setting clear priority and smooth priority by scene

When you have different requirements for Video experience in different scenarios, you can set different publish streams modes on the publish streams end as needed.

createStream The camera.videoOptimizationMode, screen.videoOptimizationMode, and custom.videoOptimizationMode parameters are added to the [createStream|_blank- interface, which are used to set the publish streams mode of the Camera, Screen Sharing, and custom captured Video , respectively. The three can be passed default, detail, and motion, which respectively represent default (that is, both clarity and fluency), clarity priority, and smoothness priority. The default value is default.

  • Select clarity first. In most cases, the SDK will not reduce the sending resolution, but it may reduce the frame rate.

  • Select smoothness first. In most cases, the SDK will not reduce the frame rate, but may reduce the sending resolution.

  • Choosing both at the same time may reduce the frame rate and resolution at the same time.

For related API, please refer to createStream

2. Added Token expiration management mechanism

To use this function, you need to upgrade the SDK and contact ZEGOCLOUD technical support for configuration.

In different business scenarios, the time limit for the user's permission to log in to the room, publish streams, etc., can be implemented through Token.

When the token expires, the server will take the initiative to reclaim the user's permissions, and the client user will be kicked out of the room and stop publish streams. This mechanism can make user authority management more secure, and is often used in KTV and Voice Chatroom scenes.

For related API, please refer to renewToken, tokenWillExpire

3. Stream Mixing streaming supports setting the Video rendering mode

When Stream Mixing streams, you can set the rendering mode for each stream. When the resolution ratio of the Stream Mixing stream input stream is inconsistent with the layout ratio of the corresponding input stream on the Stream Mixing stream output screen, different rendering modes can be selected according to different business scenarios.

You can set the rendering mode of the Stream Mixing stream input Video screen through the mixStreamConfig.inputList[].renderMode parameter of the startMixerTask interface. A value of 0 means filling mode, 1 means adaptation mode, and the default is filling mode.

For related API, please refer to startMixerTask

Enhancements

1. Added 1103064, 1103065 and 1103066 Error Codes

Through createStream, the audio and Video of the device cannot be captured. When an error occurs when creating a stream, the Error Codes 1103064, 1103065, and 1103066 are added to identify "no device permission", "device not used for capture", and " Device parameter error".

For related API, please refer to createStream

2. Newly added end-to-end delay and end-to-end packet loss rate data for play streams quality callback

The stats parameter in the play streams quality callback interface playQualityUpdate adds peerToPeerPacketLostRate and peerToPeerDelay to identify the "end-to-end packet loss rate" and "end-to-end delay" respectively.

For related API, please refer to playQualityUpdate

Bug Fixes

  1. Fixed the issue that in multi-room mode, when a room is kicked out by the server, all rooms are triggered to exit
  2. Fixed the issue of freezing when retrying to play streams


Version 2.10.1

Release Date: 2021-09-03

Bug fixed

  1. Fix known issues


Version 2.10.0

Release Date: 2021-08-27

New features

1. Added range voice function module

The newly added range voice function module can provide range voice, 3D sound effects, team voice and other functions. It is suitable for eating chicken games and meta-universe scenes.

Range voice: It means that the listener in the room has a range limit on the audio receiving distance. If the distance between the speaker and himself exceeds this range, the sound cannot be heard. To ensure clear voice, the release date is exceeded nearby: When 20 people are speaking, only the 20 closest speakers can be heard.

3D sound effect: The sound has a sense of 3D space and is attenuated by distance.

Squad Voice: Players can choose to join a squad, and support freely switching between "world" mode and "squad only" mode in the room.

For related APIs, please refer to createRangeAudioInstance, ZegoExpressRangeAudio, setEventHandler, setAudioReceiveRange, updateSelfPosition, updateAudioSource, enableSpatializer, enableMicrophone, enableSpeaker, setRangeAudioMode, setTeamID

Enhancement

1. Improve the anti-weak network performance of the SDK during network switching

The internal retry logic of the SDK is optimized to improve user experience during network switching.

Bug fixed

  1. Fixed the issue that the useVideoDevice interface was called to switch other camera devices when the pusher side removed the external camera that was pushing, and then the device status was finalized in the remoteCameraStatusUpdate event Is "CLOSE", there is no problem of reverting to "OPEN"


Version 2.9.1

Release date: 2021-08-12

Bug fixed

  1. Fixed small portion does not support simultaneous opening of the two Camera when the switching device failure retry Microphone, can cause problems in the Video black screen


Version 2.9.0

Release date: 2021-08-09

Enhancement

1. Added the verification of the inputList[].streamID parameter value in the Stream Mixing stream interface

When calling the startMixerTask interface, if the inputList[].streamID parameter value is null or undefined, an error message will be displayed indicating that the input parameter is incorrect.

For related API, please refer to startMixerTask

2. Support calling the replaceTrack interface to replace the audio and Video tracks of the media stream before the publish streams is successful

SDK versions prior to 2.9.0, you can only publish streams or publish streams before a successful call replaceTrack interface will error before calling the publish streams does not complete and prompt does not support the call of the interface.

The 2.9.0 SDK version is optimized to call the replaceTrack interface to replace the audio and Video track before the publish streams is successful.

For related API, please refer to replaceTrack

3. When the publish streams end closes the Video screen and then turns it back on, the play streams end no longer relies on media signaling to restore the image

In SDK versions prior to 2.9.0, when the publish streams screen on the publish streams end is closed, the streaming status signaling may be lost due to the network disconnection, which makes it impossible to notify the play streams end to restore the screen through signaling in a timely manner.

The 2.9.0 SDK version is optimized to use streaming data instead of relying on media signaling to restore the Video image, avoiding the problem that the Video image cannot be restored in a weak network situation.

Bug fixed

  1. Fixed the problem of switching the external Camera or Microphone device through the useAudioDevice or useVideoDevice interface after publish streams , and it did not trigger when disconnecting from the external device at the hardware level deviceError callback problem

  2. Fixed the problem that the setting of the start bit rate did not take effect after the custom.source parameter was passed to MediaStream when creating a third-party stream via createStream

  3. Fixed the problem that the reported Camera status did not turn off when the device was unplugged when the external Microphone and Camera were used for publish streams .



Version 2.8.0

Release date: 2021-07-09

New features

1. Support to turn on/off the Microphone sound, and get the Microphone on/off status

When the developer does not want the microphone to be heard by the streaming end, they can set whether to enable the microphone sound through the "enable" parameter of the muteMicrophone interface, "true" means to turn off the microphone (ie mute) , "False" means to turn on the microphone. This interface can turn on or turn off the sound of the media stream of all microphones created by the current engine instance without affecting other sounds (such as the playback of background music).

Call the isMicrophoneMuted interface to get the Microphone on/off status of the current engine instance.

For related API, please refer to muteMicrophone, isMicrophoneMuted

2. Newly added room functions

You need to contact ZEGOCLOUD technical support to enable this function.

The same user can join multiple rooms at the same time, and in multiple rooms at the same time (currently the default is up to 5 rooms at the same time) publish streams, play streams, send real-time messages, and receive message callbacks. This function can isolate the messages and callbacks of multiple rooms, and realize more flexible mic- Co-hosting services. ZEGOCLOUD is recommended for super small class scenes with inter-room interconnection and online education.

After initializing the SDK, you need to call the enableMultiRoom interface to open the multi-room before logging in to the room, and then call the loginRoom interface to Multiple Rooms.

For related API, please refer to enableMultiRoom, loginRoom

Enhancement

1. When closing the publish streams screen, you can choose to keep the Preview screen

mutePublishStreamVideo A new "retain" parameter is added to the interface, which is used to set whether to keep the Preview screen when closing the publish streams screen. When the value of the "retain" parameter is "true", it means to keep, and the default value is "false" .

For related API, please refer to mutePublishStreamVideo

2. When the App is not configured with the Low-Latency Live function but uses the low-latency mode to play streams, an error message is added

When the App is not configured with the Low-Latency Live function but uses the low-latency mode to play streams, the SDK will throw an Error Codes 1104038, indicating that the current AppID does not support Low-Latency Live.

For related API, please refer to startPlayingStream

Bug fixed

  1. Fixed an issue where an error would be reported when using the web-side publish streams when the network was disconnected, but the error message of the disconnection publish streams failed to be returned normally.

  2. Fixed the problem that the rapid rate increase strategy when publish streams is only effective for H.264 encoding, but not for VP8 encoding.



Version 2.7.1

Release date: 2021-06-10

New features

1. Added the function of obtaining local sound waves

on interface added capturedSoundLevelUpdate callback event, the difference between this callback and push and pull stray sound callback soundLevelUpdate It is that capturedSoundLevelUpdate can obtain the locally collected audio sound waves immediately after the media stream is created, that is, the volume of the local microphone collection, which can be used to detect whether the microphone sound is normal.

For related API, please refer to capturedSoundLevelUpdate

2. Support setting the start bit rate increase strategy of the publish streams(valid only for Chrome)

createStream The "source.camera", "source.screen", and "source.custom" properties in the interface of createStream have added a "startBitrate" parameter to set the start bitrate increase strategy of the publish streams.

Due to the browser’s default policy, the start bit rate of the publish streams rises slowly from 300 kbps to the target bit rate by default, which results in the blurry picture initially received by the play streams end. By setting the value of the "startBitrate" parameter to "target", the developer can quickly increase the start bit rate of the publish streams to the set target bit rate. (When the set target bit rate is too high and the network status is poor, the streaming video may be stuck or blurred)

This feature is only effective in Chrome kernel browsers that have not turned on hardware acceleration.

For related API, please refer to createStream

Enhancement

1. Optimized the logic of switching Camera during the publish streams process

A small number of mobile devices do not support turning on two Camera at the same time, causing the camera to fail to switch normally when the second Camera is turned on during the Camera Selection process. The SDK has added a new logic for retrying when switching Camera fails to avoid errors when opening two Camera at the same time.

2. Optimized the error message prompt of the Stream Mixing streaming service interface startMixerTask

After calling the Stream Mixing interface startMixerTask, the error thrown when the Stream Mixing server makes an error carries the prompt message "extendedData".

For related API, please refer to startMixerTask

3. Added 1003025 Error Codes, indicating that publish streams is prohibited

When the publish streams operation is prohibited by the ZEGOCLOUD background, the 1003025 Error Codes will be thrown in the publish streams state callback, and the developer can use the Error Codes to provide corresponding business prompts.

For related API, please refer to publisherStateUpdate

4. Optimized the problem of blurry screen when packet loss at the play streams end

publish streams end turns on the hardware acceleration to publish streams, the play streams end will have a blurry screen when the packet loss rate is high. The SDK optimizes this issue, and it only takes effect in the Chrome kernel browser.

Bug fixed

  1. Fixed the problem that after switching Audio devices, the sound wave callback always returns 0 instead of the sound wave of the new device

    Since the SDK did not reacquire the device sound wave after switching the Audio device, the sound wave was always 0. The current version has fixed this problem.

  2. Fixed the problem that the "audioMuteState" in the play streams quality message did not change when the Microphone was turned off at the publish streams end



Version 2.6.0

Release date: 2021-04-29

New features

1. Added Low-Latency live streaming function

Low-Latency live streaming focuses on providing stable and reliable live broadcast services. Compared with standard video live broadcast products, the audio and video delays are lower, the synchronization is stronger, and the weak network resistance is better, which can bring users a millisecond-level live broadcast experience. It is usually used in scenes such as large education classes, live shows, e-commerce live broadcasts, watch together, online auctions, etc.

When developers need to pull low-latency live streams, they can choose to pull low-latency live streams by setting the streaming parameter "resourceMode" to "2".

For related API, please refer to startPlayingStream

2. Added token expiration callback tokenWillExpire and token update interface renewToken

The current version of the SDK already supports this callback and interface, and it is expected to be officially available on 2021-06-10.

When the token is about to expire 30s before the SDK will actively trigger the tokenWillExpire callback. When receiving the callback, the developer needs to regenerate the token and call the renewToken interface update .

The renewToken interface is often used in the following scenarios:

a. When the token expires, update the token through this interface. b. When the developer needs to switch from the login permission to the push streaming (including login) permission, or from the push streaming (including login) permission to only the login permission, it can be implemented through this interface.

For related APIs, please refer to tokenWillExpire, renewToken

3. Token version upgrade, support token sub-function authentication

The current version of the SDK already supports this authentication function, but it is expected to be officially used on 2021-06-10.

The new version token is used to control whether you can log in and whether you can push the stream. If you want to use the new version token authentication function, please contact ZEGOCLOUD technical support to enable the corresponding configuration.

For related APIs, please refer to tokenWillExpire, renewToken

Enhancement

1. Optimized the push-pull stream negotiation mode to reduce the time-consuming of the first frame of the push-pull stream

The first frame of the push-pull stream can be shortened by more than 150 ms on the original basis.

2. Optimized the push-pull network quality algorithm

The algorithm of push-pull streaming network quality has been further optimized, and the accuracy of [videoQuality] and [audioQuality] monitoring in push-pull streaming quality callbacks has been improved.

3. Add node quality detection

If it detects that the current network quality is poor, it will trigger node detection, and the SDK will find a better quality push-pull stream node to switch, and further improve the ability to resist weak networks.

Bug fixed

  1. Fix known issues


Version 2.5.0

Release date: 2021-04-15

Bug fixed

  1. Fixed the issue that the original camera was not released when switching cameras

For related API, please refer to useVideoDevice

  1. Fix other known issues


Version 2.4.0

Release date: 2021-04-01

Enhancement

1. Optimize the detection interface, improve the accuracy of video encoding detection, and support single detection

For related API, please refer to checkSystemRequirements

2. Modified the priority of the upload address when setting the log so that the priority is higher than the address issued in the background

For related API, please refer to setLogConfig

3. Optimized the video bit rate setting strategy, and solved the problem of low initial value of screen sharing bit rate

For related API, please refer to createStream

Bug fixed

  1. Fixed the issue of weird sound quality when Safari uses some Bluetooth headsets to play sound effects


Version 2.3.0

Release date: 2021-03-18

Enhancement

1. Optimized the push-pull streaming network quality rating logic to improve the evaluation accuracy

2. Support pure video stream mixing function

For related API, please refer to [startMixingAudio]

Bug fixed

  1. Fixed the problem that an error occurred when the stream was stopped immediately after the stream was pulled

  2. Fixed the problem that streaming stuck when the camera was turned off and then turned on



Version 2.2.1

Release date: 2021-03-04

New features

1. Added the function to modify the collection volume

Call the microphone collection volume interface, you can adjust the volume of the push end, so that the audience can feel the volume change.

For related API, please refer to [setCaptureVolume]

2. When the user is kicked out of the room, add detailed reasons for kicking out

When a room member is kicked offline, the SDK needs to prompt the specific reason for being kicked offline based on additional information.

Bug fixed

  1. Fixed the problem that the room reset was not sensed when logging in to the room repeatedly, resulting in not receiving stream updates


Version 2.1.0

Release date: 2021-01-28

Bug fixed

  1. Fixed an issue where the video bitrate could not reach the expected value when hardware acceleration was turned on in the Chrome browser on Windows devices

  2. Fixed the problem that the WeChat built-in browser on the PC reported an error after a period of time.



Version 2.0.0

Release date: 2021-01-14

Enhancement

1. Code refactoring to reduce coupling between different modules.

2. Log system reconstruction, optimized log structure, and improved problem location efficiency.

3. Retry logic reconstruction to further improve the SDK's ability to resist weak networks.



Version 1.19.0

Release date: 2020-12-31

New features

1. Added the ability to dynamically set whether to pull remote audio and video streams.

After pulling the stream successfully, the developer can dynamically adjust whether to pull the audio stream or video stream as needed.

For related APIs, please refer to [mutePlayStreamVideo]

Bug fixed

  1. Fixed the problem of failure to destroy the stream after playing the audio and video files of the third-party stream.

For related API, please refer to destroyStream



Version 1.18.0

Release date: 2020-12-17

New features

1. Added extended information parameters to the stream update callback, for example: when the stream is deleted, the relevant reason information can be thrown.

For related API, please refer to [roomStreamUpdate]

2. Added the ability to adjust the mixing volume.

Supports dynamic adjustment of the volume of background music or sound effects mixed in during push streaming.

For related API, please refer to [setMixingAudioVolume]

Enhancement

1. Optimized the SDK streaming media websocket connection waiting time.

Extends the waiting time of websocket connection timeout during the push-pull stream retry process, improves the connection success rate and the ability to resist weak networks.

Bug fixed

  1. Fixed the problem that there is no sound when the Safari browser selects the automatic pull mode when the push stream is pure audio.

For related API, please refer to [setMixingAudioVolume]



Version 1.17.1

Release date: 2020-12-03

Bug fixed

  1. Fixed the problem that the microphone sound cannot be restored when the microphone is turned on again when mixing after muting.

For related API, please refer to mutePublishStreamAudio

  1. Fixed the problem that the peer failed to receive the stream deletion notification in time when the stop push interface was called during the push retry process.

Please refer to stopPublishingStream, roomStreamUpdate for related API

  1. Fixed the problem that the peer end may not receive the callback of the user entering and exiting the room when quickly re-entering the room after exiting the room.

For related API, please refer to loginRoom, roomUserUpdate



Version 1.16.5

Release date: 2020-11-26

Bug fixed

  1. Fixed the problem that some push-pull streams cannot be restored to normal use after the network reconnection is successful.

  2. Fixed the problem that the status may not be synchronized when the streaming terminal receives the camera status change in a short time.



Version 1.16.1

Release date: 2020-11-23

Bug fixed

  1. Fixed the problem that the push-pull stream may fail to schedule in a weak network environment.


Version 1.16.0

Release date: 2020-11-19

New features

1. The third-party stream supports setting the number of audio channels and bit rate of the push stream.

When creating a third-party stream, set the number of audio channels and bit rate of the current push stream audio according to the number of audio channels and bit rate in the video file to avoid possible sound quality loss.

For related APIs, please refer to createStream

2. Added support for dynamically modifying push audio parameters.

After creating a stream and pushing it successfully, you can modify the audio parameters of the push stream as needed, including noise reduction, automatic gain, and echo cancellation.

For related API, please refer to [setAudioConfig]

3. Add device plug-in callback.

When an audio and video device is added or removed from the system, it will trigger [audioDeviceStateChanged] or [videoDeviceStateChanged] callback. By monitoring this callback, users can use specific audio and video equipment for data collection as needed.

For related APIs, please refer to [audioDeviceStateChanged], [videoDeviceStateChanged]

Enhancement

1. Optimized the problem that the streaming end cannot receive the stream delete callback after stopping the streaming in the weak network situation.

Retry when adding and deleting the sending stream fails to increase the success rate of the push stream under weak network conditions.

2. Optimize the problem that the streaming terminal may not be able to pull the video when the camera is closed and then reopened.

Bug fixed

  1. Fixed the problem that the page is refreshed after successful push on Firefox, and the stream cannot be pulled when the same room number is entered again.


Version 1.15.0

Release date: 2020-11-05

Enhancement

1. Optimize the problem of poor sound quality collected by the microphone when the safari browser uses the audio mixing function.

For related API, please refer to startMixingAudio

2. Optimize the error message when the log connection is disconnected.

About one minute after leaving the room, the log websocket connection is disconnected, and the error level error message is no longer displayed.

3. Optimize the log of the device status reported by the SDK and add the corresponding stream ID.

Bug fixed

  1. Fix the sendCustomCommand callback result, delete the messageID in the return value.

  2. Fix the issue that roomStateUpdate is not triggered when the same user logs in on other platforms and the web platform is offline.

  3. Fix the problem that other users in the room receive the roomUserUpdate callback when logging in to the room with the same user ID.



Version 1.14.0

Release date: 2020-10-15

New features

1. Increase the audio sending frame rate in the push-pull stream quality callback.

The audio sending frame rate (audioFPS) is added to the push-pull stream quality callback to show the current audio fluency.

For related APIs, please refer to publishQualityUpdate, playQualityUpdate

2. Increase the push stream resolution setting of the screen sharing stream.

If the videoQuality parameter passed in when creating a screen sharing stream is 4, the developer needs to pass the frame rate, bit rate, and resolution to the SDK.

For related API, please refer to createStream

3. Add the function of dynamically modifying push streaming parameters.

Supports dynamic modification of the resolution (width and height), frame rate and bit rate of the audio and video stream through the [setVideoConfig] interface after the stream is successfully created and pushed.

For related API, please refer to [setVideoConfig]

Enhancement

1. Retry logic optimization and reconstruction.

Optimized and reconstructed the retry logic when abnormalities occur during audio and video calls, improved the SDK's ability to resist weak networks, and reduced business-focused retry.

2. No authentication required when retweeting CDN.

Optimized to add and delete the retweet CDN interface, remove authentication, and improve ease of use.

For related API, please refer to addPublishCdnUrl, removePublishCdnUrl

Bug fixed

  1. Fix the error code information duplication problem.

  2. Fix other known issues.



Version 1.13.0

Release date: 2020-09-24

New features

1. Add and replace audio and video tracks.

Support to replace the audio and video tracks in the local audio and video stream, for example, you can switch the video track between the camera, screen sharing or video, and switch the audio track between the microphone and mp3.

For related API, please refer to [replaceTrack]

2. Newly added availability check error message return.

When the SDK detects that the device is unavailable, it supports returning the corresponding error message to show the specific error reason.

For related API, please refer to [checkSystemRequirements]

Enhancement

1. Optimize the callback error code of push streaming status.

Optimized the error code value returned when the request response timed out due to network problems during streaming.

2. Increase the type judgment of the interface value parameter.

Strictly judge the numeric parameters in the interface, and only allow integers to be passed in to avoid errors.

For related APIs, please refer to loginRoom, createStream, setSoundLevelDelegate, startMixerTask

Bug fixed

  1. Fix the problem of missing roomid after logging in to the room and changing the log configuration.

  2. Fix other known issues.



Version 1.12.0

Release date: 2020-09-10

New features

1. Added room additional message function.

This function can set an additional message in the unit of the room, the message follows the life cycle of the entire room, and every user who logs in to the room can synchronize the message. Developers can be used to implement various business logic, such as room announcements and so on. Currently, only one key-value pair is allowed to be set in the room additional message, and the maximum length of key is 10 bytes, and the maximum length of value is 100 bytes.

For related API, please refer to [setRoomExtraInfo]

Enhancement

1. Optimize the exit room parameters.

Simplified the parameter setting for exiting the room. The roomID is modified as an optional parameter. Developers need not set the roomID when exiting the room.

For related API, please refer to logoutRoom

2. Increase the timing of switching devices.

After the stream is created and previewed, the camera and microphone devices can be switched before the stream is pushed.

For related APIs, please refer to useVideoDevice, useAudioDevice

3. Add type judgment for creating stream attribute parameters.

Added the type judgment of the resolution, bit rate, frame rate and other parameters set when creating the stream. Only positive integers are allowed to be passed in to avoid unknown error messages.

For related API, please refer to createStream

4. Optimize callback registration event handling.

If the developer has an unhandled business logic error in the callback event, the SDK will catch the error to avoid affecting the operation of the internal logic of the SDK.

For related API, please refer to on

Bug fixed

  1. Fix the problem that an error may be reported when calling the exit room in the mixed flow stop callback.

  2. Fix other known issues.



Version 1.11.0

Release date: 2020-08-27

New features

1. Add a callback to the current number of people in the new room.

After the user enters the room, the roomOnlineUserCountUpdate callback will be triggered regularly (30 seconds) to notify the current number of people in the room, and developers can directly obtain the number of people.

For related API, please refer to [roomOnlineUserCountUpdate]

Enhancement

1. When the mixed stream is pure audio, optimize the parameter settings.

Simplified the parameter settings of the mixed stream. When the mixed stream is pure audio, the layout and other related parameters will be set to default values, and the developer does not need to pay attention to how to set the parameters.

For related APIs, please refer to startMixerTask

2. Increase the trigger timing of streamExtraInfoUpdate.

When the user enters the room and there is a stream in the room with additional information, streamExtraInfoUpdate will be called back, so developers only need to pay attention to this callback to process the logic of the stream additional information.

For related APIs, please refer to [streamExtraInfoUpdate]

Bug fixed

  1. Fix other known issues.


Version 1.10.0

Release date: 2020-08-13

New features

1. support for dual channel.

Provide the ability for dual channel. This interface has compatibility issues and is only supported under chrome browser.

Refered to the related API createStream

Enhancement

1. add the judgment for the type of publish stream attribute parameters.

This optimization adds the type judgments for push stream encoding, stream additional information, and candidate parameters to avoid unknown error messages.

Refered to the related API startPublishingStream

2. Optimize the heartbeat of stream media server.

This optimization aims to improve the stability of the connection. The interval at which the SDK sends heartbeats to the stream media server will be dynamically adjusted according to the parameters given by the heartbeat of the stream media server.

3. The logs width push and pull stream add stream ID to make it easier to location problems by query log.

4. Push and pull streams to report information such as available bandwidth to facilitate the location of resolution drops problems.

5. Add packet loss information in the push stream quality callback to facilitate the location of network problems.

Add the parameter values of muted, paused, and volume to the log information, so as to locate the silent problem of push-pull streaming.

Bug fixed

  1. Fix the problem that the push-pull stream state callback may not be trigger on after repeatedly receiving the retry error message.

  2. Fix other issues.



Version 1.9.0

Release date: 2020-07-30

Bug fixed

  1. Fix the issue that the CDN address in the callback information of the subscription pull stream update is empty.

  2. Fix other known issues.

Enhancement

1. When creating a screen sharing stream, plug-ins are prioritized for screen sharing, and screen sharing in the form of plug-ins is more compatible.

2. Optimize the call to stop the push-pull stream interface, the corresponding stop interface can be successfully called at any time after the push-pull stream.

3. Push-pull flow scheduling logic optimization to reduce unnecessary code execution.

4. Optimize the error message processing logic for switching the camera microphone device interface, and the corresponding error message will be thrown through reject.

5. If the audio mixing function is used before calling the stop push, the SDK will stop the mixing of the corresponding stream when the stop push interface is called.

6. Optimize the SDK processing logic for abnormal browser shutdown, compatible with the monitoring of the browser beforeunload event.



Version 1.8.1

Release date: 2020-07-20

Bug fixed

  1. StartMixerTask parameter check and correction.


Version 1.8.0

Release date: 2020-07-15

New features

1. The server supports alternate domain names to improve the connection rate when the network environment is not good.

Enhancement

1. Unify the external error code and align the native end.

2. Fix the problem that the first quality report of push-pull stream is empty, and optimize the reported data information.

3. Start and stop push-pull stream increase state callback.

4. Fix the problem that some internal errors of the switching device did not call back.

5. Optimize internal heartbeat sending logic.

6. Fix the problem that the external camera is loose and the web terminal cannot pull the stream and continue to pull the audio stream.

7. Fix the problem that safari fails to pull the audio stream when the camera is closed during the push stream.

8. Fix other known issues.



Version 1.7.0

Release date: 2020-06-30

New features

1. Added the support for support audio mixing. Two new APIs [startMixingAudio] and [stopMixingAudio] were introduced.

2. Added a new API [setSoundLevelDelegate] to set up the sound level callback. Developers can use this API to set the frequency of the callback [soundLevelUpdate] as needed.

Enhancement

1. Use the user's setting to determine whether to pull the audio/video stream.

2. The screen sharing API now can be called multiple times.

3. Optimized audio processing to improve performance.

4. Changed the encoding/decoding parameters to be case insensitive to improve error tolerance.

Bug fixed

  1. Fixed the issue that incorrect camera/microphone status is received on the stream viewing side when the camera/microphone is turned off by calling the corresponding APIs before publishing the stream.
  2. Fixed the issue that the pop-up window prompts multiple times after the user clicks the cancel button when using the screen share plug-in, and optimized the error message.
  3. Fixed other known issues.


Release date: 2020-06-15

Version 1.6.0

Release date: 2020-06-15

Enhancement

1. Added the capability of audio/video bitrate monitoring to the API [createStream].

Bug fixed

  1. Fixed the issue that stream publishing fails due to parameter out of bound.
  2. Fixed the issue that some parameters are missing out from the quality reporting on some browsers to improve quality reporting.
  3. Optimized the timing of monitoring to improve the accuracy of detection.
  4. Optimized the callbacks for publisher/player state updates to improve the accuracy of the state.
  5. Fixed the issue that room stream update callback is triggered even when there is no stream published to the room.
  6. Fixed other known issues.


Version 1.5.2

Release date: 2020-06-08

Bug fixed

  1. Corrected the parameters of the API [startMixerTask].
  2. Fixed the log reporting error that is caused by the log being too long.


Version 1.5.1

Release date: 2020-06-02

Bug fixed

  1. Corrected the parameters of the API [mutePublishStreamAudio].


Version 1.5.0

Release date: 2020-05-15

Enhancement

1. Changed the API useVideoDevice to be a Promise.

2. Optimized some error codes.

4. Optimized some critical logs.

Bug fixed

  1. Fixed some known issues.


Version 1.4.0

Release date: 2020-04-30

  1. Optimized the program logic related to camera/microphone status.
  2. Optimized the strategy of pulling the room user list.
  3. Fixed some known issues.


Version 1.3.0

Release date: 2020-04-15

  1. Added a new feature allow web client to control the maximum online user count of a room.
  2. Added the check for https connection for WebRTC.
  3. Optimized the node retry logic.
  4. Fixed some known issues.


Version 1.2.1

Release date: 2020-03-30

  1. Added the callbacks [remoteCameraStatusUpdate] and [remoteMicStatusUpdate] for monitoring the stream publishing side camera/microphone stauts.

  2. Added a retry mechanism for connecting the access node to improve the connection success rate and stability.

  3. Added a new feature to the API [checkSystemRequirements] for checking the support for screen sharing.

  4. Added the reporting of stream publishing device status, and optimized the logging.

  5. Added the support for sending Barrage Messages to users in the same room.



Version 1.1.0

Release date: 2019-11-28

  1. Added the stream mixing module.
  2. Added the instant messaging (IM) module.
  3. Aligned the APIs across all platforms, including API names, parameter names, and parameter values, etc.


Version 1.0.0

Release date: 2019-10-31

The initial release of the SDK, which included the following modules:

  • System
  • Room
  • Stream Publishing
  • Stream Playing
Page Directory