Real-time Audio and Video
  • Platform
  • Framework / Engine
  • iOS
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • WeChat Mini Program
Standard
Express-Video SDK
Download
with WhiteBoard
Express-Video SDK
Download
2021.06.11 Version: 2.8.0

New Features

1. Support login room and push stream authentication in user room.

User permission control refers to the fact that when a user logs in to a room, or performs operations such as push/pull streaming in the room, the ZEGO server judges whether the user has the corresponding permission according to the Token parameter carried when the user logs in, so as to avoid the lack of permission control or Risk issues caused by improper operation. Currently, it only supports the verification of two permissions for the user to log in to the room and push streaming in the user's room.

For related API, please refer to loginRoom, renewToken, onRoomTokenWillExpire

2. Added the ability of the auxiliary stream to share the video data of the main stream.

Open the ability of the auxiliary stream to replicate the video data of the main stream. With this capability, developers can use different protocols to push the same data in the main and auxiliary streams. If developers need this ability, please contact ZEGO technical support to provide a trial API.

For related API, please refer to callExperimentalAPI

3. Added spatial audio capabilities.

The spatial audio can perceive the sound position of 360° in the space. Developers can use the spatial audio function to create a more realistic "seat" effect in the audio and video room. Users can perceive the source direction of the sound through the spatial audio and restore the offline scene. It is suitable for scenes such as language chat room, script killing and online meeting.

For related API, please refer to enablePlayStreamVirtualStereo

Enhancements

1. Compatible with Android 10 and Android 11 restrictions on file access.

After Android 10 introduces the concept of scoped storage, in general, App can only access the private data belonging to the App on the SD card. Developers can add a statement in AndroidManifest.xml to turn off scoped storage. However, Android 11 and later versions will ignore this statement and force scoped storage to be enabled. Developers can use the interface provided by the SDK to enable the SDK to directly use the file path to read and write files.

For related API, please refer to setPublishWatermark, startRecordingCapturedData, loadResource

2. Increase the resource file path adaptation of Android Q, and support the input of resource files in URI mode.

Bug Fixes

1. Fixed an issue where calling [enableHeadphoneAEC] after [createEngine] but before [startPublishingStream] or [startPreview] may be invalid.

2. Fixed a crash that may occur after [destroyEngine] in the process of using custom video rendering.

2021.04.29 Version: 2.7.0

New Features

1. Add experimental API functions.

ZEGO provides some technical previews or special customized functions in the RTC business through this API. If you need to obtain the use of this function or its details, please consult ZEGO technical support.

For related API, please refer to callExperimentalAPI

Bug Fixes

1. Fixed the problem that load so fails on some models

2021.04.15 Version: 2.6.0

New Features

1. Added focus voice feature in mix stream.

In the case of mixed streaming, the developer sets the target stream that needs to be highlighted on the streaming end, so as to highlight the voice of a specific user in a noisy environment where multiple people are talking at the same time. For example, in a meeting scenario, the voice of key people can be guaranteed. When calling the [startMixerTask] interface to start mixing, first set the "mixMode" in the incoming [ZegoMixerAudioConfig] mixed audio configuration parameter to "focused", and configure the "isAudioFocus" of [ZegoMixerInput] in the stream that needs to be highlighted. If it is "true", the stream can be designated as the focus voice stream.

For related API, please refer to startMixerTask

Bug Fixes

1. Fix known issues

2021.04.01 Version: 2.5.0

New Features

1. The body player supports setting the maximum cache configuration of network resources and obtaining real-time network resource cache conditions.

Developers can set the maximum cache duration and maximum cache data size of media player network resources through the [setNetWorkResourceMaxCache] interface before loading resources according to actual needs (the two cannot be 0 at the same time), and can obtain the current network resources through the [getNetWorkResourceCache] interface The playable duration and size of the buffered data in the buffer queue.

For related API, please refer to ZegoMediaPlayer > setNetWorkResourceMaxCache, ZegoMediaPlayer > getNetWorkResourceCache

2. Support setting the cache threshold that the media player needs to resume playback.

When the network status is poor and the media player has finished playing the cached network resources, it will stop playing. Only when the cached network resource is greater than the threshold set by the SDK (the default value is 5000 ms, and the valid value is greater than or equal to 1000 ms), the media player will automatically resume playback at the original paused position.

For related API, please refer to ZegoMediaPlayer > setNetWorkBufferThreshold

2021.03.25 Version: 2.4.1

Bug Fixes

1. Fix the bug that onNetworkModeChanged will not call back when using aar to integrate Android SDK

2021.03.18 Version: 2.4.0

New Features

1. Media player added screenshot function.

Take a screenshot of the screen currently playing in the media player.

For related API, please refer to ZegoMediaPlayer > takeSnapshot

2. Support setting and obtaining audio quality configuration.

The audio encoding type, bit rate, and audio channel combination value can be set and obtained as required.

For related API, please refer to setAudioConfig, getAudioConfig

3. Support for setting the factors of concern that trigger flow control.

When the flow control of the designated push channel is enabled through the [enableTrafficControl] interface, the [setTrafficControlFocusOn] interface can be used to control whether to start the flow control due to poor remote network conditions.

For related API, please refer to setTrafficControlFocusOn

4. Add local preview first frame rendering callback.

This callback will be received after the first frame of video data is rendered.

For related API, please refer to onPublisherRenderVideoFirstFrame

5. Media player adds precise search function.

For related API, please refer to ZegoMediaPlayer> enableAccurateSeek

6. The streaming terminal provides the function of closing all audio or video.

This function can be used when the audio or video streams of all remote users need to be closed at one time when pulling the stream.

For related API, please refer to muteAllPlayStreamAudio, muteAllPlayStreamVideo

Enhancements

1. Optimized the error code description of the publishing and playing stream state update callback when the room login failed.

Bug Fixes

1. Fix the problem that internal threads may get stuck when login room fails.

2. Fix the issue that may cause ANR when the media player is destroyed.

2021.03.05 Version: 2.3.1

Bug Fixes

1. Fix known issues

2021.03.04 Version: 2.3.0

New Features

1. Added a interface for setting log attributes.

When developers need to customize the log file size and path, they can call the [setLogConfig] interface to complete the configuration, and 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 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 you use this interface, you always only use it to complete the requirements for setting the log path and size.

For related API, please refer to setLogConfig

2. Added [setApiCalledCallback] interface, used to set the callback of the execution result of the calling method.

After setting [setApiCalledCallback], you can get the detailed information of the execution result of the ZEGO SDK method through the [onApiCalledResult] callback.

For related API, please refer to setApiCalledCallback

3. Added [setPlayStreamVideoType] interface, used to set the playback video stream type.

When the pusher has set the "codecID" to "SVC" through [setVideoConfig] (it can be set before and after the pull), the puller can dynamically set and select different stream types (small resolution is the two-division of the standard layer) one). When the network is weak or the rendered UI window is small, you can choose to use a small resolution video to save bandwidth.

For related API, please refer to setPlayStreamVideoType

4. Added [setAudioRouteToSpeaker] interface for setting audio routing to speakers.

Via [setAudioRouteToSpeaker], you can set the audio route to the speaker. When you choose not to use the built-in speaker to play the sound, that is, when it is set to "false", the SDK will select the audio output device with the highest current priority to play the sound according to the system schedule.

For related API, please refer to setAudioRouteToSpeaker

5. Added [setAllPlayStreamVolume] interface to set the volume of all streaming sounds.

The local user can control the playback volume of all audio streams.

For related API, please refer to setAllPlayStreamVolume

6. Added [startNetworkProbe] interface for starting network probes. Added [stopNetworkProbe] interface to stop network probing.

Before pushing and pulling the stream, detect and locate some possible network problems through the network.

For related API, please refer to startNetworkProbe, stopNetworkProbe

Enhancements

1. Add unencrypted log printing, which is convenient for developers to troubleshoot abnormal interface calls.

2. The "logConfig" property of the "ZegoEngineConfig" class is discarded, and the "setLogConfig" interface is added to implement the original function.

For related API, please refer to setLogConfig

3. Deprecated the [setDebugVerbose] interface, please use the [setEngineConfig] function to set the advanced property "advancedConfig" to achieve the original function.

Switch between Chinese and English by setting the "key" of "advancedConfig" to "language" and "value" to "chinese" or "english". Switch the console printing function by setting "key" to "set_verbose" and "value" to "true" or "false".

For related API, please refer to setEngineConfig

4. Deprecated [setBuiltInSpeakerOn] interface, please use [setAudioRouteToSpeaker] to realize the original function.

For related API, please refer to setAudioRouteToSpeaker

Bug Fixes

1. Fix the problem of abnormal audio device mode switching.

2021.02.04 Version: 2.2.1

Bug Fixes

1. Fixed the issue that may cause a crash when sending custom video capture data under extreme conditions.

2. Fixed the crash caused by unreasonable parameter transmission of the developer's audio channel when plugging data into the SDK for custom audio collection.

For related API, please refer to sendCustomAudioCaptureAACData, sendCustomAudioCapturePCMData

3. Fixed the issue that the rendered screen may rotate arbitrarily on some devices when the decoded stream is thrown.

For related API, please refer to onRemoteVideoFrameEncodedData

2021.01.28 Version: 2.2.0

New Features

1. Add custom video processing function.

When developers need to pre-process the captured video, such as using a third-party beauty SDK, they can use the custom video processing function to easily use to the video pre-processing operation. Compared with the custom video capture function, this function does not require the developer to manage the input source of the device. It only needs to manipulate the raw data thrown by the SDK and then send it back to the SDK side.

For related API, please refer to enableCustomVideoProcessing

2. Add RoomSessionID information for audio and video calls.

Multiple users conduct audio and video communication in the room, and each audio and video communication will have a unique RoomSessionID, which identifies the continuous communication from the first user in the room to the end of the audio and video communication. It can be used in scenarios such as call quality scoring and call problem diagnosis.

For related API, please refer to onRoomStateUpdate

3. Added SEI callback for media player

Use a media player to play a media file. When the media player parses that the media file contains SEI, it will trigger the [onMediaPlayerRecvSEI] callback.

For related API, please refer to ZegoMediaPlayer > onMediaPlayerRecvSEI

4. Support setting advanced configuration when start mixer task

add [advancedConfig] into [ZegoMixerTask] to support advance config for mixer task. if you need to use it, please contact ZEGO technical support.

For related API, please refer to startMixerTask

Added Prism related quality reports to facilitate developers to discover, locate, and solve problems in a timely manner, so as to better and more comprehensively improve user experience.

Enhancements

1. When the unknown error code 100XX99 appears when logging in to the room, publishing stream, or playing stream, the original server code will be thrown in the [extendedData] field, which is convenient for developers to feedback detailed problems.

2021.01.21 Version: 2.1.1

Bug Fixes

1. Fixed a crash that may occur when the MediaPlayer calls back video data.

2. Fix the problem that the AudioEffectPlayer loads resources and the timing of callback loading results is inaccurate.

3. Fix a crash that may occur when [startPlayingStream], [stopPlayingStream] are invoked repeatedly at very high frequency.

2021.01.14 Version: 2.1.0

New Features

1. Added the function of setting the buffer interval value.

This function is used to specify the range of adaptive adjustment of the playback buffer, and the developer can set it according to the scene.

For related API, please refer to setPlayStreamBufferIntervalRange

Enhancements

1. Refactor and optimize the Android JNI layer

Bug Fixes

1. Fix known problems

2021.01.07 Version: 2.0.1

Bug Fixes

1. Fix known problems

2020.12.31 Version: 2.0.0

New Features

1. Added low latency live broadcast feature.

Low latency live broadcast focuses on providing stable and reliable live broadcast services. Compared with standard live video products, audio and video delays are lower, synchronization is stronger, and weak network resistance is better. It can provide users with a millisecond-level live broadcast experience; usage scenarios as education class, live show broadcast, e-commerce live broadcast, watch together, online auction. For more details, please refer to Low Latency Live.

For related API, please refer to startPlayingStream

2. Added support for H.265 (HEVC) encoding.

Added support for H.265 encoding, which can reduce the bit rate at the same resolution and frame rate.

For related API, please refer to setVideoConfig

Bug Fixes

1. Fixed a crash caused by resetting internal objects when the seek callback of the media player is triggered.

2. Fixed a crash when the user list parameter [toUserList] is passed null when the [sendCustomCommand] function is called.

For related API, please refer to sendCustomCommand

Deleted

1. Deleted [customVideoCaptureMainConfig] and [customVideoCaptureAuxConfig] in [ZegoEngineConfig], please use [enableCustomVideoCapture] function in [ZegoExpressEngine] instead.

The legacy function follows the life cycle of [setEngineConfig] function and is not flexible enough. After allowing the setting of [custom video capture] before the engine is started, Express SDK has added an independent [enableCustomVideoCapture] function to set the custom video capture.

For related API, please refer to enableCustomVideoCapture

2. Deleted [customVideoRenderConfig] in [ZegoEngineConfig], please use [enableCustomVideoRender] function in [ZegoExpressEngine] instead.

The legacy function follows the life cycle of [setEngineConfig] and is not flexible enough. After allowing the setting of [custom video render] before the engine is started, Express SDK has added an independent [enableCustomVideoRender] function to set the custom video render.

For related API, please refer to enableCustomVideoRender

3. Deleted [destroyEngine()] function, please use [destroyEngine(callback)] instead.

Added a new destroy engine function with the [callback] parameter. If the developer needs to switch between multiple audio/video SDK, the ZEGO SDK can be assumed to have freed up the device's hardware resources when the callback is received. If there is no need to listen, just set null for the [callback] parameter.

For related API, please refer to destroyEngine

4. Deleted [onRemoteAudioData] callback, please use [onPlaybackAudioData] instead.

The name of the legacy callback does not match the actual function, so delete and rename.

For related API, please refer to onPlaybackAudioData

5. Deleted [muteAudioOutput], please use [muteSpeaker] instead.

The naming style and semantics of the legacy function are not clear. [muteSpeaker] uses the definition of Speaker to correspond to the Microphone.

For related API, please refer to muteSpeaker

6. Deleted [createMediaPlayer] function in [ZegoMediaPlayer] class, please use [createMediaPlayer] in [ZegoExpressEngine] class instead.

The life cycle of the media player follows the engine, so it is changed to the instance method of the same name of [ZegoExpressEngine] class.

For related API, please refer to createMediaPlayer

7. Delete [volume] and [getVolume] in [ZegoMediaPlayer], please use [setPublishVolume], [getPublishVolume], [setPlayVolume], [getPlayVolume] instead.

The engine provides the function of separately acquiring the player's publish volume and local playback volume, so the original unified acquisition interface is deprecated.

For related APIs, please refer to ZegoMediaPlayer > setPublishVolume, ZegoMediaPlayer > getPublishVolume, ZegoMediaPlayer > setPlayVolume, ZegoMediaPlayer > getPlayVolume

2020.12.24 Version: 1.20.1

Bug Fixes

1. Fixed the problem that the media player may fail to start playback.

2. Fixed possible frame skipping issues in media players.

2020.12.17 Version: 1.20.0

New Features

1. Added network speed measurement function.

This function supports uplink/downlink network speed measurement, and can be used to detect whether the network environment is suitable for pushing/pulling streams with specified bitrates. Call [startNetworkSpeedTest] to start the network speed test, configure its parameters [ZegoNetworkSpeedTestConfig] to control the speed test process. The speed test result will be called back through [onNetworkSpeedTestQualityUpdate].

For related API, please refer to startNetworkSpeedTest, stopNetworkSpeedTest, onNetworkSpeedTestQualityUpdate

2. Added network mode changed notification callback.

This callback will be called when the device's network mode changes, such as switching from WiFi to 5G, or when the network is disconnected.

For related API, please refer to onNetworkModeChanged

3. Added camera zoom function.

Set the zoom factor of the camera through the SDK to achieve the effect of zooming in on distant objects during shooting. For detailed function implementation, please refer to [Advanced Features - Zoom].

For related API, please refer to getCameraMaxZoomFactor, setCameraZoomFactor

4. Added audio route changed notification callback.

This callback will be called when there are changes in audio routing such as earphone plugging, speaker and receiver switching, etc.

For related API, please refer to onAudioRouteChange

5. Added GL_TEXTURE_EXTERNAL_OES type for custom video capture function.

Developers can set GL_TEXTURE_EXTERNAL_OES type in [enableCustomVideoCapture], and send custom captured video frame data through [sendCustomVideoCaptureTextureData]

For related API, please refer to enableCustomVideoCapture, sendCustomVideoCaptureTextureData

Bug Fixes

1. Fixed the occasional crash of the local recording function under abnormal conditions.

For related API, please refer to startRecordingCapturedData, stopRecordingCapturedData

2020.12.10 Version: 1.19.1

Enhancements

1. Added error code 1002002, which means the RoomID is wrong, please check whether you are currently logged in to this room.

After logging in to the room, if you log out or switch rooms, and the incoming RoomID is empty or the RoomID does not exist, the 1002002 error code will be thrown.

For related API, please refer to loginRoom, logoutRoom, switchRoom

Bug Fixes

1. Fixed a crash when setting the media enhancement supplementary information type.

For related API, please refer to setSEIConfig

2. Fixed the issue that switching rendering view does not take effect when playing the stream.

For related API, please refer to startPlayingStream

3. Fixed the occasional popping sound when the sound effect player set the specified playback progress.

For related API, please refer to seekTo

4. Fixed the crash of FEC module under weak network conditions.

2020.12.03 Version: 1.19.0

New Features

1. Added system performance monitoring function, supports monitoring of CPU and memory usage.

Developers can start monitoring after [createEngine], and support setting the monitoring callback interval (the default is 2s), which can generally be used to compare the memory growth before and after publish/play stream.

For related API, please refer to startPerformanceMonitor, stopPerformanceMonitor

2. Added streaming media encryption function.

Support the use of AES-128/192/256 to encrypt streaming media data.

For related API, please refer to setPublishStreamEncryptionKey, setPlayStreamDecryptionKey

3. Added the difference between the video timestamp and the audio timestamp, which is located in [ZegoPlayStreamQuality] to reflect the synchronization of audio and video in the playing stream.

This value is less than 0 means the number of milliseconds that the video leads the audio, greater than 0 means the number of milliseconds that the video lags the audio, and 0 means no difference. When the absolute value is less than 200, it can basically be regarded as synchronized audio and video, when the absolute value is greater than 200 for 10 consecutive seconds, it can be regarded as abnormal.

For related API, please refer to onPlayerQualityUpdate

4. Added setting to select the video layer function for streaming.

When the publisher has set the codecID of [setVideoConfig] to SVC, the player can call [setPlayStreamVideoLayer] API to select the standard layer or the base layer (the resolution of the base layer is one-half of the standard layer) to saving bandwidth.

For related API, please refer to setPlayStreamVideoLayer

Enhancements

1. Added error code 1002035 for room login failure, that is the maximum number of concurrent rooms in the test environment exceeds the upper limit.

For related API, please refer to loginRoom

2. Added error code 1009015 for room broadcast message sending failure, that is broadcast message QPS exceeds the limit, the maximum QPS is 2.

For related API, please refer to sendBroadcastMessage

3. Added support for AAC file format for local media recording.

For related API, please refer to startRecordingCapturedData

4. The media player newly supports m3u8 format, if you need to use it, please contact ZEGO technical support.

For related APIs, please refer to ZegoMediaPlayer > loadResource

Deleted

1. Deprecated the videoLayer property in [ZegoPlayerConfig], please use [setPlayStreamVideoLayer] instead.

For related API, please refer to setPlayStreamVideoLayer

2020.11.24 Version: 1.18.1

Bug Fixes

1. Fix the problem that may be abnormal when using the auxiliary channel custom audio capture.

2020.11.19 Version: 1.18.0

New Features

1. Added advanced reverb parameters and preset values for reverb/voice change.

Advanced reverberation parameters can be used to adjust finer reverberation effects as needed. In the original preset reverberation, effects such as studio, KTV, rock and concert have been added, and magnetic male and female voices have been added to the preset voice change. Fresh female voice effect, increase the interest of real-time voice, can adapt to more scenes.

For related API, please refer to setReverbAdvancedParam, setReverbPreset, setVoiceChangerPreset

2. Added SEI setting type function.

By setting the SEI type, the developer can correctly parse the SEI when decoding with other decoders.

For related API, please refer to setSEIConfig

3. Added a callback with additional information when the stream is updated, such as the reason information of the deleted stream.

For related API, please refer to onRoomStreamUpdate

4. Added to obtain the original audio data of playing stream in the form of streamID.

For related API, please refer to onPlayerAudioData

Bug Fixes

1. Fix the problem that when calling the [startPlayingStream] interface to set the video layer, calling the [mutePlayStreamVideo] interface again will cause the wrong layer selection.

For related API, please refer to startPlayingStream

2. Optimize [mutePlayStreamAudio] and [mutePlayStreamVideo] call timing, the settings can take effect before and after streaming.

For related API, please refer to mutePlayStreamAudio, mutePlayStreamVideo

Deleted

1. Deprecate the original [setReverbParam] interface, and use [setReverbAdvancedParam] instead if necessary.

For related API, please refer to setReverbAdvancedParam

2. Deprecated the original [onRoomStreamUpdate] callback, please use the callback of the same name with additional [extendedData] parameter instead.

For related API, please refer to onRoomStreamUpdate

2020.11.05 Version: 1.17.5

Enhancements

1. When the login room is inconsistent with the room ID sent by the real-time message, an accurate error code (1009005) is thrown.

For related API, please refer to loginRoom, sendBroadcastMessage, sendBarrageMessage, sendCustomCommand

Bug Fixes

1. Fixed an issue where the play-stream end did not receive the SEI when the aux publisher sent it.

For related API, please refer to sendSEI

2020.10.22 Version: 1.17.0

New Features

1. Added support for more voice changer effects.

Added 4 voice changer effects - Foreigner, Optimus Prime, Robot, and Ethereal - to easily create unique sound effects and make users' voices more interesting. Create a quirky atmosphere between friends' voices in voice scenes to enhance entertainment.

For related API, please refer to setVoiceChangerPreset

2. Added support for setting reverb echo parameters.

Users can set the reverberation echo parameters according to their needs, allowing up to 7 echoes (delay) to be set, and support to individually set the delay and attenuation of each echo, as well as the overall input and output gain values. It can also be used with voice changer and reverb to achieve a variety of customized sound effects.

For related API, please refer to setReverbEchoParam

3. Media Player added support for setting voice changer effects.

By changing the user's pitch, the output sound is sensorically different from the original sound, and various effects such as male voice changing to female voice are realized.

For related API, please refer to ZegoMediaPlayer > setVoiceChangerParam

4. Added the ability to take snapshots of the publishing stream or the playing stream.

It supports taking snapshots of the screen during publishing or playing stream, which can be used for scenes such as pornographic identification.

For related API, please refer to takePublishStreamSnapshot, takePlayStreamSnapshot

5. Added support for transient noise suppression.

Can be used to suppress transient noises such as keyboard and desk knocks.

For related API, please refer to enableTransientANS

6. Media Player added support for switching audio tracks.

When the media file contains multiple audio tracks (such as original sound and accompaniment), it supports switching audio tracks for playback.

For related API, please refer to ZegoMediaPlayer > getAudioTrackCount, ZegoMediaPlayer > setAudioTrackIndex

Enhancements

1. Android SDK minimum supported operating system version changes.

From this version onwards, the API level supported by the Android SDK is required to be at least 16, and the minimum supported OS version has been changed from Android 4.0.3 to Android 4.1.

2. Added parameters like [videoBreakRate], [audioBreakRate] to the play stream quality parameter to count the break rate.

For related API, please refer to onPlayerQualityUpdate

Bug Fixes

1. Fix the issue that calling media player's [enableRepeat] does not take effect before receives the [loadResource] callback.

Deleted

1. The preset enumeration constructor for the param parameter of the [setVoiceChangerParam] function is deprecated. This function is only used to fine-tune the pitch value. If you need to use the preset enumeration to set the voice changer, please use the newly added [setVoiceChangerPreset] function.

For related API, please refer to setVoiceChangerPreset, setVoiceChangerParam

2. The preset enumeration constructor of the param parameter of the [setReverbParam] function is deprecated. This function is only used to fine-tune and set specific reverb parameters values. If you need to use the preset enumeration to set the reverberation, please use the newly added [setReverbPreset] function.

For related API, please refer to setReverbPreset, setReverbAdvancedParam

2020.10.15 Version: 1.16.1

Enhancements

1. The fast seek configuration is enabled inside the media player to optimize the slow loading of MP3 files by the media player.

2. Upgrade the third-party library to ensure the security and quality level of the SDK, and FFmpeg is upgraded to version 4.2.2.

Bug Fixes

1. Fixed a problem where JNI caused some machines to crash with low probability when ClassLoad was released.

2. Fix the problem of a small number of users experiencing a sudden drop in video encoding rate.

2020.09.24 Version: 1.16.0

New Features

1. Add audio effect player function

Sound effects refer to short sound effects played to enhance the sense of reality or to enhance the atmosphere of the scene, such as: playing applause, gift sound effects, prompt sounds, etc. during the live broadcast; in the game, playing bullets, collision sounds.

The sound effect player supports functions such as sound effect playback (multiple sound effects can be overlapped), playback control (such as pause playback, volume adjustment, set playback progress), pre-loaded sound effects and other functions.

For related API, please refer to createAudioEffectPlayer, destroyAudioEffectPlayer

Bug Fixes

1. Fix the problem that [onRoomStreamExtraInfoUpdate] may call back with empty list unexpectedly

For related API, please refer to onRoomStreamExtraInfoUpdate

2. Fix an issue that some callbacks may crash after replacing IZegoEventHandler multi times with [setEventHandler].

For related API, please refer to setEventHandler

2020.09.17 Version: 1.15.2

Bug Fixes

1. Fixed a problem with the [onRoomUserUpdate] callback that had the probability of triggering a full member callback by mistake

For related API, please refer to onRoomUserUpdate

2020.09.10 Version: 1.15.0

New Features

1. Add media player volume control function

Allows to set and get the local playback volume and publish volume of the media player separately.

For related API, please refer to setPlayVolume, setPublishVolume, getPlayVolume, getPublishVolume of the ZegoMediaPlayer.

2. Add the function of setting audio capture dual channel (stereo) mode

Dual channel are two sound channels (stereo). When you hear a sound, you can determine the specific location of the sound source based on the phase difference between the left and right ears. When the developer turns on the dual channel capture, using a special dual channel capture device, the dual channel audio data can be collected and streamed (for publish stream, the dual channel audio encoding function must be enabled at the same time with setAudioConfig API).

For related API, please refer to setAudioCaptureStereoMode, setAudioConfig

3. The API for start sound level / audio spectrum monitoring supports setting the callback interval

Developers can control the callback interval of sound level / audio spectrum monitoring. The default is 100 ms and the value range is [100, 3000].

For related API, please refer to startSoundLevelMonitor, startAudioSpectrumMonitor

4. Added the function to configure advanced properties when switching rooms

Switch room allows developer to configure the properties of the next room, such as login authentication

For related API, please refer to switchRoom

Enhancements

1. Cancel the popup prompt after an error in custom video capture call high frequency API, and only print the console log

Bug Fixes

1. Fixed an issue where custom video capture [onStop] event did not trigger after the user was kicked out of the room

Deleted

1. Deprecated the getVolume interface in the mediaplayer, please use getPlayVolume and getPublishVolume instead

2. Deprecated the onRemoteAudioData enum value, please use onPlaybackAudioData instead.

3. Deprecated the ZegoAudioDataCallbackBitMaskRemote enum value, please use ZegoAudioDataCallbackBitMaskPlayback instead.

2020.08.27 Version: 1.14.0

New Features

1. Added switch room feature

This method can realize the function of quickly switching rooms. After calling, it stops the publishing and playing stream of the previous room and enters the new room. If the room is switched successfully, the callback of the successful login of the new room will be received. Compared with the previous method implemented by calling the two interfaces of logout of the original room and login the new room, it is easier to use and more efficient.

For related API, please refer to switchRoom

2. Added traffic control callback when using custom video capture

When useing custom video capture by sending encoded data, when the network environment changes, the SDK will notify the developer that traffic control is required.

For related API, please refer to onEncodedDataTrafficControl

Enhancements

1. Increase the trigger timing of onRoomStreamExtraInfoUpdate

When the user enters the room, there is a stream in the room with stream extra info, onRoomStreamExtraInfoUpdate will be triggered. Therefore, developers only need to care about this callback to handle the logic of stream extra info.

For related API, please refer to onRoomStreamExtraInfoUpdate

Bug Fixes

1. Fix the problem that after calling destroyEngine directly during publishing or playing stream, the next call to enable custom video capture and rendering or custom audio IO API will fail.

For related API, please refer to enableCustomVideoCapture, enableCustomVideoRender, enableCustomAudioIO

2. Fix onPlayerRecvSEI will receive the SEI attached to the encoder or the video file itself.

For related API, please refer to onPlayerRecvSEI

3. Fix the problem that the encode resolution height obtained by ZegoVideoConfigPreset.Preset720P is incorrect.

2020.08.13 Version: 1.13.0

New Features

1. Added multi-room feature

This feature supports that the same user can join multiple rooms at the same time, and the total number of rooms that can currently be accessed is up to two. After a user joins a room, he/she can only publish stream in the main room, but can pull stream in all rooms, and can receive signaling and callback from each room normally. This feature is usually used in scenarios such as "Super-Small Class", please contact ZEGO technical support if you need to enable it.

For related API, please refer to loginMultiRoom

2. Added room extra message function

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

For related API, please refer to setRoomExtraInfo

3. Added audio pre/post processing function

This function allows developers to customize audio data after capture audio data or before play remote audio data for rendering. This function is usually used in scenes such as "voice changer" and "beautiful sound".

For related API, please refer to enableCustomAudioCaptureProcessing, enableCustomAudioRemoteProcessing

4. Custom video capture module adds video image flip function (horizontal/vertical)

This feature allows the developer to flip the video image when doing custom video capturing using the type of incoming texture ID (Texture). This setting is valid only if the bufferType property in the ZegoCustomVideoCapture parameter of the enableCustomVideoCapture API is GLTexture2D.

Enhancements

1. Expand the volume range for publishing/playing stream

The publishing stream capture volume and playing stream playback volume range is expanded from 0 ~ 100 to 0 ~ 200, and the default value is 100.

For related API, please refer to setCaptureVolume, setPlayVolume

2020.08.06 Version: 1.12.3

Bug Fixes

1. Fixed the issue that unexpectedly "Exceeding the maximum number of room logins" error code may be thrown when logging in to the room immediately after a failed login.

2. Fix the problem that the maximum length of the callback content of the IM message does not meet the expected 1024 bytes.

3. Fixed a crash when using the deprecated parameters of setEngineConfig to enable the custom video capture function of the aux publish stream channel.

2020.07.30 Version: 1.12.0

New Features

1. Add sound equalizer (EQ) function

Support to adjust the gain value of 10 frequency bands, so as to achieve the purpose of adjusting the tone.

For related API, please refer to setAudioEqualizerGain

2020.07.23 Version: 1.11.4

Bug Fixes

1. Fix the issue that AudioDataCallback may not call back.

2. Fix the issue that the codecID of ZegoAudioConfig is invalid when set to Low3.

3. Fix the failure of destroying individual functional components during destroyEngine.

4. Fix the problem that MediaRecord may not call back when quickly destroy/create engine.

5. Fix the problem of JNI sample rate conversion.

2020.07.15 Version: 1.11.0

New Features

1. Added the basic API of whiteboard (WhiteBoard SDK) to realize the function of interactive whiteboard combined with 'ZegoWhiteboardView'.

Enhancements

1. The length of IM messages has been increased to 1024 bytes, including 'broadcast message' and 'barrage message'.

2. When using custom video capture, 'setVideoMirrorMode' and 'setPublishWatermark' both take effect.

Bug Fixes

1. Fix the crash caused by the overflow of global object references during JNI callback, which is easy to occur on 32-bit low-end machines.

2. Fix the logic of string cropping in JNI, and solve the bug that the characters will be cropped and sent when the content length of the sent IM message exceeds.

2020.06.30 Version: 1.10.0

New Features

1. Added several new features for audio preprocessing, including Virtual Stereo, Voice Changing, and Reverberation.

Developers can build related audio preprocessing effects into their apps.

For related API, please refer to enableVirtualStereo, setVoiceChangerParam, setReverbAdvancedParam

2. Added a new feature for local recording.

It allows developers to record and save audio/video streams to local files for future playback.

For related API, please refer to startRecordingCapturedData, stopRecordingCapturedData

3. Added a new feature for PCM audio data capturing.

With this feature, developers can listen for audio data callback to obtain PCM audio data, which can be used for further processes, such as audio data obscene content detection, subtitles generation.

For related API, please refer to enableAudioDataCallback

4. Added a new callback that allows developers to obtain undecoded video data of the remote stream.

Developers can do custom decoding and rendering. The bufferType attribute of the ZegoCustomVideoRenderConfig object now can be set to 'EncodedData' to use this feature.

5. Added a new feature for setting noise suppression mode. By default, the noise suppression mode is set to Medium.

For related API, please refer to setANSMode

6. Added a new feature for custom audio capture and render.

Developers can use this function to capture audio data and send it to the SDK, and obtain the audio data of the remote playing stream to process or play.

For related API, please refer to enableCustomAudioIO

7. Android's getCustomVideoCaptureSurfaceTexture adds new overloaded parameters, supports selecting ZegoPublishChannel

8. Android's setCustomVideoCaptureFillMode adds new overloaded parameters, supports selecting ZegoPublishChannel

Enhancements

1. Added a new error code 1001011.

When developers set up the custom video rendering configurations with an unsupported bufferType, this error will be reported to remind the developer that the setting is incorrect.

2020.06.28 Version: 1.9.3

Bug Fixes

1. Fix the problem that an exception may occur when using custom video capture and publish stream on aux channel

2020.06.20 Version: 1.9.2

Bug Fixes

1. Fix the issue of onMixerSoundLevelUpdate callback.

2020.06.17 Version: 1.9.1

Bug Fixes

1. Fixed the out-of-bounds issue that occurs when copying audio mixing data in onAudioMixingCopyData callback.

2020.06.15 Version: 1.9.0

New Features

1. Added enableCustomVideoCapture, enableCustomVideoRender APIs, allowing user to choose whether to use custom video capture/render functions after createEngine and before preview or start publishing/playing stream.

2. Added the audio mixing module, which includes the following features Starts audio mixing, Mutes the mixed audio locally, Sets the audio mixing output volume, Callback for copying audio mixing data to the SDK.

3. Added the support for headphone monitoring. A new API enableHeadphoneMonitor was added to enable this feature.

4. Added the support for processing encoded data in the custom video capture module. A new API sendCustomVideoCaptureEncodedData was introduced to send encoded video data to the SDK.

Bug Fixes

1. Fixed the issue that the incorrect value of the rotation parameter is passed from the MediaPlayer video frame callback.

2. Fixed the exception that sometimes occurs when publishing the auxiliary stream.

3. Throw the correct error code when the stream ID passes null.

4. Fix the issue that some callbacks will no longer be called after destroyEngine.

Deleted

1. Deprecated the customVideoCaptureMainConfig, customVideoCaptureAuxConfig, and customVideoRenderConfig members in class ZegoEngineConfig, please use the new enableCustomVideoCapture, enableCustomVideoRender interfaces mentioned above.

2020.06.11 Version: 1.8.2

Bug Fixes

1. Fixed the issue that the beauty feature cannot work properly.

2. Fixed the issue that setting advancedConfig fails when the config includes special characters.

3. Fix the issue that the JCenter version of the SDK may cause a crash when sending barrage messages.

2020.05.31 Version: 1.8.0

New Features

1. Added new APIs getAudioConfig and getVideoConfig for obtaining the current audio configurations (i.e., audio bitrate, number of audio channels, etc.) and video configurations (i.e., resolution, bitrate, frame rate, et.).

2. Added new APIs isMicrophoneMuted and isSpeakerMuted for obtaining the audio device status.

Bug Fixes

1. Fixed the issues that the life cycles of some internal states are too long or too short.

2. Fix the problem that the input/output stream list of Mixer will be incremented when set multi times.

2020.05.18 Version: 1.7.9

Bug Fixes

1. Fix the problem that calling setEngineConfig to explicitly set the log path does not take effect.

2. Fix no log when first createEngine issue.

3. Fix the problem that setting setEventHandler to null does not work.

2020.05.15 Version: 1.7.5

New Features

1. Add error code 1000008.

Call setEventHandler again to change the Event Handler and it needs to be explicitly set to null.

Bug Fixes

1. Fix the issue that the setEngineConfig interface does not take effect when called after createEngine.

2. Fix the problem that the media player cannot get the index correctly.

3. Fix the problem that the order of parameters in the sendBarrageMessage and sendCustomCommand interfaces is incorrect.

2020.04.30 Version: 1.7.0

New Features

1. Added a new callback onRoomOnlineUserCountUpdate, which will be triggered when the number of online users in the room changes. Developers can use this callback to monitor the current online user count of the room and display the number on the app's UI.

2. Added a readable property of the index value of the MediaPlayer instance.

3. Added a header file of error code enum descriptions, where developers can view the descriptions of all ZEGO Express error codes.

Bug Fixes

1. Fixed the issue that a stream will get filtered out due to invalid URL when relaying streams to CDN with authentication required.

2020.04.15 Version: 1.6.0

New Features

Enhancements

1. Refactoring the API reporting module and optimizing the logic.

Bug Fixes

1. Fix the problem that calls back Java from JNI too frequently and may crash.

2. Fix the issue that the callback of Android rendering the first frame does not take effect.

2020.04.05 Version: 1.5.6

Bug Fixes

1. Fix the problem that the JCenter version package contains useless resources and reduce the package size.

2. Remove Android support and Android X dependencies to avoid conflicts.

3. Fixes for occasional crashes on specific low-end Android devices.

2020.03.31 Version: 1.5.5

Enhancements

1. Optimizing API annotations.

2020.03.19 Version: 1.5.1

Bug Fixes

1. Fixed the issue that even when the stream mixing task is started with correct configurations, it still has a chance to be falsely detected as a failure by the SDK.

2. Fixed the error in checking the RTMP URL format when relaying mixed streams to CDN.

3. Fixed the issue that the correct error code is not returned in some extreme cases.

2020.03.14 Version: 1.5.0

New Features

1. Added scenario pre-configuration properties.

Developers can select scenario when calling createEngine, and the SDK will perform optimal pre-configuration for real-time communication scenarios and live broadcast scenarios.

2. Added the support for publishing the auxiliary stream.

This feature can be used when developers need to publish one stream with source video from the camera and the other stream with source video from the screen. It can be applied to many scenarios, such as online education and video conferencing.

3. Added the support for setting the codecID for video encoding.

When calling the API setVideoConfig to set up the video configurations for stream publishing, developers can set the video codecID to multi layer to enable multi-bitrate encoding.

4. Added the support for stream publishing traffic control.

Developers can call the API enableTrafficControl:property: to enable this feature and choose one or more of the following traffic control properties, to adjust the video bitrate (the basic property), to adjust the video frame rate, to adjust the video resolution.

5. Added the support for direct streaming to CDN with enablePublishDirectToCDN.

Developers can directly push audio/video streams to CDN from the client by specifying the CDN URL or using the related ZEGO backend configuration before start publishing.

For related API, please refer to enablePublishDirectToCDN

6. Added advanced stream playing configurations with a new overloading API of startPlayingStream.

When streams are directly published or relayed to CDN, they have to be played via URL. Developers can set up the CDN configurations for playing streams via URL. When multi-bitrate encoding is enabled on the stream publishing side, the stream player can play the stream with the lower resolution by setting the videoLayer to base.

7. Added the support for obtaining the sound level of each input stream when playing a mixed stream.

When a viewer playing a mixed stream needs to the know the sound level of each input stream, developers can call the API enableSoundLevel to enable sound level, and set a unique sound level ID for each input stream when starting the stream mixing task, and then the stream player can obtain the sound level of each input stream from the callback onMixerSoundLevelUpdate.

8. Added the support for sending barrage messages.

When it is required to send messages to a room with more than 500 users with the assumption that the delivery of each message to each user does not need to be guaranteed (i.e., some users might miss out some messages).

For related API, please refer to sendBarrageMessage

9. Added built-in preview rendering for custom video capture.

With this feature, developers do not have to render the preview by themselves when using custom video capture.

Enhancements

1. Deprecate the destroyEngine interface with no parameters and add a destroyEngine interface with the same name but with a callback parameter.

With the new API, the callback is triggered when the action of destroying the ZegoExpressEngine is completed and the resources used by the engine are released, and developers can switch to use other SDK at this point.

2020.02.13 Version: 1.4.0

New Features

1. Added the support for custom video capture and custom video render.

2020.01.17 Version: 1.3.5

Bug Fixes

1. Fix some problems of the media player.

2019.12.27 Version: 1.3.4

New Features

1. Added the MediaPlayer module.

2. Added the SEI (Supplemental enhancement information) module.

3. Added a new API setAudioConfig for setting up audio parameters (codec, audio bitrate, number of channels ) before start publishing stream.

2019.12.13 Version: 1.3.3

New Features

1. Added the support for sending/receiving stream extra information.

2. Added the support for monitoring sound level and audio spectrum.

3. Added the support for choosing different timing of video scaling in the video capture process.

4. Added the support for checking the Picture Order Count (POC).

5. Added the support for setting up the background color of the stream preview/playback Canvas.

6. Added the support for watermarking at stream publishing/playing.

Enhancements

1. Optimized the logging feature.

2019.11.27 Version: 1.2.1

New Features

1. Added the mixer (stream mixing) module.

2. Added the IM (instant messaging) module.

2019.11.11 Version: 1.1.1

New Features

1. Added log compression and reporting features, which can report the logs of all API calls on the testing environment for API usage analysis.

Bug Fixes

1. Aligned the APIs across all platforms, including API names, parameter names, and parameter values, etc.

2019.11.01 Version: 1.1.0

New Features

1. The initial release of the SDK, which included the modules of System, Room, Stream publishing, Stream playing, Preprocess, Devices.