Video Call
  • iOS
  • Android
  • Web
  • Flutter
  • React Native
  • Electron : JavaScript
  • 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
  • Upgrade using advanced features
    • Advanced features
      • Share the screen
      • Mix the video streams
  • Resources & Reference
    • SDK
    • Sample codes
    • API reference
      • Client APIs
      • Server APIs
    • Debugging
      • Error codes
    • FAQs
    • Key concepts
  • Documentation
  • Video Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2024-01-18 17:21

Version 3.12.4

Release date: 2024-01-18

Bug Fixes

1. Fixed the issue where UI freezes may occur in a very low probability if the network is abnormal when switching networks.



Version 3.12.3

Release date: 2024-01-08

New Features

Note:

Please contact ZEGOCLOUD technical support if you need to use this feature.

The plugin cannot be used alone and must be used with Express SDK.

Support for copyright-music function pluginization, when the developer's business scenario only needs to update the copyright-music related, you can independently integrate the plugin without updating the Express SDK, which can smoothly migrate.

2. Support for adding silent frames to audio and video streams transcoded to CDN.

Note: Please contact ZEGOCLOUD technical support if you need to use this feature.

Support is provided for adding silent frames to the audio and video streams that are pushed to the CDN. This can be used to avoid issues such as stuttering or audio-video synchronization problems caused by timestamp discrepancies.

3. Media player supports caching network resources locally.

Support local caching of network resources, so that if the same network resource needs to be played, cached data will be prioritized, enhancing user experience.

For related API, please refer to enableLocalCache, onMediaPlayerLocalCache

4. All network requests support the IPv6 protocol.

5. Hardware decoding acceleration supported for MJPEG format.

Note: This feature only supports pre-processing of screenshots and does not support other processing such as rotation or watermarking.

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 due to insufficient device performance.

This feature is suitable for use on capture devices with a 4K resolution mainly.

6. The media player supports callbacks for video resolution change events.

The media player supports throwing relevant callback notifications to developers when the video resolution changes. This feature is suitable for scenarios where the resolution of the streaming screen changes multiple times and requires adjusting the encoding resolution on the streaming end and matching the rendering view size on the receiving end.

For related API, please refer to onMediaPlayerVideoSizeChanged

Enhancements

1. 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.

2. Optimize the AEC (Acoustic Echo Cancellation) algorithm to achieve better AEC performance.

3. Optimize network connection strategies to enhance the experience of audio and video calls.

4. 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 1002086, indicating that the userID is already logged in another device.

Bug Fixes

1. Fix the crash issue when N card hardware decoding exits in certain situations on Windows.

2. Fixing the problem with the restart strategy when encountering camera abnormalities on Windows.

3. Fix the issue that When the system is in sleep mode, the SDK does not receive notifications for network status changes, resulting in inaccurate determination of network type on Windows or macOS.



Version 3.10.1

Release date: 2023-11-10

New Features

1. Media player supports accompaniment sound quality enhancement.

The media player supports accompaniment sound quality enhancement, which improves the sound quality of the accompaniment and the atmosphere of the scene. It is suitable for chat rooms, karaoke and other scenes.

For related API, please refer to enableLiveAudioEffect

Bug Fixes

1. Fixed the issue of a black screen appearing after turning on low-illumination enhancement.



Version 3.9.0

Release date: 2023-09-22

New Features

1. Support the segmentation and transmission of the main body in the video picture

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

New entity splitting and transmission functions. Through AI algorithm, the main body in the video screen (in most cases, the main body is a person) is separated from the background, and the data with transparent channel is returned to SDK for encoding. Realize the effect that only the main body in the video is transmitted instead of the original rectangular video.

Currently, this capability is only supported through internal collection.

2. The media player supports obtaining media stream video information.

For the video file being played by the media player, the developer can actively obtain information such as the resolution and frame rate of the video.

For related API, please refer to getMediaInfo

Enhancements

1. Optimize SDK compatibility and support hot updates for Electron 13 and above.

Note: This optimization cannot be used with non-Context-Aware type plug-ins, such as zego-express-engine-electron-plugin-screen-capture.

Bug Fixes

1. Fix the issue of abnormal listing of macOS applications.



Version 3.8.1

Release date: 2023-08-17

New Features

1. Windows supports the hard coding of the specified graphics card, and the texture input and output of hard coding and hard decoding.

Windows supports hard coding of specified graphics cards, supports hard coding and hard decoding of texture input and output, improves the efficiency of hardware coding and decoding on the Windows platform, and reduces end-to-end latency by 15 ms to 100 ms (the specific optimization effect is related to the graphics card used), This feature can be used in low-latency scenarios such as remote control.

2. The screen capture function supports obtaining the rectangular area when the capture source is "window"

The new interface getCaptureSourceRect is added to the screen capture function, which is used to obtain the rectangular area when the capture source is "window".

For related APIs, please refer to getCaptureSourceRect

Enhancements

1. Optimize the noise performance of the low-light enhancement algorithm.

2. Optimize the URL length of resources loaded by mediaplayers, with a maximum support of 2048 bytes.

3. Optimize the callback synchronization of media player SEI information and corresponding frame data to ensure the consistency of SEI and screen.

Bug Fixes

1. Fix the issue of watermark crashing during streaming.

2. Fix the probelm that changing the userID after [createEngine] and before [destroyEngine] may cause publish-play stream failure when using Token authentication.



Version 3.7.0

Release date: 2023.07.17

Enhancements

1. Optimize the internal logic of the SDK and reduce the memory usage by 400KB ~ 600KB.

2. Optimize the SDK video capture strategy to improve image quality.

3. In the publish-play stream retry state caused by network disconnection, support callback for local network quality.

For related API, please refer to onNetworkQuality

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

Bug Fixes

1. Fix the problem that after MediaRecorder and AudioObserver stop streaming, the local streaming is not resumed and the collection continues.

2. Fix the problem of multi-thread deadlock in NetMonitor module.

3. Fix the problem that isVideoDecoderSupported interface return value type error.

4. Fix the problem that the network speed test quality parameter quality in the callback of onNetworkSpeedTestQualityUpdate cannot receive data.

5. Fix the problems that affect the AppStore of Electron Apps.



Version 3.6.0

Release date: 2023.06.20

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

2. External collection supports active offset NTP timestamps.

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

When using the external acquisition function, support actively offsetting the NTP timestamp through the experimental API interface. This function can be used in KTV chorus, accompaniment, lyrics alignment and other scenarios.

3. Support the first frame callback for audio and video streaming.

When publishing audio and video stream, monitor the release timing of the "first frame of audio" or "first frame of video" through onPublisherSendAudioFirstFrame and onPublisherSendVideoFirstFrame callbacks. This function can be used to count the time consumption of audio and video streaming, or update UI performance, etc.

4. Support for fast switching rooms in multi-room mode.

In the multi-room mode, the switchRoom interface is supported to quickly and conveniently realize the function of switching rooms.

5. Support to stop or resume all pulled audio streams at the same time

Added the muteAllPlayStreamAudio interface. When the developer needs to quickly close or resume the remote audio, this function can be called to stop or resume all audio streams being pulled. Compared with re-pulling the stream, this function can greatly reduce the time consumption and improve the interactive experience.

6. The media player supports obtaining sound waves and spectrum when playing music

The media player has added a new sound wave spectrum callback and switch interface, which can control whether to turn on the callback and the frequency of the callback, so as to obtain the current sound wave and spectrum of the media player. When playing resources through the media player, such as watching a movie together or chatting in a room with a game, this function can be used to perform the function of spectrum animation to increase the interest.

After creating the media player, call the enableSoundLevelMonitor interface to enable sound monitoring. After enabling it, you can use the onMediaPlayerSoundLevelUpdate callback to monitor the sound changes.

After creating the media player, call the enableFrequencySpectrumMonitor interface to enable spectrum monitoring. After enabling it, you can use the onMediaPlayerFrequencySpectrumUpdate callback to monitor the spectrum changes.

Bug Fixes

1. Fix the problem that the media player cannot make the playback progress jump to 0 through the seekTo interface in some m3u8 file formats.

2. Fix the occasional problem that the video on the streaming side freezes after re-pushing the stream.

3. Fixed an issue that could cause a memory leak when using the media player.



Version 3.4.2

Release date: 2023.04.25

New Features

1. Support multi-source acquisition capability

For interactive scenarios with rich and diverse audio and Video sources such as online KTV, watching movies together, watching games, Video conferencing, online education, etc., multi-source acquisition provides flexible and easy-to-use audio and Video acquisition sources and channel management capabilities, greatly reducing the developer's effort. Development and maintenance costs.

Multi-source capture capability shortens, optimizes and normalizes the implementation paths of common capabilities such as Screen Sharing and Audio Mixing. From version 3.4.2 onwards, you no longer need to implement the above complex capabilities through custom capture.

The main capabilities and characteristics are as follows:

  • The streaming channel supports setting or switching multiple audio and Video sources.
  • Supports common capabilities like Screen Sharing, Audio Mixing, etc.

2. Express Electron SDK supports Linux platform

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

Bug Fixes

1. Fix the problem that In-game Voice Chat can be heard abnormally in some cases

2. Fix the problem that the actual capture frame rate of Screen Sharing on the macOS platform is lower than the set frame rate



Version 3.3.0

Release date: 2023.03.17

Enhancements

1. Optimize the SDK collection and rendering logic, and improve the rendering performance.

Bug Fixes

1. Fix the problem that the Co-hosting crash occurred in a few cases



Version 3.2.0

Release date: 2023.02.02

Enhancements

1. Camera data plug-in function extension

The Camera data plug-in function supports the acquisition of pre-processed data.

For related APIs, please refer to getCameraVideoDataCapturePlugin, enableCustomVideoProcessing, registerCustomVideoProcessPlugin

2. The flow control enable interface supports setting the specified channel

For related APIs, please refer to enableTrafficControl

3. Custom signaling configuration support extended to 4KB

Note: The default size of the custom signaling configuration is 1KB, if it needs to be extended to 4KB, please contact ZEGO technical support for processing.

Bug Fixes

1. Fixed the problem that the network time module fails to retry.

2. Fixed the problem that may cause crash in certain scenarios.



Version 3.1.1

Release date: 2022.12.22

New features

1. Add streaming media encryption function

Supports encryption of streaming media data by using AES-128/192/256.

For related APIs, please refer to setPublishStreamEncryptionKey, setPlayStreamDecryptionKey

2. Added the function of setting the priority of streaming

Support setting the weight of streaming priority. This interface can be used when the developer needs to give priority to ensuring the quality of a stream in terms of business.

This interface can be used when the developer needs to give priority to ensuring the quality of a stream in terms of business. For example: if the student pulls multiple streams, the teacher stream can be set as a high priority in class.

For related APIs, please refer to setPlayStreamFocusOn

3. Support setting the minimum value of video frame rate and video resolution

Added setMinVideoFpsForTrafficControl and setMinVideoResolutionForTrafficControl interfaces, which can be used to set the minimum video frame rate and resolution by calling the interface when the user network is poor and traffic control is enabled, to help users comprehensively control the video display effect.

4. Support setting H.265 encoding automatic downgrade

When using the H.265 encoding method to push streams, it supports automatic downgrading of H.265 encoding to H.264 encoding under abnormal circumstances:

  • After automatic downgrade is enabled, when H.265 encoding is not supported or H.265 encoding fails, the SDK will try to downgrade and use H.264 encoding for streaming.
  • After automatic downgrade is turned off, when H.265 encoding is not supported or H.265 encoding fails, direct streaming fails.

For example: In the scenarios of multi-person live broadcast and show live broadcast, use H.265 encoding to push the stream, so as to save CDN traffic without reducing the image quality.

For related APIs, please refer to enableH265EncodeFallback

5. Support to obtain the codec capability support status of the specified video codec of the current device

The SDK supports obtaining the support status of the codec mode of the specified video codec of the current device, so as to better help developers choose the codec and encoding mode to use and obtain better results.

  • Through the isVideoEncoderSupported interface, the hardware or software encoding support of the current encoder can be obtained.
  • Through the isVideoDecoderSupported interface, the hardware or software decoding support of the current decoder can be obtained.

Both of the above two interfaces contain three enumerated values: support hardware or software, support hardware, support software.

6. Support setting low-light enhancement

The setLowlightEnhancement interface should be called after calling the createEngine interface to create an engine.

When the surrounding environment of the push stream user is dark, or the frame rate of the camera is set high, resulting in a dark live broadcast image, which cannot be displayed or recognized normally, you can call the setLowlightEnhancement interface to set Low-light enhancement to improve the brightness of video images. The low-light enhancement function includes three modes: 1: Disable low-light enhancement (default), 2: Enable low-light enhancement, 3: Automatically switch low-light enhancement.

Developers can choose different low-light enhancement modes according to business scenarios: when they want to judge whether low-light enhancement is needed, they can switch between modes 1 and 2 to control; when they want the SDK to automatically enhance, they can use mode 3, and the SDK will Automatically judge the lighting environment in which the user is located, and turn on or off low-light enhancement.

7. Support monitoring the volume of audio equipment

The volume of audio input/output devices can be monitored.

For related APIs, please refer to startAudioDeviceVolumeMonitor, stopAudioDeviceVolumeMonitor

8. Support muting audio devices

Audio input/output devices can be muted as desired.

For related APIs, please refer to muteAudioDevice

9. Support mixing the sound played by the engine into the push stream

This function allows users to mix the sound played by the SDK into the push stream. For example: during the live broadcast class, the teacher and the students are connected to each other, and the teacher can mix the streaming sound into the push stream.

For related APIs, please refer to enableMixEnginePlayout

10. Support steady state speech detection

Supports detection of steady-state conditions for speech. For example: when the post-acquisition type is specified and a microphone is used to collect, this interface can be used to detect whether the host has continuous and stable voice input.

Related API please refer to startAudioVADStableStateMonitor, stopAudioVADStableStateMonitor

11. Added mixed flow input parameters

Added mixed stream input parameters, which support setting parameters such as volume and text watermark label of the input stream.

For related API, please refer to ZegoMixerInput

12. Added callback interface for device volume change and voice state change events

Added callback interface:



Version 3.1.0

Release date: 2022.12.12

Enhancements

1. Internally optimize the rendering logic, which improves the rendering performance to a certain extent

2. Greatly increase the audio and Video connection rate in extremely weak network areas, and reduce the time-consuming connection

ZEGO's self-developed scheduling system has been deeply optimized for areas with extremely poor network quality.

Bug Fixes

1. Fixed the problem that the UI thread stuck in the SDK in a specific scenario

2. Fix the problem that sending room [Logout] signaling may fail

3. Fix the problem that the access field pointer occasionally crashes when the Video is captured externally in memory mode



Version 3.0.3

Release date: 2022.11.28

Bug Fixes

1. Fixed the problem that other people in the room will not receive the stream deletion notification when the publish streams is stopped in multi-room mode.

2. When using Custom Video Pre-processing, calling the destroyEngine interface may cause the UI to get stuck.



Version 3.0.1

Release date: 2022.11.04

This update contains incompatible changes, please refer to Version 3.0.1 Upgrade Guide for details.

New Features

1. Added ten AudioEffect Preset such as thick and deep.

setVoiceChangerPreset The preset parameter of the interface has added ten AudioEffect Preset values such as rich and low-level.

2. Added image fill mode for Custom Video Capture and publish streams

Added setCustomVideoCaptureFillMode interface to support setting the image fill mode for Custom Video Capture and publish streams

3. Added registerCustomAudioProcessPlugin and unregisterCustomAudioProcessPlugin interfaces for setting Audio data plug-ins

The registerCustomAudioProcessPlugin and unregisterCustomAudioProcessPlugin interfaces are added to the media Media Player for setting the Audio data plug-in, which are mainly used to obtain the Audio data of the Media Player .

4. Support setting SDK data cache directory

Supports setting the SDK data cache directory through the data_cache_dir field in the advancedConfig parameter of the setEngineConfig interface.

Enhancements

Note: When upgrading to SDK version 3.0.1, if you use the screen capture plugin SDK zego-express-engine-electron-plugin-screen-capture at the same time, be sure to update to the latest version 0.3.0-114 for use .

1. Optimized the fluency of Custom Video Capture.

Bug Fixes

1. Fix the crash of the Media Player in some special scenarios

2. Fixed the issue that the first Audio frame callback could not be received on some special macOS systems

3. Fixed the crash of Custom Video Capture in some abnormal scenarios

Deleted

1. Abandoned three old versions of [ZegoScenario] Three scenarios of [General], [Communication], [Live] in [ZegoScenario] scene enumeration are abandoned.

2. Removed [setDebugVerbose], [setPlayStreamVideoLayer], [loginMultiRoom] and other interfaces. For details, please refer to v3.0.1 Upgrade Guide.

3. Remove the [onDeviceError] callback interface.



Version 2.23.0

Release date: 2022.09.13

New Features

1. Added the function of getting Camera data plugin

Supports getting Camera data plug-in, mainly used in the scene of obtaining Camera data through Node.js plug-in.

For related APIs, please refer to getCameraVideoDataCapturePlugin

2. Added some output parameters for Stream Mixing Video

Supports configuration of related parameters of Stream Mixing Video output, and developers can set related configuration of Video Stream Mixing.

For related APIs, please refer to startMixerTask

3. Support publish streams to specify NTP calibration

It is used for developers to perform NTP calibration during the specified publish streams process. It is mainly used for stream alignment in Stream Mixing streaming scenarios.

For related APIs, please refer to startPublishingStream



Version 2.22.0

Release date: 2022.08.10

New Features

1. Added Audio Effect Player function

AudioEffect refer to short sound effects played to enhance the sense of realism or to enhance the atmosphere of the scene. For example, during live broadcasts, applause, gift AudioEffect, prompt sounds, etc. are played; in games, bullet sounds and collision sounds are played.

The Audio Effect Player supports AudioEffect playback (multiple AudioEffect can be overlapped and played), playback Controller(such as pause playback, Volume adjustment, setting playback progress), preloading AudioEffect and other functions.

For related APIs, please refer to createAudioEffectPlayer, destroyAudioEffectPlayer

2. Added isFeatureSupported interface, which supports querying the features supported by the SDK

Since the SDK supports the feature tailoring function, some features may have been tailored. The isFeatureSupported interface is now provided to query whether the SDK supports the specified feature, for example, query whether the Media Player function is supported.

For related APIs, please refer to isFeatureSupported

3. Support logoutRoom interface to log out of all rooms

In the scenario where the user uses multiple rooms, the logoutRoom interface can be called once to log out of all logged-in rooms.

For related APIs, please refer to logoutRoom



Version 2.21.2

Release date: 2022.07.26

Enhancements

Optimize the callback method of copyrighted music-related interfaces, which can reduce the complexity of calling the interface for developers. The SDK returns the callback result 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

1. Fixed the problem of sending SEI failed in audio scene.



Version 2.21.0

Release date: 2022-07-12

New Features

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

Support to obtain copyrighted songs or accompaniment resources through the copyrighted music function, and combine with the Media Player for local playback Controller. It can be used for chorus or background music scenes such as online KTV, Voice Chatroom, etc.

2. Added custom Audio function

Note: If you want to use the custom Audio capture function, you need to develop the capture plug-in according to the plug-in template provided by the SDK, and then register the capture plug-in to the SDK through registerCustomAudioCapturePlugin.

  • Customers need to obtain post-capture input from existing Audio streams, Audio files, or customized capture systems, and send them to the SDK for transmission.
  • Customers have their own needs for special AudioEffect processing for the PCM input source. After the AudioEffect is processed, the input is sent to the SDK for transmission.

For related APIs, please refer to enableCustomAudioIO, registerCustomAudioCapturePlugin, unregisterCustomAudioCapturePlugin

3. Support setting the Volume of sound card capture

Users can adjust the Volume captured by the system sound card through SetMixSystemPlayoutVolume.

For related APIs, please refer to SetMixSystemPlayoutVolume

4. Support to obtain synchronous network time information

When synchronizing multi-terminal behavior, you can obtain the synchronized network time through getNetworkTimeInfo and calibrate the current time.

For related APIs, please refer to getNetworkTimeInfo

5. Support to enable precise alignment of Stream Mixing streams

It is often used in KTV and other scenes that require Stream Mixing alignment.

For related APIs, please refer to setStreamAlignmentProperty

Bug Fixes

  1. Fixed the problem of memory leak of Custom Video Capture.
  2. Fixed the crash of the Media Player.
  3. When the aspect ratio of the Video source changes, the issue of the previous frame remaining when rendering with canvas2d has been fixed.

Version 2.19.0

Release date: 2022-05-13

New Features

1. Supports setting all play streams Volume

The Express-Video SDK adds the [setAllPlayStreamVolume] interface, which is used to set the Volume of all play streams . That is, the local user can Controller the playback Volume of all Audio streams.

For related APIs, please refer to setAllPlayStreamVolume

Bug Fixes

  1. Express-Video SDK fixed the problem that the onAudioDeviceStateChanged callback interface parameter was incorrect.

Version 2.17.3

Release date: 2022-03-28

This major version upgrade includes three Breaking Changes. Please refer to the "Deletion and Deleted" below for code adaptation.

New Features

1. Added debugging assistant function

This function is only used in the development stage. Do not enable this function in the online version, and make sure to disable this interface in the release version.

Added the [enableDebugAssistant] interface. The developer calls this interface to enable the debugging assistant function. The SDK will print the log to the ZEGO Admin Console. When an exception occurs in the calls of other SDK interfaces, the UI will pop up an error message.

For related APIs, please refer to enableDebugAssistant

2. Added [setLogConfig] interface for setting log properties

When developers need to customize the LogSize and path, they can call the [setLogConfig] interface to complete the configuration, and must be set before calling [createEngine] to take effect. If set after [createEngine], it will take effect on the next [createEngine] after [destroyEngine]. Once the [setLogConfig] interface is called, before [destroyEngine], that is, the entire life cycle of the engine, the old way of setting the log size and path through [setEngineConfig] will be invalid. It is recommended that once this interface is used, the need to set the log path and size is always done only through it.

For related APIs, please refer to setLogConfig

3. Added the function of setting 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, a maximum of 5 rooms can be joined at the same time by default). This function can isolate the messages and callbacks of multiple rooms, and realize more flexible Co-hosting business. ZEGO is recommended for super small class scenarios with Co-hosting and online education.

Before initializing the SDK, call [ZegoRoomMode] to set the multi-room mode, and then call the [loginRoom] interface to Multiple Rooms.

For related APIs, please refer to setRoomMode, loginRoom

4. 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, BMP and HEIF 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 pushed static image through the [setDummyCaptureImagePath] interface before closing the Camera. After starting to publish streams normally, calling the [enableCamera] interface to close the Camera will start to push the static image, and calling the [enableCamera] interface to open the Camera will end. Push static images.

For related APIs, please refer to setDummyCaptureImagePath

5. Added the function of enabling human voice detection and the sound wave callback of the human voice part

When developers monitor the sound wave callback, they usually only pay attention to the vocal part. They can call the [startSoundLevelMonitorWithConfig] interface and pass in "ZegoSoundLevelConfig" to enable VAD vocal detection.

When developers monitor the sound wave callback, they usually only pay attention to the vocal part. They can call the [startSoundLevelMonitorWithConfig] interface and pass in "ZegoSoundLevelConfig" to enable VAD vocal detection. The SDK also adds a parameter for whether to include human voice detection in the local capture sound wave callback [onCapturedSoundLevelInfoUpdate] and the remote Audio sound wave callback [onRemoteSoundLevelInfoUpdate].

For related APIs, please refer to startSoundLevelMonitorWithConfig, onCapturedSoundLevelInfoUpdate, onRemoteSoundLevelInfoUpdate

6. Added Custom Audio Processing function

Allows developers to perform custom processing on Audio data after collecting Audio data or before pulling remote Audio data for rendering. This function is usually used in scenes such as "voice Voice Changer" and "bel canto".

Added [enableCustomAudioCaptureProcessing], [enableCustomAudioCaptureProcessingAfterHeadphoneMonitor], and [registerCustomAudioProcessPlugin] interfaces. Developers can call the [enableCustomAudioCaptureProcessing] or [enableCustomAudioCaptureProcessingAfterHeadphoneMonitor] interface to enable Custom Audio Processing, and then register the Audio processing plug-ins provided by the SDK through the [registerCustomAudioProcessPlugin] interface.

For related APIs, please refer to enableCustomAudioCaptureProcessing, registerCustomAudioProcessPlugin, enableCustomAudioCaptureProcessingAfterHeadphoneMonitor

7. Added Token expiration management mechanism

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

Different business scenarios have time-limited permissions for users to log in to rooms, publish streams, etc., which can be implemented through Tokens. This mechanism can make user rights management more secure, and is often used in KTV and Voice Chatroom scenarios.

The SDK will send a notification through the [onRoomTokenWillExpire] callback 30 seconds before the token expires. After receiving the callback, the developer needs to obtain a new valid Token from its own server, and call the [renewToken] interface provided by the SDK to update the Token.

For related APIs, please refer to renewToken, onRoomTokenWillExpire

8. Add local device exception callback

Through the [onLocalDeviceExceptionOccurred] callback, you can set the device type to be detected, such as Camera, speaker, Microphone, etc., and the developer can handle the error callback according to different device types.

For related APIs, please refer to onLocalDeviceExceptionOccurred

9. Added the function of setting the play streams cache interval value

Use the [setPlayStreamBufferIntervalRange] interface to set the interval range for the adaptive adjustment of the play streams playback buffer. Generally, in the case of poor network environment, adjusting and increasing the playback cache of the play streams will significantly reduce the audio and Video freezes, but it will increase the delay.

For related APIs, please refer to setPlayStreamBufferIntervalRange

10. Support ROI (region of interest) intelligent Video coding, improve the quality of the specified area

Currently only specific Video encoders support this function, if you want to use it, please contact ZEGOCLOUD technical support.

Developers can call the [setCustomVideoCaptureRegionOfInterest] interface to set the region of interest (ROI) of the Custom Video Capture encoder for the specified push channel. Under the same bit rate, the image quality in the ROI region is clearer.

This function is often used in remote Controller, face detection and other scenarios.

For related APIs, please refer to setCustomVideoCaptureRegionOfInterest

11. Electron supports macOS arm64 architecture

Enhancements

1. Version number adjustment

Starting from this version, the version number of ZEGO Express Electron SDK will be consistent with the version number of ZEGO Express Native SDK that it depends on.

Native mainly refers to Android, iOS, macOS and Windows platforms.

2. Publish repository adjustments

Starting from this version, ZEGO Express Electron SDK will be divided into two repositories on npm, providing standard Video function pack and Video function pack with whiteboard capability respectively.

3. Optimized the authentication method

For versions 2.17.3 and above, pass the AppSign blank or not when creating the engine, and the Token must be passed in when logging in to the room. After the authentication is passed, the real-time audio and Video functions can be used. For details, please refer to Use Tokens for authentication\ .

For versions below 2.17.3, pass in AppSign when creating the engine. After the authentication is passed, the real-time audio and Video function can be used.

For related APIs, please refer to createEngine, loginRoom

4. Interface optimization

The [startPlayingStream] interface adds a "roomID" parameter, and the [startPublishingStream] interface adds a "config" parameter, which is mainly used for multi-room functions. The [startNetworkSpeedTest] interface adds the "interval" parameter, which can be used to specify the time interval for interface callbacks, which is convenient for users to customize.

Bug Fixes

  1. Fixed a memory leak when rendering with webgl on some Windows devices

Deleted

1. Remove the old [initWithProfile] interface

In order to synchronize with ZEGO Express Native SDK, the [initWithProfile] interface has been deleted in version 2.17.3 and above, please use [createEngine] to implement the original function.

For related APIs, please refer to createEngine

2. Remove the old [uninit] interface

In order to synchronize with ZEGO Express Native SDK, the [uninit] interface has been deleted in version 2.17.3 and above, please use [destroyEngine] to implement the original function.

For related APIs, please refer to destroyEngine

3. Remove the old [enableConsolePrintDebugInfo] interface

In order to synchronize with the ZEGO Express Native SDK, the [enableConsolePrintDebugInfo] interface has been removed in version 2.17.3 and above, please use [enableDebugAssistant] to implement the original function.

For related APIs, please refer to enableDebugAssistant



Version 0.26.0

Release date: 2022-01-17

Enhancements

1. Optimized API interface comments

The annotation optimization of the API interface has been completed, and some API annotations have added "detailed Description", "business scenario", "timing of the API call" and other information to facilitate developers to understand the functions of the API more clearly.

2. The default maximum number of push channels has been increased from 2 to 4

Versions prior to 0.26.0 have a default maximum number of 2 streaming channels. If you want to support more, you need a special package from ZEGO technical support. In this version, the default maximum number of publish streams has been increased to 4 channels.

For related APIs, please refer to startPublishingStream

Version 0.25.4

Release Date: 2021-12-30

Bug Fixes

  1. Fixed the issue that Electron could not sign on some Mac machines.


Version 0.25.3

Release date: 2021-11-17

New features

1. Support print debugging function

Added [enableConsolePrintDebugInfo] interface for printing debugging information on the console.

Please make sure to disable this interface on the release version.

For related API, please refer to enableConsolePrintDebugInfo

Enhancements

1. Go to the test environment

In order to reduce the cost of developers' understanding of the environment, ZEGO has unified the concept of the environment. Starting from this version, the test environment has been abandoned and the formal environment has been used uniformly. Developers who have access to the SDK before version 0.25.3 can refer to Testing environment deprecation for SDK upgrades and code adjustments.

For related API, please refer to initWithProfile

Deleted

1. Abandon the old [init] interface

In order to reduce the developer's understanding of the environment, the test environment was abandoned and the environment was used uniformly. The original [init] interface has been abandoned in 0.25.3 and above. Please use the [initWithProfile] interface instead.

For related API, please refer to init



Version 0.25.2

Release date: 2021-11-01

Bug Fixes

  1. Fixed some known issues of WebGL.


Version 0.25.1

Release date: 2021-11-01

Bug Fixes

  1. Fixed the rendering problem that the canvas size will not change when the preview mode is set to 1/2.


Version 0.25.0

Release date: 2021-10-18

New features

  1. Added setPlayStreamVideoType interface, used to set the playback video stream type, instead of the original interface setPlayStreamVideoLayer.

  2. Newly added the setTrafficControlFocusOn interface, which is used to control whether to start traffic control due to poor remote network conditions. You must first use the interface enableTrafficControl Enable traffic control.



Version 0.24.3

Release date: 2021-09-29

New features

1. Added canvas rendering mode

A new rendering mode-canvas rendering, supports rendering on Mac M1.



Version 0.24.2

Release date: 2021-09-13

New features

1. Supports callback of remote speaker device status

The new callback [onRemoteSpeakerStateUpdate] is used to obtain the status of the remote speaker device. When the status of the remote speaker device changes, the event related to the remote speaker can be obtained by listening to the callback. This event can be used to notify the user that the audio may be abnormal. This callback is often used in 1v1 education scenes or small education scenes. Developers can use this callback notification to determine whether the speaker device of the remote streaming device is working properly, and initially understand the cause of the device problem based on the corresponding status.

For related API, please refer to onRemoteSpeakerStateUpdate

2. Supports obtaining the information of the currently used audio device

By calling the [getCurrentAudioDevice] interface, you can get the audio device information currently in use, including the device ID and device name, and reduce the developer's amount of development.

For related API, please refer to getCurrentAudioDevice



Version 0.24.1

Release date: 2021-08-20

Bug Fixes

  1. Fixed the problem that the callback onAudioDeviceStateChanged returns the wrong value.


Version 0.23.2

Release date: 2021-06-24

Bug Fixes

  1. Fixed the problem that the RGB value of the background color was set incorrectly.


Version 0.23.1

Release date: 2021-06-24

Bug Fixes

  1. Fixed the rendering size issue of WebGL when there are multiple rendering objects.


Version 0.23.0

Release date: 2021-06-18

New features

  1. Add experimental API function

    ZEGO through callExperimentalAPI provides some technical previews or special customization functions in the RTC business, through onRecvExperimentalAPI. For the method or its details, please consult ZEGO technical support.

    For related API, please refer to callExperimentalAPI , onRecvExperimentalAPI

  2. Added push-pull streaming screen screenshot function

    Developers can call the takePublishStreamSnapshot interface to take a screenshot of the preview/push stream screen and call takePlayStreamSnapshot The interface takes a screenshot of the specified streaming screen, the resolution of the screenshot is setVideoConfig encoding resolution.

    This function is often used in educational scenarios. For example, the teacher will ask the student to preview the screenshot according to the student's performance and concentration in the classroom, and then output it as a report to the parent.

    For related APIs, please refer to takePublishStreamSnapshot , takePlayStreamSnapshot

  3. Added screenshot function in media player

    Developers can call the takeSnapshot interface to take a screenshot of the screen currently being played by the media player. Only when the setPlayerCanvas interface is called to set the display controls and the playback state, can the screenshot be taken normally.

    For related API, please refer to takeSnapshot

  1. Added custom video pre-processing function

    Video pre-processing is a process between acquisition and encoding. After the developer collects the video data by himself or obtains the video data collected by the SDK, if the basic beauty and watermark functions of the ZEGO Express SDK cannot meet the needs of the developer (For example, the beauty effect cannot meet expectations), you can use other video processing SDKs (such as ZegoEffects SDK) to perform some special processing on the video, such as beautifying, adding watermarks or pendants, etc. This process is the custom video pre-processing. Developers can call enableCustomVideoProcess interface to enable this function.

    For related API, please refer to enableCustomVideoProcess

  2. Added a mechanism for pre-processing objects of registered videos

    Call registerCustomVideoProcessPlugin interface to register the plug-in object in RTC, which is used to notify RTC that this plug-in needs to be used for self Define video pre-processing (such as beauty).

    For related API, please refer to registerCustomVideoProcessPlugin

Bug fixed

  1. Fixed the issue of abnormal video size in Mac computers with retina screen


Version 0.22.0

Release date: 2021-01-18

Enhancement

  1. Added advancedConfig in ZegoMixerTask

Bug fixed

  1. Fixed the problem of parsing startMixerTask and stopMixerTask parameters
  2. Fixed the problem of parameter analysis using enablePublishDirectToCDN


Version 0.21.0

Release date: 2021-01-01

Enhancement

  1. Delete setReverbParam, please use setReverbParamAdvance instead
  2. Delete getVolume in ZegoMediaPlayer, please use getPlayVolume and getPublishVolume instead

Bug fixed

  1. Fixed the problem of logConfig exception when using setEngineConfig


Version 0.20.0

Release date: 2020-12-18

New features

  1. Added startNetworkSpeedTest
  2. Add stopNetworkSpeedTest
  3. Added onNetworkModeChanged callback
  4. Added onNetworkSpeedTestError callback
  5. Added onNetworkSpeedTestQualityUpdate callback


Version 0.19.0

Release date: 2020-12-01

New features

  1. Added setPlayStreamVideoLayer
  2. Added startMixerTask
  3. Add stopMixerTask

Enhancement

  1. Added preserveDrawingBuffer in ZegoView


Version 0.18.0

Release date: 2020-11-18

New features

  1. Added enableCustomVideoCapture
  2. Add registerCustomVideoCapturePlugin and unregisterCustomVideoCapturePlugin
  3. Add enablePublishVideo to ZegoMediaPlayer

Enhancement

  1. Add an exception capture mechanism for the user's callback implementation

Bug fixed

  1. Fixed the problem of switchRoom parameter error
  2. Fixed the problem of setPlayVolume parameter type checking


Version 0.17.0

Release date: 2020-11-01

New features

  1. Add getDefaultAudioDeviceID
  2. Added getAudioDeviceVolume
  3. Added setAudioDeviceVolume
  4. Add switchRoom
  5. Added setReverbPreset
  6. Added setVoiceChangerPreset
  7. Added setReverbEchoParam
  8. Added setAudioCaptureSereMode
  9. Added enableTransientANS
  10. Added getPlayVolume and setPlayVolume in ZegoMediaPlayer
  11. Added getPublishVolume and setPublishVolume in ZegoMediaPlayer
  12. Added getAudioTrackCount and setAudioTrackIndex in ZegoMediaPlayer
  13. Added setVoiceChangerParam in ZegoMediaPlayer

Enhancement

  1. Add millisecond parameter to startSoundLevelMonitor
  2. startSoundSpectrumMonitor added millisecond parameter


Version 0.10.0

Release date: 2020-08-18

New features

  1. Added createMediaPlayer and destroyMediaPlayer
  2. Added loginMultiRoom
  3. Added setRoomExtraInfo
  4. Added setAnsMode
  5. Added setAudioEqualizerGain
  6. Added setVoiceChangerParam
  7. Added setReverbParam
  8. Added enableVirtualStereo
  9. Added startRecordingCaptureData and stopRecordingCaptureData
  10. Added onCapturedDataRecordStateUpdate callback
  11. Added onCapturedDataRecordProgressUpdate callback


Version 0.9.0

Release date: 2020-06-18

New features

  1. Added isMicrophoneMuted and isSpeakerMuted
  2. Added getVideoConfig getAudioConfig
  3. Added enableHeadphoneMonitor and setHeadphoneMonitorVolume
  4. Added enableMixSystemPlayout
  5. Added onEngineStateUpdate


Version 0.7.0

Release date: 2020-05-18

New features

  1. Added ZegoExpressErrorCode.js file
  2. Added onRoomOnlineUserCountUpdate callback


Version 0.6.0

Release date: 2020-04-18

Enhancement

  1. Added totalSendBytes, audioSendBytes and videoSendBytes parameters to the onPublisherQualityUpdate callback
  2. Added peerToPeerDelay, peerToPeerPacketLostRate, totalRecvBytes, audioRecvBytes and videoRecvBytes parameters in onPlayerQualityUpdate callback

Bug fixed

  1. Fixed the problem of setVideoMirrorMode parameter checking
  2. Fixed the video frame flip mode in webgl
Page Directory