Release Notes
Version 3.21.0
Release Date: 2025-07-29
New Features
-
Windows: Added support to select whether to capture audio during window capture
During window capture, you can set whether to capture audio to meet the requirements of different scenarios.
For related API, please refer to enableAudioCapture
Improvements
- Updated integrated Express Native SDK to version 3.21.0
Bug Fixes
- Fixed the issue where the media player loadResource displayed the homepage
- Fixed the issue where video artifacts might occur during stream playing
Version 3.20.2
Release Date: 2025-04-08
Improvements
Updated integrated Express Native SDK to version 3.20.2.
Version 3.18.1
Release Date: 2024-12-17
Improvements
Updated integrated Express Native SDK to version 3.18.1.
Version 3.18.0
Release Date: 2024-12-05
Improvements
Updated integrated Express Native SDK to version 3.18.0.
Version 3.12.4
Release Date: 2024-01-18
Improvements
-
Updated the privacy manifest file
PrivacyInfo.xcprivacyin the iOS SDKNote: If you have integrated SDK version earlier than 3.13.2 and want to publish to App Store, please download the latest version of the SDK and copy the PrivacyInfo.xcprivacy file to the corresponding location of the old SDK.
Please update the privacy manifest file
PrivacyInfo.xcprivacyin the iOS SDK to the new version. For details, please refer to "PrivacyInfo.xcprivacy" in the "ZegoExpressEngine.framework" folder in the SDK package.
Bug Fixes
- Fixed the issue where UI lag might occur at very low probability when the network was abnormal during network switching
Version 3.12.3
Release Date: 2024-01-08
New Features
-
Support for copyrighted music plugin
Note:
-
If you need to use this feature, please contact ZEGOCLOUD Technical Support.
-
The copyrighted music plugin package cannot be used alone and must be used in conjunction with the Express SDK.
Supports the pluginization of copyrighted music features. When developers' business scenarios only need to update copyrighted music related code, they can integrate the plugin package separately without updating the Express SDK, achieving smooth migration.
-
Support for filling silent frames for audio and video streams relayed to CDN
Note: If you need to use this feature, please contact ZEGOCLOUD Technical Support.
Supports filling silent frames for audio and video streams relayed to CDN, which can be used to avoid stuttering or audio-video desynchronization caused by timestamp misalignment.
-
Media player supports caching network resources locally
Supports caching network resources locally. If the same network resource needs to be played, cached data will be used preferentially, improving user experience.
For related APIs, please refer to enableLocalCache, onMediaPlayerLocalCache
-
All network requests support IPv6 protocol
-
Support for hardware decoding acceleration for MJPEG format
Note: This feature only supports pre-processing for screenshots, not other processing (such as rotation, watermarks, etc.).
When the video format output by the capture device is MJPEG, hardware decoding acceleration is enabled by default to prevent issues such as insufficient frame rate caused by insufficient device performance.
This feature is mainly suitable for use with capture devices at 4K resolution.
-
Media player supports callback for video resolution change events
The media player supports throwing relevant callbacks to notify developers when it detects changes in video resolution. This feature is suitable for scenarios where the resolution of the published stream changes multiple times and requires adjusting the encoding resolution of the publishing end and the rendering view size of the playing end for matching.
For related APIs, please refer to onMediaPlayerVideoSizeChanged
Improvements
-
Optimized server-side stream mixing and single-stream transcoding capabilities
Optimized server-side stream mixing and single-stream transcoding capabilities, improving encoding efficiency and enhancing both subjective and objective video quality by more than 5% at the same bitrate.
-
Optimized AEC (Acoustic Echo Cancellation) algorithm for better AEC performance
-
Optimized network connection strategy to enhance audio and video call experience
-
Optimized multi-device login logic
After a user successfully logs in on device A, device A loses network connection; then logs in successfully on device B using the same userID. At this point, if device A's network recovers, the reconnection will fail and error code 1002086 will be thrown, indicating that this userID has already logged in on another device.
Bug Fixes
-
Fixed the crash issue that might occur when N-card hardware decoding exits on certain Windows devices
-
Fixed the restart strategy issue when the camera is abnormal on the Windows platform
-
Fixed the issue where the SDK could not receive network status change notifications when Windows or macOS system is in sleep mode, resulting in inaccurate network type judgment
Version 3.10.1
Release Date: 2023-11-10
New Features
-
Media player supports accompaniment sound quality enhancement
The media player supports accompaniment sound quality enhancement, improving the sound quality of accompaniment and the atmosphere of the live scene. It is suitable for scenarios such as live audio rooms and karaoke.
For related APIs, please refer to enableLiveAudioEffect
Bug Fixes
- Fixed the black screen issue that occurs after enabling low-light enhancement
Version 3.9.0
Release Date: 2023-09-22
New Features
-
Support for segmenting and transmitting the main subject in video frames
Note: If you need to use this feature, please contact ZEGOCLOUD Technical Support.
Added subject segmentation feature. Through AI algorithms, the main subject in the video frame (in most cases, the subject is a person) is separated from the background, returning data with an alpha channel to the SDK for encoding processing. This achieves the effect of transmitting only the main subject in the video rather than the original rectangular video.
Currently, this feature is only supported through internal capture. For details, please refer to Subject Segmentation.
-
Media player supports obtaining media stream video information
For video files being played by the media player, developers can actively obtain information such as video resolution and frame rate.
For related APIs, please refer to getMediaInfo
Improvements
-
Optimized SDK compatibility to support hot updates for Electron 13 and above versions
Note: This optimization cannot be used together with non-Context-Aware type plugins, such as zego-express-engine-electron-plugin-screen-capture.
Bug Fixes
- Fixed the issue with macOS app submission
Version 3.8.1
Release Date: 2023-08-17
New Features
-
Windows supports specifying graphics card for hardware encoding, supports texture input and output for hardware encoding and decoding
Windows supports specifying graphics card for hardware encoding, and supports texture input and output for hardware encoding and decoding, improving the efficiency of hardware encoding and decoding on the Windows platform, reducing end-to-end latency by 15 ms ~ 100 ms (the specific optimization effect depends on the graphics card used). This feature can be used in low-latency scenarios such as remote control.
-
Screen capture feature supports getting rectangular area when the capture source is "window"
The screen capture feature adds a new interface getCaptureSourceRect for getting the rectangular area when the capture source is "window".
For related APIs, please refer to getCaptureSourceRect
Improvements
-
Optimized noise performance of low-light enhancement algorithm
-
Optimized the URL length for media player to load resources, supporting up to 2048 bytes
-
Optimized the callback synchronization between media player SEI information and corresponding frame data to ensure consistency between SEI and frames
Bug Fixes
-
Fixed the crash issue when adding watermarks during stream publishing
-
Fixed the issue where publishing and playing streams might fail after changing the userID between [createEngine] and [destroyEngine] when using Token authentication
Version 3.7.0
Release Date: 2023-07-17
Improvements
-
Optimized SDK internal logic, reducing memory usage by 400KB ~ 600KB
-
Optimized SDK video capture strategy to improve video quality
-
Support for callbacking local network quality during stream publishing and playing retry status caused by network disconnection
For related APIs, please refer to onNetworkQuality
-
Optimized SDK internal logic to enhance call experience in weak network environments
Bug Fixes
-
Fixed the issue where MediaRecorder and AudioObserver did not restore local publishing and continued capturing after stopping publishing stream
-
Fixed the multi-thread deadlock issue in the NetMonitor module
-
Fixed the incorrect return value type issue of the isVideoDecoderSupported interface
-
Fixed the issue where the quality parameter of network speed test could not receive data in the onNetworkSpeedTestQualityUpdate callback
-
Fixed the issue affecting Electron app submission to AppStore
Version 3.6.0
Release Date: 2023-06-20
New Features
-
Added geo-fencing feature
Note:
-
If you need to use this feature, please contact ZEGOCLOUD Technical Support.
-
Please configure geo-fencing information before creating the engine.
Restricts audio and video and signaling data access to a specific region to meet regional data privacy and security regulations, that is, limits users to access audio and video services in a specific region. For details, please refer to Geo-fencing.
For related APIs, please refer to setGeoFence
-
External capture supports active NTP timestamp offset
Note: If you need to use this feature, please contact ZEGOCLOUD Technical Support.
When using the external capture feature, supports active NTP timestamp offset through experimental API interfaces. This feature can be used for scenarios such as KTV chorus, accompaniment, and lyrics alignment.
-
Added first-frame callback for audio and video stream publishing
When publishing audio and video streams, you can listen to the timing of "first audio frame" or "first video frame" publication through onPublisherSendAudioFirstFrame, onPublisherSendVideoFirstFrame callbacks. This feature can be used to calculate the time consumption of audio and video stream publishing or update UI performance.
-
Multi-room mode supports quick room switching
In multi-room mode, supports quick and convenient room switching through the switchRoom interface.
-
Support for stopping or resuming all playing audio streams simultaneously
Added muteAllPlayStreamAudio interface. When developers need to quickly turn off or resume remote audio, they can call this interface to simultaneously stop or resume all playing audio streams. Compared to re-playing streams, this feature can greatly reduce time consumption and enhance interactive experience.
-
Media player supports getting sound waves and frequency spectrum when playing music
The media player adds sound wave spectrum callback and switch interfaces, which can control whether to enable the callback and the frequency of the callback, thereby obtaining the current sound waves and frequency spectrum of the media player. When playing resources through the media player, such as watching movies together, game audio chat room scenarios, this feature can be used for spectrum animation to increase fun.
After creating a media player, call the enableSoundLevelMonitor interface to enable sound level monitoring. After enabling, you can monitor changes in sound levels through the onMediaPlayerSoundLevelUpdate callback.
After creating a media player, call the enableFrequencySpectrumMonitor interface to enable frequency spectrum monitoring. After enabling, you can monitor changes in frequency spectrum through the onMediaPlayerFrequencySpectrumUpdate callback.
Bug Fixes
-
Fixed the issue where the playing progress could not jump to 0 through the seekTo interface in some m3u8 file formats in the media player
-
Fixed the occasional issue of video stuttering at the playing end after re-publishing stream
-
Fixed the issue where memory leaks might occur when using the media player
Version 3.4.2
Release Date: 2023-04-26
New Features
-
Support for multi-source capture capability
Facing interactive scenarios with rich audio and video sources such as online KTV, watching movies and games together, video conferences, and online education, multi-source capture provides flexible and easy-to-use audio and video capture source and channel management capabilities, greatly reducing developers' development and maintenance costs.
Multi-source capture capability shortens, optimizes, and unifies the implementation paths for common capabilities such as screen sharing and audio mixing. From version 3.4.2 onwards, you no longer need to implement these complex capabilities through custom capture. For details, please refer to Multi-source Capture Documentation.
Main capability features are as follows:
- Publishing channels support setting or switching multiple audio and video sources.
- Supports common capabilities such as screen sharing and audio mixing.
-
Express Electron SDK supports Linux platform
Note: If you need to use this feature, please contact ZEGOCLOUD Technical Support.
Bug Fixes
-
Fixed the issue where game voice might be heard abnormally in certain situations
-
Fixed the issue where the actual capture frame rate of screen sharing on the macOS platform was lower than the set frame rate
Version 3.3.0
Release Date: 2023-03-17
Improvements
-
Optimized SDK capture and rendering logic, improving rendering performance.
-
SDK supports adaptation to Electron 23.0.0 version, while resolving rendering-related issues in Electron 12.x.x version.
Bug Fixes
- Fixed the crash issue that occurred in a few cases during mic connection
Version 3.2.0
Release Date: 2023-02-02
Improvements
-
Camera data plugin feature expansion
Camera data plugin feature supports getting data after pre-processing.
For related APIs, please refer to getCameraVideoDataCapturePlugin, enableCustomVideoProcessing, registerCustomVideoProcessPlugin
-
Traffic control enable interface supports setting specified channels
For related APIs, please refer to enableTrafficControl
-
Custom signaling configuration supports expansion to 4KB
Note: The default size of custom signaling configuration is 1KB. If you need to expand to 4KB, please contact ZEGOCLOUD Technical Support for processing.
Bug Fixes
-
Fixed the retry failure issue of the network time module
-
Fixed the crash issue that might occur in specific scenarios
Version 3.1.1
Release Date: 2022-12-22
New Features
-
Added streaming media encryption feature
Supports using AES-128/192/256 to encrypt streaming media data.
For related APIs, please refer to setPublishStreamEncryptionKey, setPlayStreamDecryptionKey
-
Added feature to set priority weight for stream playing
Supports setting the priority weight for stream playing. When developers need to prioritize quality for a certain stream in their business, they can use this interface.
When developers need to prioritize quality for a certain stream in their business, they can use this interface. For example: In a classroom scenario, students play multiple streams, and the teacher's stream can be set to high priority.
For related APIs, please refer to setPlayStreamFocusOn
-
Support for setting minimum values for video frame rate and video resolution
Added setMinVideoFpsForTrafficControl and setMinVideoResolutionForTrafficControl interfaces. These can be used to set the minimum video frame rate and resolution by calling the interfaces when the user's network is poor and traffic control is enabled, helping users comprehensively control the video display effect.
-
Support for setting H.265 encoding automatic fallback
When publishing stream with H.265 encoding, supports automatic fallback from H.265 encoding to H.264 encoding in exceptional cases:
- After enabling automatic fallback, when H.265 encoding is not supported or H.265 encoding fails, the SDK internally attempts to fallback to H.264 encoding for stream publishing.
- After disabling automatic fallback, when H.265 encoding is not supported or H.265 encoding fails, stream publishing directly fails.
For example: In multi-person mic connection live streaming and show live streaming scenarios, using H.265 encoding for stream publishing achieves the goal of saving CDN traffic without reducing video quality.
For related APIs, please refer to enableH265EncodeFallback
-
Support for getting the encoding and decoding capability support of the specified video encoder and decoder on the current device
The SDK supports getting the support for encoding and decoding modes of the specified video encoder and decoder on the current device, better helping developers choose the encoder and encoding mode to use and obtain better results.
- Through the isVideoEncoderSupported interface, you can get the hardware or software encoding support of the current encoder.
- Through the isVideoDecoderSupported interface, you can get the hardware or software decoding support of the current decoder.
Both of the above interfaces include three enumeration values: supports hardware or software, supports hardware, supports software.
-
Support for setting low-light enhancement
Note: You should call the setLowlightEnhancement interface after calling the createEngine interface to create the engine.
When the environment around the publishing user is dark or the camera is set to a high frame rate, causing the live picture to be dark and unable to display or identify the subject normally, you can call the setLowlightEnhancement interface to set low-light enhancement and improve video picture brightness. The low-light enhancement feature includes three modes: 1: Disable low-light enhancement (default), 2: Enable low-light enhancement, 3: Automatically enable/disable low-light enhancement.
Developers can choose different low-light enhancement modes based on business scenarios: When you want to judge whether low-light enhancement is needed yourself, you can control by switching between modes 1 and 2; when you want the SDK to automatically enhance, you can use mode 3, and the SDK will automatically judge the lighting environment the user is in and enable or disable low-light enhancement.
-
Support for monitoring audio device volume
You can monitor the volume of audio input/output devices.
For related APIs, please refer to startAudioDeviceVolumeMonitor, stopAudioDeviceVolumeMonitor
-
Support for muting audio devices
You can mute audio input/output devices as needed.
For related APIs, please refer to muteAudioDevice
-
Support for mixing the sound played by the engine into the publishing stream
This feature supports users mixing the sound played by the SDK into the publishing stream. For example: During live teaching, when the teacher connects with students, the teacher can mix the playing sound into the publishing stream.
For related APIs, please refer to enableMixEnginePlayout
-
Support for steady-state voice detection
Supports detecting the steady state of voice. For example: When specifying the capture type and using microphone capture, you can use this interface to detect whether the anchor has continuous and stable voice input.
For related APIs, please refer to startAudioVADStableStateMonitor, stopAudioVADStableStateMonitor
-
Added stream mixing input parameters
Added stream mixing input parameters, supporting setting parameters such as volume volume and text watermark label for input streams.
For related APIs, please refer to ZegoMixerInput
-
Added callback interfaces for device volume change and voice state change events
Added callback interfaces:
-
onAudioDeviceVolumeChanged: Callback for receiving audio device volume change events. After calling startAudioDeviceVolumeMonitor to enable audio device volume monitoring, if the volume changes, this callback will be triggered.
-
onAudioVADStateUpdate: Callback for detecting the steady-state voice state of audio data. After calling startAudioVADStableStateMonitor to start voice state detection, and in the state of publishing stream or preview, this callback will be triggered.
-
Version 3.1.0
Release Date: 2022-12-12
Improvements
-
Performed internal optimization on rendering logic, improving rendering performance to a certain extent
-
Significantly improved the audio and video connectivity rate in extremely weak network areas, and reduced connectivity time
ZEGOCLOUD's self-developed scheduling system has been deeply optimized for areas with extremely poor network quality.
Bug Fixes
-
Fixed the issue where the SDK UI thread might get stuck in specific scenarios
-
Fixed the issue where sending room [Logout] signaling might fail
-
Fixed the occasional crash issue with wild pointer access in video external capture in memory mode
Version 3.0.3
Release Date: 2022-11-28
Bug Fixes
-
Fixed the issue where other people in the room could not receive the stream deletion notification when stopping publishing stream in multi-room mode
-
Fixed the issue where calling the destroyEngine interface might cause UI lag when using custom video pre-processing
Version 3.0.1
Release Date: 2022-11-04
This update includes incompatible changes. For details, please refer to Upgrade Guide for Version 3.0.0 and Above.
New Features
-
Added ten sound effect preset values such as deep and low voice.
The
presetparameter of the setVoiceChangerPreset interface adds ten sound effect preset values such as deep and low voice. -
Added image fill mode for custom video capture and stream publishing
Added setCustomVideoCaptureFillMode interface to support setting the image fill mode for custom video capture and stream publishing
-
Added registerCustomAudioProcessPlugin, unregisterCustomAudioProcessPlugin interfaces for setting audio data plugins
The media player adds registerCustomAudioProcessPlugin, unregisterCustomAudioProcessPlugin interfaces for setting audio data plugins, mainly used to get media player audio data.
-
Support for setting SDK data cache directory
Supports setting the SDK data cache directory through the data_cache_dir field in the
advancedConfigparameter of the setEngineConfig interface.
Improvements
Note: When upgrading to SDK version 3.0.1, if you are also using the screen capture plugin SDK zego-express-engine-electron-plugin-screen-capture, please make sure to update to the latest version 0.3.0-114 for use together.
- Optimized the smoothness of custom video capture.
Bug Fixes
-
Fixed the crash issue of the media player in certain special scenarios
-
Fixed the issue where audio first frame callbacks could not be received on certain special macOS systems
-
Fixed the crash issue of custom video capture in certain abnormal scenarios
Deprecated and Removed
-
Deprecated three old scenario versions of [ZegoScenario]
Deprecated [General], [Communication], [Live] scenarios in the [ZegoScenario] scenario enumeration. For details, please refer to the Scenario-based Audio and Video Configuration documentation.
-
Deleted interfaces such as [setDebugVerbose], [setPlayStreamVideoLayer], [loginMultiRoom]. For details, please refer to Upgrade Guide for Version 3.0.0 and Above.
-
Deleted [onDeviceError] callback interface.
Version 2.23.0
Release Date: 2022-09-13
New Features
-
Added camera data plugin feature
Supports getting camera data plugins, mainly used for scenarios where camera data is obtained through Node.js plugins.
For related APIs, please refer to getCameraVideoDataCapturePlugin
-
Added some output parameters for stream mixing video
Supports configuring related parameters for stream mixing video output. Developers can set video stream mixing related configurations.
For related APIs, please refer to startMixerTask
-
Support for specifying NTP calibration for stream publishing
Used for developers to perform NTP calibration during the specified stream publishing process, mainly used for stream alignment in stream mixing scenarios.
For related APIs, please refer to startPublishingStream
Version 2.22.0
Release Date: 2022-08-10
New Features
-
Added sound effect player feature
Sound effects refer to short effect sounds played to enhance realism or set the scene atmosphere, for example, playing applause, gift sound effects, and prompt sounds during live streaming; in games, playing bullet sounds and collision sounds.
The sound effect player supports sound effect playback (multiple sound effects can be played overlappingly), playback control (such as pausing playback, volume adjustment, setting playback progress), and preloading sound effects.
For related APIs, please refer to createAudioEffectPlayer, destroyAudioEffectPlayer
-
Added isFeatureSupported interface to support querying SDK feature support
Since the SDK supports feature cropping, some features may have been cropped. Now the isFeatureSupported interface is provided to query whether the SDK supports specified feature features, for example, to query whether media player features are supported.
For related APIs, please refer to isFeatureSupported
-
Support for using the logoutRoom interface to exit all rooms
In scenarios where users use multiple rooms, you can call the logoutRoom interface once to exit all logged-in rooms.
For related APIs, please refer to logoutRoom
Version 2.21.2
Release Date: 2022-07-26
Improvements
-
Optimized the callback method for copyrighted music related interfaces
Optimized the callback method for copyrighted music related interfaces, which can reduce the complexity of developers calling interfaces. The SDK returns callback results to the caller through Promise.
For related APIs, please refer to initCopyrightedMusic, sendExtendedRequest, getLrcLyric, getKrcLyricByToken, requestSong, requestAccompaniment, requestAccompanimentClip, download, getStandardPitch, loadCopyrightedMusicResourceWithPosition, loadResourceWithPosition
Version 2.21.1
Release Date: 2022-07-15
Bug Fixes
- Fixed the issue where sending SEI failed in audio-only scenarios
Version 2.21.0
Release Date: 2022-07-12
New Features
-
Added copyrighted music feature
Note: If you need to use this feature, please contact ZEGOCLOUD Technical Support.
Supports getting copyrighted song or accompaniment resources through the copyrighted music feature and combining them with the media player for local playback control. Can be used for scenarios such as online KTV, audio chat rooms for chorus or using background music.
-
Added custom audio feature
Note: If you need to use the custom audio capture feature, you need to develop capture plugins based on the plugin template provided by the SDK, and then register the capture plugin to the SDK through registerCustomAudioCapturePlugin.
- Customers need to obtain captured input from existing audio streams, audio files, or customized capture systems and hand it over to the SDK for transmission.
- Customers have their own needs for special sound effect processing on PCM input sources, and after sound effect processing, hand it over to the SDK for transmission.
For related APIs, please refer to enableCustomAudioIO, registerCustomAudioCapturePlugin, unregisterCustomAudioCapturePlugin
-
Support for setting the volume of sound card capture
Users can adjust the volume size of system sound card capture through SetMixSystemPlayoutVolume.
For related APIs, please refer to SetMixSystemPlayoutVolume
-
Support for getting synchronized network time information
When synchronizing multi-device behavior, you can get synchronized network time through getNetworkTimeInfo to calibrate the current time.
For related APIs, please refer to getNetworkTimeInfo
-
Support for enabling stream mixing precise alignment feature
Commonly used in scenarios such as KTV that require stream mixing alignment.
For related APIs, please refer to setStreamAlignmentProperty
Bug Fixes
- Fixed the memory leak issue of custom video capture.
- Fixed the crash issue of the media player.
- Fixed the issue where previous frame residues appeared in canvas2d rendering when the video source aspect ratio changed.
Version 2.19.0
Release Date: 2022-05-13
New Features
-
Support for setting all playing stream volumes
Express-Video SDK added [setAllPlayStreamVolume] interface for setting the volume size of all playing streams. That is, local users can control the playback volume of all audio streams.
For related APIs, please refer to setAllPlayStreamVolume
Bug Fixes
- Express-Video SDK fixed the parameter error issue of the onAudioDeviceStateChanged callback interface.
Version 2.17.3
Release Date: 2022-03-28
Upgrade Essentials
This major version upgrade includes three Breaking Changes. Please refer to "Deprecated and Removed" below for code adaptation.
New Features
-
Added debug assistant feature
WarningThis feature is only used during the development phase. Do not enable this feature in the online version. Make sure to disable this interface in the release version.
Added [enableDebugAssistant] interface. Developers call this interface to enable the debug assistant feature. The SDK will print logs to the console, and when exceptions occur in calls to other SDK interfaces, the UI will pop up a prompt for errors.
For related APIs, please refer to enableDebugAssistant
-
Added [setLogConfig] interface for setting log properties
When developers need to customize log file size and path, they can call the [setLogConfig] interface to complete the configuration. It must be set before calling [createEngine] to take effect. If set after [createEngine], it will take effect at the next [createEngine] after [destroyEngine]. Once the [setLogConfig] interface is called, before [destroyEngine], that is, during the entire lifecycle of the engine, the old way of setting log size and path through [setEngineConfig] will be invalid. It is recommended that once you use this interface, always only use it to complete the needs of setting log path and size.
For related APIs, please refer to setLogConfig
-
Added feature to set room mode
The same user can join multiple rooms at the same time, and publish streams, play streams, send real-time messages and receive message callbacks in multiple rooms at the same time (currently supports joining up to 5 rooms at the same time by default). This feature can isolate messages and callbacks from multiple rooms, achieving more flexible mic connection business. ZEGO recommends it for cross-room mic connection and online education super small class scenarios.
You need to call [ZegoRoomMode] to set multi-room mode before initializing the SDK, and then call the [loginRoom] interface to login to multiple rooms.
For related APIs, please refer to setRoomMode, loginRoom
-
Support for pushing static images when camera is turned off
When the camera is turned off, supports continuously pushing static images in JPEG/JPG, BMP and HEIF formats. For example, when the anchor goes to the background, they will actively turn off the camera, and at this time the audience side needs to display a picture of the anchor temporarily leaving.
After initializing the SDK, before turning off the camera, set the path of the static image to be pushed through the [setDummyCaptureImagePath] interface. After starting normal stream publishing, when you call the [enableCamera] interface to turn off the camera, pushing static images will start, and when you call the [enableCamera] interface to turn on the camera, pushing static images will end.
For related APIs, please refer to setDummyCaptureImagePath
-
Added voice detection feature and sound level callback for human voice part
When developers monitor sound level callbacks, they often only care about the human voice part. They can call the [startSoundLevelMonitorWithConfig] interface, pass in "ZegoSoundLevelConfig", and enable VAD human voice detection.
When developers monitor sound level callbacks, they often only care about the human voice part. They can call the [startSoundLevelMonitorWithConfig] interface, pass in "ZegoSoundLevelConfig", and enable VAD human voice detection. The SDK also adds parameters for whether to include human voice detection in the local capture sound level callback [onCapturedSoundLevelInfoUpdate] and remote audio sound level callback [onRemoteSoundLevelInfoUpdate].
For related APIs, please refer to startSoundLevelMonitorWithConfig, onCapturedSoundLevelInfoUpdate, onRemoteSoundLevelInfoUpdate
-
Added custom audio processing feature
Allows developers to perform custom processing on audio data after capturing audio data or before rendering remote audio data. This feature is usually used for scenarios such as "voice changing" and "beautifying voice".
Added [enableCustomAudioCaptureProcessing], [enableCustomAudioCaptureProcessingAfterHeadphoneMonitor], [registerCustomAudioProcessPlugin] interfaces. Developers can call the [enableCustomAudioCaptureProcessing] or [enableCustomAudioCaptureProcessingAfterHeadphoneMonitor] interface to enable custom audio processing feature, and then register the audio processing plugin provided to you by the SDK through the [registerCustomAudioProcessPlugin] interface.
For related APIs, please refer to enableCustomAudioCaptureProcessing, registerCustomAudioProcessPlugin, enableCustomAudioCaptureProcessingAfterHeadphoneMonitor
-
Added Token expiration management mechanism
WarningUsing this feature requires upgrading the SDK and contacting ZEGOCLOUD Technical Support for configuration.
Different business scenarios have time limit restrictions on user permissions such as logging into rooms and publishing streams, which can be achieved through Token. This mechanism can make user permission management more secure and is commonly used in scenarios such as KTV and audio chat rooms.
30 seconds before Token expires, the SDK will send a notification through the [onRoomTokenWillExpire] callback. After receiving this callback, developers need to get a new valid Token from their server and call the [renewToken] interface provided by the SDK to update the Token.
For related APIs, please refer to renewToken, onRoomTokenWillExpire
-
Added local device exception callback
Through the [onLocalDeviceExceptionOccurred] callback, you can set the device types to detect, such as cameras, speakers, microphones, etc. Developers can perform corresponding processing based on error callbacks for different device types.
For related APIs, please refer to onLocalDeviceExceptionOccurred
-
Added feature to set playing stream cache interval range value
Through the [setPlayStreamBufferIntervalRange] interface, set the interval range for adaptive adjustment of playing stream playback cache. Generally, in poor network environments, increasing the playing cache of playing streams will significantly reduce audio and video stuttering, but will increase latency.
For related APIs, please refer to setPlayStreamBufferIntervalRange
-
Support for ROI (region of interest) intelligent video encoding to improve specified region quality
WarningCurrently only specific video encoders support this feature. If you need to use it, please contact ZEGOCLOUD Technical Support.
Developers can call the setCustomVideoCaptureRegionOfInterest interface to set the region of interest (ROI) for the custom video capture encoder of the specified publishing channel. With the same bitrate, the image quality within the ROI region is clearer.
This feature is commonly used in scenarios such as remote control and face detection.
For related APIs, please refer to setCustomVideoCaptureRegionOfInterest
-
Electron supports macOS arm64 architecture
Improvements
-
Version number adjustment
Starting from this version, the version number of ZEGO Express Electron SDK will be consistent with the version number of the dependent ZEGO Express Native SDK.
NoteNative mainly refers to Android, iOS, macOS and Windows platforms.
-
Release repository adjustment
Starting from this version, ZEGO Express Electron SDK will be divided into two repositories on npm, separately providing standard video feature package and video feature package with whiteboard capabilities.
-
Optimized authentication method
For version 2.17.3 and above, when creating the engine, pass AppSign as empty or do not pass it, and must pass Token when logging into the room. After authentication passes, you can use real-time audio and video features. For details, please refer to Using Token Authentication.
For versions below 2.17.3, when creating the engine, pass AppSign. After authentication passes, you can use real-time audio and video features.
For related APIs, please refer to createEngine, loginRoom
-
Interface optimization
- [startPlayingStream] interface adds "roomID" parameter, [startPublishingStream] interface adds "config" parameter, mainly used for multi-room features.
- [startNetworkSpeedTest] interface adds "interval" parameter, which can be used to specify the callback time interval of the interface, making it convenient for users to customize.
Bug Fixes
- Fixed the memory leak issue when using webgl rendering on certain Windows devices.
Deprecated and Removed
-
Deleted old [initWithProfile] interface
To synchronize with ZEGO Express Native SDK, the [initWithProfile] interface is deleted in version 2.17.3 and above. Please use [createEngine] to implement the original functionality.
For related APIs, please refer to createEngine
-
Deleted old [uninit] interface
To synchronize with ZEGO Express Native SDK, the [uninit] interface is deleted in version 2.17.3 and above. Please use [destroyEngine] to implement the original functionality.
For related APIs, please refer to destroyEngine
-
Deleted old [enableConsolePrintDebugInfo] interface
To synchronize with ZEGO Express Native SDK, the [enableConsolePrintDebugInfo] interface is deleted in version 2.17.3 and above. Please use [enableDebugAssistant] to implement the original functionality.
For related APIs, please refer to enableDebugAssistant
Version 0.26.0
Release Date: 2022-01-17
Improvements
-
Optimized API interface comments
Completed the optimization of API interface comments, adding information such as "detailed description", "business scenarios", "calling timing" to some API comments, making it easier for developers to clearly understand the functionality of the API.
-
Default maximum number of publishing channels increased from 2 to 4
Before version 0.26.0, the default maximum number of publishing channels was 2. If more were needed, ZEGOCLOUD Technical Support was required for special packaging. This version increases the default maximum number of publishing channels to 4.
For related APIs, please refer to startPublishingStream
Version 0.25.4
Release Date: 2021-12-30
Bug Fixes
- Fixed the issue where Electron could not sign on certain Mac machines.
Version 0.25.3
Release Date: 2021-11-17
New Features
-
Support for printing debug feature
Added [enableConsolePrintDebugInfo] interface for printing debug information on the console.
WarningPlease make sure to disable this interface in the release version.
For related APIs, please refer to enableConsolePrintDebugInfo
Improvements
-
Remove test environment
To reduce developers' understanding cost of environments, ZEGO has unified the environment concept. Starting from this version, the test environment is deprecated and the production environment is used uniformly.
For related APIs, please refer to initWithProfile
Deprecated and Removed
-
Deprecated old [init] interface
To reduce developers' understanding of environments, the test environment is deprecated and the environment is unified. In version 0.25.3 and above, the original [init] interface is deprecated. Please use the [initWithProfile] interface instead.
For related APIs, please refer to init
Version 0.25.2
Release Date: 2021-11-01
Bug Fixes
- Fixed some known issues with WebGL.
Version 0.25.1
Release Date: 2021-11-01
Bug Fixes
- Fixed the rendering issue where canvas size did not change when preview mode was set to 1/2.
Version 0.25.0
Release Date: 2021-10-18
New Features
-
Added setPlayStreamVideoType interface for setting playing video stream type, replacing the original interface setPlayStreamVideoLayer.
-
Added setTrafficControlFocusOn interface for controlling whether to start traffic control due to poor remote network conditions. Before using, you must first enable traffic control through the enableTrafficControl interface.
Version 0.24.3
Release Date: 2021-09-29
New Features
-
Added canvas rendering mode
Added a rendering mode—canvas rendering, supporting rendering frames on Mac M1.
Version 0.24.2
Release Date: 2021-09-13
New Features
-
Support for callbacking remote speaker device status
Added callback [onRemoteSpeakerStateUpdate] for getting the status of remote speaker devices. When the status of remote speaker devices changes, you can get events related to remote speakers by listening to the callback. This event can be used to prompt users that audio may be abnormal. This callback is commonly used in 1v1 education scenarios or education small class scenarios. Developers can use this callback notification to determine whether the speaker device of the remote publishing device is working normally and preliminarily understand the cause of device problems based on the corresponding status.
For related APIs, please refer to onRemoteSpeakerStateUpdate
-
Support for getting currently used audio device information
Call the [getCurrentAudioDevice] interface to get currently used audio device information, including device ID and device name, reducing developers' workload.
For related APIs, please refer to getCurrentAudioDevice
Version 0.24.1
Release Date: 2021-08-20
Bug Fixes
- Fixed the issue where the callback onAudioDeviceStateChanged returned an error value.
Version 0.23.2
Release Date: 2021-06-24
Bug Fixes
- Fixed the issue where the RGB value of background color setting was incorrect.
Version 0.23.1
Release Date: 2021-06-24
Bug Fixes
- Fixed the WebGL rendering size issue when there were multiple rendering objects.
Version 0.23.0
Release Date: 2021-06-18
New Features
-
Added experimental API feature
ZEGO provides some technical previews or special custom features in RTC business through callExperimentalAPI . onRecvExperimentalAPI can be used to receive information returned by some experimental interfaces with callbacks. To obtain the usage method or details of this feature, you can consult ZEGOCLOUD Technical Support.
For related APIs, please refer to callExperimentalAPI , onRecvExperimentalAPI
-
Added screenshot feature for publishing and playing streams
Developers can call the takePublishStreamSnapshot interface to take screenshots of the preview/publishing stream, and call the takePlayStreamSnapshot interface to take screenshots of the specified playing stream. The screenshot resolution is the encoding resolution set in setVideoConfig .
This feature is commonly used in education-type scenarios. For example, in the classroom, based on students' performance and concentration, the student side can be asked to take preview screenshots, which are subsequently output as reports to parents.
For related APIs, please refer to takePublishStreamSnapshot , takePlayStreamSnapshot
-
Media player added screenshot feature
Developers can call the takeSnapshot interface to take screenshots of the current playing frame of the media player. Screenshots can only be taken normally when the display control is set through the [setPlayerCanvas] interface and in the playing state.
For related APIs, please refer to takeSnapshot
-
Added custom video pre-processing feature
Video pre-processing is a process between capture and encoding. After developers capture video data themselves or get video data captured by the SDK, if ZEGO Express SDK's built-in basic AI effects and watermark features cannot meet developers' needs (for example, the AI effects effect cannot meet expectations), they can use other video processing types of SDKs (such as ZegoEffects SDK) to perform some special processing on the video, such as AI effects, adding watermarks or pendants, etc. This process is custom video pre-processing. Developers can call the enableCustomVideoProcess interface to enable this feature.
For related APIs, please refer to enableCustomVideoProcess
-
Added mechanism for registering video pre-processing objects
Call the registerCustomVideoProcessPlugin interface to register the plugin object to RTC, used to notify RTC that this plugin needs to be used for custom video pre-processing (such as AI effects).
For related APIs, please refer to registerCustomVideoProcessPlugin
Bug Fixes
- Fixed the video size abnormality issue on Mac computers with retina screens.
Version 0.22.0
Release Date: 2021-01-18
Improvements
- Added advancedConfig to ZegoMixerTask
Bug Fixes
- Fixed the issue of parsing startMixerTask and stopMixerTask parameters.
- Fixed the issue of using enablePublishDirectToCDN for parameter analysis.
Version 0.21.0
Release Date: 2021-01-01
Improvements
- Deleted setReverbParam, please use setReverbParamAdvance instead
- Deleted getVolume in ZegoMediaPlayer, please use getPlayVolume and getPublishVolume instead
Bug Fixes
- Fixed the issue where logConfig was abnormal when using setEngineConfig.
Version 0.20.0
Release Date: 2020-12-18
New Features
- Added startNetworkSpeedTest
- Added stopNetworkSpeedTest
- Added onNetworkModeChanged callback
- Added onNetworkSpeedTestError callback
- Added onNetworkSpeedTestQualityUpdate callback
Version 0.19.0
Release Date: 2020-12-01
New Features
- Added setPlayStreamVideoLayer
- Added startMixerTask
- Added stopMixerTask
Improvements
- Added preserveDrawingBuffer to ZegoView
Version 0.18.0
Release Date: 2020-11-18
New Features
- Added enableCustomVideoCapture
- Added registerCustomVideoCapturePlugin and unregisterCustomVideoCapturePlugin
- Added enablePublishVideo in ZegoMediaPlayer
Improvements
- Added exception capture mechanism for user callback implementation
Bug Fixes
- Fixed the switchRoom parameter error issue.
- Fixed the setPlayVolume parameter type check issue.
Version 0.17.0
Release Date: 2020-11-01
New Features
- Added getDefaultAudioDeviceID
- Added getAudioDeviceVolume
- Added setAudioDeviceVolume
- Added switchRoom
- Added setReverbPreset
- Added setVoiceChangerPreset
- Added setReverbEchoParam
- Added setAudioCaptureSereMode
- Added enableTransientANS
- Added getPlayVolume and setPlayVolume in ZegoMediaPlayer
- Added getPublishVolume and setPublishVolume in ZegoMediaPlayer
- Added getAudioTrackCount and setAudioTrackIndex in ZegoMediaPlayer
- Added setVoiceChangerParam in ZegoMediaPlayer
Improvements
- Added millisecond parameter to startSoundLevelMonitor
- Added millisecond parameter to startSoundSpectrumMonitor
Version 0.10.0
Release Date: 2020-08-18
New Features
- Added createMediaPlayer and destroyMediaPlayer
- Added loginMultiRoom
- Added setRoomExtraInfo
- Added setAnsMode
- Added setAudioEqualizerGain
- Added setVoiceChangerParam
- Added setReverbParam
- Added enableVirtualStereo
- Added startRecordingCaptureData and stopRecordingCaptureData
- Added onCapturedDataRecordStateUpdate callback
- Added onCapturedDataRecordProgressUpdate callback
Version 0.9.0
Release Date: 2020-06-18
New Features
- Added isMicrophoneMuted and isSpeakerMuted
- Added getVideoConfig getAudioConfig
- Added enableHeadphoneMonitor and setHeadphoneMonitorVolume
- Added enableMixSystemPlayout
- Added onEngineStateUpdate
Version 0.7.0
Release Date: 2020-05-18
New Features
- Added ZegoExpressErrorCode.js file
- Added onRoomOnlineUserCountUpdate callback
Version 0.6.0
Release Date: 2020-04-18
Improvements
- Added totalSendBytes, audioSendBytes and videoSendBytes parameters to onPublisherQualityUpdate callback
- Added peerToPeerDelay, peerToPeerPacketLostRate, totalRecvBytes, audioRecvBytes and videoRecvBytes parameters to onPlayerQualityUpdate callback
Bug Fixes
- Fixed the setVideoMirrorMode parameter check issue.
- Fixed the video frame flip mode in webgl.
