logo
On this page

Release notes

2025-12-19

3.23.0 Version

Release date: 2025-12-18

New Features

  1. onPublisherQualityUpdate callback provides traffic control status information

    The onPublisherQualityUpdate callback adds audioTrafficControlRate and videoTrafficControlRate fields to notify users of the current traffic control ratio.

    For related API, please refer to onPublisherQualityUpdate

  2. switchPlayingStream supports setting timeout

    The switchPlayingStream interface adds the switchTimeout parameter.

Note

Assuming streams A, B, and C exist:

  • When the SDK is pulling stream A, if A switches to B and then to C, and all stream switches fail within the switchTimeout timeout, only the onPlayerSwitched callback of the last switched C will return a stream switch failure notification.
  • When the SDK is pulling stream A and switches to A again, the switchTimeout parameter does not take effect, and the SDK will execute retry logic according to the stream pulling timeout.
  • When A switches to B and then back to A, and the SDK is always pulling stream A, the operation of pulling stream A will not be interrupted.

For related API, please refer to switchPlayingStream

  1. Flutter aligns with custom audio preprocessing APIs

    A new singleton class ZegoCustomAudioProcessManager is added for registering audio data callbacks.

  2. Web platform completes callback interface

    OnPlayerRecvVideoFirstFrame is the callback for receiving the first frame of the stream, and onPlayerVideoSizeChanged is the callback for the resolution change of the stream.

    For related APIs, please refer to: onPlayerRecvVideoFirstFrame, onPlayerVideoSizeChanged

Enhancements

  1. The flow control status callback interface supports distinguishing the disconnection status.

    The new return value -1 indicates disconnection and reconnection, and the status of disconnection and reconnection is separated from the state without flow control (return value 0).

  2. Media player resource analysis and optimization

    The SDK supports HTTP DNS resolution, improving the success rate of domain name resolution for media player resources.

  3. Optimize the network connection performance of the SDK in some scenarios

  4. Update integrated Express Web SDK to version 3.11.0


3.22.0 Version

Release date: 2025-08-26

New Features

  1. Support setting the microphone audio source for the main road to mix the screen capture audio source

    ZegoAudioSourceMixConfig adds the enableMixScreenCapture parameter, which is used to support mixing the screen sharing audio data together when the microphone audio source is set on the main road. Calling [setAudioSource] can dynamically enable or disable this function.

    For related API, please refer to setAudioSource, startCapture, updateScreenCaptureConfig

  2. Screen sharing provides start callback and exception interruption callback

    When starting screen sharing, you can listen for the success or failure of the screen sharing start through onMobileScreenCaptureStart and onMobileScreenCaptureExceptionOccurred to listen for the screen sharing start failure or abnormal disconnection。

    For related API, please refer to onMobileScreenCaptureStart, onMobileScreenCaptureExceptionOccurred

  3. Screen sharing supports setting the fixed horizontal and vertical screen orientation

    ZegoScreenCaptureConfig adds the ZegoScreenCaptureOrientation parameter, which is used to set the fixed horizontal and vertical screen orientation of the screen sharing.

    For related API, please refer to startCapture, updateScreenCaptureConfig

  4. Screen sharing supports audio packet sharing system sound

Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

  1. Support using a specified volume mode to start screen sharing

    ZegoScreenCaptureConfig adds the ZegoScreenCaptureAudioDeviceMode parameter, which is used to specify the audio device mode (call volume or media volume) to start screen capture.

Warning
  1. Only when the microphone audio source is set on the main road, the audio device mode takes effect.

  2. Only the [startScreenCapture] interface takes effect for the screen capture, and the [updateScreenCapture] interface has no effect.

  3. If the audio device mode changes during the collection process, causing the screen capture audio output to be abnormal, you can listen for the AudioDeviceException through the [onMobileScreenCaptureExceptionOccurred] callback, and restart the collection if necessary.

  4. After stopping the collection, the audio device mode before the collection will be restored.

For related API, please refer to startCapture, updateScreenCaptureConfig

  1. Semi-automatic mixing supports mixing alignment capabilities

    For related API, please refer to ZegoAutoMixerTask

  2. The number of media player instances is increased to 10

    For detailed information, please refer to media player.

  3. Media player supports fragment file storage to avoid excessive memory application at once

Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

  1. Pull stream switching function supports forced switching mode

    Enabling forced switching mode can avoid the situation of not pulling the stream for a long time when switching from a high bitrate to a low bitrate in a weak network environment.

    For related API, please refer to SwitchPlayingStream

  2. Scene configuration adds KTV scene parameters

    For related API, please refer to setRoomScenario

  3. New audio and video first frame latency callback interface for non-main thread (UI thread), which can more accurately count the first frame latency when the main thread is blocked

  4. New callback interface for data indicators of each link on the pull stream

Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

  1. SDK player supports HLS protocol pull stream and supports resolution adaptation
Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

For related API, please refer to SwitchPlayingStream

  1. Support sending cloud proxy configuration through cloud control and dynamic effect

    Support sending cloud proxy configuration through cloud control. When the cloud control configuration is completed and the SDK pulls the latest cloud control information, the new cloud proxy configuration can take effect immediately.

Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

For related API, please refer to setCloudProxyConfig

  1. Push and pull stream functions add national encryption algorithm encryption
Warning

If you need to use this feature, please contact ZEGOCLOUD Technical Support.

For related API, please refer to startPublishingStream, addPublishCdnUrl, removePublishCdnUrl 19. Support WMA encoder

The media player and audio effect player support playing WMA format audio files.

Enhancements

  1. The curl library in the SDK is upgraded to version 8.14.1

Bug Fixes

  1. Fixed the issue that the camera was not released normally when the camera was repeatedly collected when calling startPreview and startPublish asynchronously.

  2. Fixed the issue that the error prompt appeared when the eventChannel was repeatedly registered and the zego_express_event_handler data was processed in the callback.

  3. Fixed the issue that the remote device status callback did not trigger the onRemoteCameraStateUpdate and onRemoteMicStateUpdate events.

  4. Fixed the issue that the camera permission pop-up window appeared in the pure audio scenario.

  5. Fixed the issue that the startPlayingStream interface could not pull the stream without passing in the view container parameter.


3.21.0 Version

Release date: 2025-06-12

New Features

  1. Support customizing CDN stream playback timeout duration
Warning

To use this feature, please contact ZEGOCLOUD technical support.

For the case where the waiting time for CDN playback is too long, resulting in poor user experience, the SDK optimizes the internal timeout logic for CDN playback, reducing the waiting time. In addition, the SDK supports developers to customize the playback timeout time.

  1. Support setting the stream title when publishing a stream

    If you want to display the live title in scenarios such as the live list, the SDK supports developers to configure the title through the streamTitle parameter in ZegoPublisherConfig before calling the startPublishingStream interface to start publishing the stream.

    For related API, please refer to startPublishingStream, ZegoPublisherConfig > streamTitle

  2. Added an error code related to resource file permissions for the media player

    The media player has added an error code 1008015 related to resource file permissions to help developers quickly locate the problem.

    For related API, please refer to onMediaPlayerStateUpdate

Enhancements

  1. Updated the libvpx version

    To improve the security quality of the SDK, the libvpx library has been upgraded to version 1.13.1.

  2. Optimize the login and stream publishing/playing time

    The SDK scheduling logic has been optimized to reduce the login and stream publishing/playing time. It can improve the user's experience of playing streams instantly.

  3. Optimize the dual-channel audio encoding

Warning

To use this feature, please contact ZEGOCLOUD technical support.

Optimized the dual-channel audio encoding efficiency in specific scenarios:

while maintaining the same audio quality, the SDK reduces the audio bitrate to lower user bandwidth consumption and improve playback smoothness and experience.

  1. Optimize the room stream extra information sending performance

    When the room stream extra information fails to be sent, the SDK will retry until the information is successfully sent within the stream life cycle, improving the reliability of the information.


3.20.5 Version

Release date: 2025-05-13

New Features

  1. More Features Added for Web Platform

    FeatureAPI
    Get and Set Audio Parameters
    Geo-fencingsetGeoFence
    Cloud ProxysetCloudProxyConfig|_blank
    Set Publishing End Capture VolumesetCaptureVolume
    Forward to CDN
    Dynamic Traffic Control Strategy Switching
    Set Playback Volume
    Note
    Values above 100 are not supported and will be treated as 100.
    Whether to receive all audio data for playbackmuteAllPlayAudioStreams
    Real-time sequential data
    Enable and disable sound level monitoring
    Auto Mixing
    Local Device Exception Event CallbackonLocalDeviceExceptionOccurred
    Local Audio Device State Change Event CallbackonAudioDeviceStateChanged
    Get Raw Audio Data
    Mixer Sound Level CallbackonMixerSoundLevelUpdate
    Note
    Web platform only supports getting mixer sound level through SEI. Please contact ZEGOCLOUD technical support to enable configuration and handle race conditions when calling the interface.
    Auto Mixer Sound Level CallbackonAutoMixerSoundLevelUpdate
    Note
    Please contact ZEGOCLOUD technical support to enable configuration.

Enhancements

  1. Updated Express Native SDK to version 3.20.5.
  2. Updated Express Web SDK to version 3.9.0.

Bug Fixes

Note

The following bug fixes only apply to Web platform methods.

  1. Fixed issue where setting maxMemberCount parameter when logging into room did not take effect
  2. Fixed issue where calling setStreamExtraInfo and mutePublishStreamAudio before publishing stream did not take effect
  3. Fixed issue where remainTimeInSecond field in onRoomTokenWillExpire had incorrect unit (changed from milliseconds to seconds)
  4. Fixed issue where setRoomMode could still be called to modify multi-room mode after engine initialization

3.20.0 Version

Release date: 2025-03-24

New Features

  1. A New Network Quality Callback Based on User Dimension

    A new callback, onRtcStats, allows developers to measure the RTC network quality based on the user dimension. This interface aggregates and reports the quality data of all stream publishing and playing of the local user, including uplink and downlink metrics such as occupied bandwidth, RTT, and packet loss rate, as well as end-to-end delay.

    For related API, please refer to onRtcStats

Bug Fixes

  1. Fixed the routing exception issue that occurs occasionally when using Bluetooth headphones on iOS.

  2. Fixed known issues and optimized SDK performance.


3.19.1 Version

Release date: 2025-02-26

New Features

  1. Support for the Latest Flutter Version

    The ZEGO Express Engine SDK now supports version 3.29.0 of Flutter.

3.19.0 Version

Release date: 2025-01-21

New Features

  1. Added Dynamic Loudness Balance feature for Solo scenarios

    When Dynamic Loudness Balance is enabled, the SDK dynamically adjusts vocal volume based on Media Player accompaniment's real-time performance, maintaining appropriate ratio between vocals and accompaniment at all times. This improves the blend of vocals and accompaniment, enhancing audience experience in real-time KTV Solo scenarios.

    For related API, please refer to enableAuxBgmBalance

Improvements

  1. Optimized CDN domain name resolution logic to avoid thread blocking

    The domain name resolution logic for CDN publishing and playing streams has been changed from synchronous to asynchronous operation to avoid thread blocking.

  2. Reduced first frame latency to improve instant playback experience

    For devices running ZEGOCLOUD Express SDK for the first time, room entry time and stream publishing/playing time are reduced to improve users' instant playback experience.

Version 3.18.1

Release date: 2024-12-17

Bug Fixes

  1. Optimized login time.

  2. Fixed the compatibility issue with older versions of the experimental API.

  3. Fixed the issue of media player low probability status exceptions.


Version 3.18.0

Release Date: 2024-12-04

New Features

  1. Support for AI Acoustic Echo Cancellation (AEC)
Warning

To use this feature, please contact ZEGO technical support.

AI AEC supports intelligent identification and cancellation of echoes. Compared to traditional AEC algorithms, it significantly improves the fidelity of the human voice without additional latency or power consumption. It is suitable for real-time KTV, high-quality voice chat, and video scenarios.

For the related API, please refer to ZegoAECMode > AI

  1. Web Support for Setting Log Level Before Initializing the Engine

    The Web platform supports setting the log level before initializing the engine to reduce logs printed to the browser console.

    For the related API, please refer to setLogConfig

  2. New callback for room state change notification on the web end

    When the connection state of the room changes, the onRoomStateChanged callback is triggered, and developers can use this callback to determine the current user status in the room.

    For related API, please refer to onRoomStateChanged

Improvements

  1. Reduced Push and Pull Stream Time, Enhanced SDK Performance

Bug Fixes

  1. Fixed the issue where iPads cannot connect to Bluetooth headphones

  2. Fixed the occasional playback crash after enabling local caching in the media player

  3. Fixed the issue of black screen in local preview after switching front and rear cameras on the Web end


Version 3.17.0

Release Date: 2024-10-09

New Features

  1. Flutter framework supports Linux platform

    Supports Debian 10 or above, Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS.

  2. Support customizing the stream resource type for audience members before and after going on stage

    Support setting different stream resource types for audience members before and after going on stage, making the streaming method more flexible. It can be set to: streaming through RTC, ultra-low latency live streaming (L3), or streaming through CDN. For example, it can be used to implement live interactive scenarios where the audience member uses L3 streaming by default before going on stage, switches to RTC streaming during the interaction on stage, and switches back to L3 streaming after going off stage.

    For related API, please refer to startPlayingStream, ZegoPlayerConfig > customResourceConfig

Improvements

  1. When logging into a room, the userName field is changed to an optional field

    When logging into a room using the loginRoom interface, userName was originally a required field. This optimization makes it an optional field.

    For related API, please refer to loginRoom

  2. Optimize the stereo sound effect and improve the sound quality of music pitch shifting

    For related API, please refer to setVoiceChangerParam

Bug Fixes

  1. Fix the issue of monitor module crashing and causing the main thread to freeze during deinitialization

  2. Fix the issue of possible crash when scoring starts for copyrighted music

  3. Adjust the lifecycle and fix known crash issues

  4. Fix known issues with the media player


Version 3.16.0

Release Date: 2024-07-29

New Features

  1. Low-latency mode added to AI noise reduction

    Note: Please contact ZEGO technical support to enable this feature.

    Under a 10ms delay, the AI noise reduction can still maintain pure noise reduction effect and high-fidelity voice quality. It is suitable for scenarios that are sensitive to latency, such as In-Game Voice Chat, Party up in games, and real-time chorus. Currently, AI noise reduction supports balanced mode, low-latency mode, and lightweight mode.

    For related API, please refer to setANSMode

  2. Control whether a stream is subject to review during streaming

    Note: If a stream is set to allow review, it will not be reviewed if the developer does not initiate a review task.

    When calling the review interface, it will review all streams in the room by default. If the client wants to control that a certain stream cannot be reviewed, it can set the review flag [streamCensorFlag] parameter to 1 (not allowed) when calling the [startPublishingStream] interface to start streaming.

    For related API, please refer to startPublishingStream, ZegoPublisherConfig > streamCensorFlag

  3. Media Player now supports playback speeds as low as 0.3x

    The playback speed range of the Media Player has been expanded from [0.5, 4.0] to [0.3, 4.0].

    For related API, please refer to setPlaySpeed

  4. Added user-level negotiation range for H.265 client encoding compatibility strategy

    Note: Please contact ZEGO technical support to enable this feature.

    Control the compatibility range of the local client encoding for all streaming users or all users in the room. That is, when there are users in the specified range that do not support H.265, the local client encoding will dynamically fallback.

    For related API, please refer to loginRoom, startPublishingStream, ZegoPublisherConfig > codecNegotiationType, ZegoRoomConfig > capabilityNegotiationTypes

Bug Fixes

  1. Fixed the issue of audio still playing through the external speaker after plugging in headphones

  2. Fixed the issue of crashes caused by Bluetooth-related permissions


Version 3.15.0

Release Date: 2024-06-05

New Features

  1. Support for ear back sound data to be played from the speaker

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

    The ear back sound data can be played from the speaker.

  2. Support for enabling voice changer effects on media player output

    The media player has a new [enableVoiceChanger] interface that supports enabling voice changer effects on the sound output from the media player, while selecting the desired voice modulation effect.

    For related API, please refer to ZegoMediaPlayer > enableVoiceChanger

Improvements and Optimizations

  1. Optimization of "Balance Mode" noise reduction in AI scene-based noise reduction

    Optimized the "Balance Mode" noise reduction in AI scene-based noise reduction. With no change in performance, the clarity and stability of the human voice have been further improved, and noise suppression is cleaner.

Bug Fixes

  1. Fixed the issue where the input source for auxiliary stream pushing might crash probabilistically when stopping the audio and video engine during the main stream pushing.
  2. Fixed the occasional playback failure when playing network materials with the media player.
  3. Fixed the probabilistic crash issue during hardware encoding initialization.
  4. Fixed the playback issue with hardware decoding of CDN live video streams containing B-frames.
  5. Fixed the issue of wild pointer access in camera enumeration.
  6. Removal of innerHTML interface in Web to reduce security risks.

Deprecated and Removed

  1. Deprecation of media player [setVoiceChangerParam] interface

    To enhance the playback experience in voice changing scenarios, the media player [ZegoMediaPlayer.setVoiceChangerParam] interface is deprecated. Please use [ZegoMediaPlayer.enableVoiceChanger] instead.

    For related API, please refer to ZegoMediaPlayer > enableVoiceChanger


Version 3.14.5

Release date: 2024-05-07

New Features

  1. Mobile development supports iOS 17.0 version.

    Note: Starting with this release, iOS 11.0 and earlier versions are no longer supported.

    Starting from 2024-04-29, all apps on the App Store must support iOS 17.0 version. For details, please refer to Apple Developer Website Official Instructions.

  2. Added two new sound effects.

    ZegoVoiceChangerPreset added enumeration values for two voice-changing effects, Autobot and OutOfPower, to enrich the voice-changing effects.

    For related API, please refer to setVoiceChangerPreset

  3. Supports determining in advance whether the device can run the AI voice changing function.

    The AI voice changing function has certain requirements on the performance of the running device. You can use the [isAIVoiceChangerSupported] interface to determine in advance whether the device can support the AI voice changing function.

    For related API, please refer to isAIVoiceChangerSupported

Bug Fixes

  1. Fixed an issue where the release timing of undefined global variables caused the process to exit abnormally.

  2. Fixed the issue where some models use AudioTrack to play audio, resulting in abnormal sound.

  3. Fixed the problem of using the AI voice changing function to occasionally cause the audio and video to be out of sync, and causing words to be swallowed instantly when starting and stopping.

  4. Fixed the issue where the iPad collects audio through the microphone and occasionally has no sound.


Version 3.13.3

Release date: 2024-04-09

Bug Fixes

  1. Fix known issues.

Version 3.13.2

Release date: 2024-04-01

Bug Fixes

  1. Fix known issues.

Version 3.13.0

Release date: 2024-03-21

New Features

  1. When using the QUIC protocol for CDN streaming, it supports 0-RTT connection establishment.

    Note:

    The security of this feature is slightly lower compared to traditional methods. Please use it with caution.

    When using this feature, set ZegoCDNConfig.protocol to quic.

    ZegoCDNConfig adds the [quicConnectMode] attribute, which allows developers to use the QUIC protocol for CDN streaming. Set quicConnectMode to 1 for QUIC connection mode, enabling 0-RTT connection and fast service activation. Currently compatible with CDN live streaming products from Huawei, Wangsu, Tencent, and other vendors.

    This feature is not enabled by default (quicConnectMode is set to 0, indicating normal connection establishment).

    For related API, please refer to ZegoCDNConfig > quicConnectMode

  2. Support setting a timeout for CDN repushing to monitor the existence of a stream.

    Note: This feature only takes effect when initiating a retweet. If there is a disconnection during the retweet process, the SDK will maintain the retry logic and there will be no callback notification in this case.

    When initiating a retweet task, you can set the timeout for the retweet CDN through the addPublishCdnUrl interface to monitor if the stream exists. For example, if the developer has initiated a retweet task but the stream has not started streaming yet, after the timeout set, the SDK will return a callback notification indicating that the stream does not exist.

    This callback notification will only be sent to the retweet initiator, not the streaming initiator. If the retweet initiator and the streaming initiator are not the same user, it is recommended for developers to initiate the retweet from the server side and receive this notification.

    For related API, please refer to addPublishCdnUrl

  3. Support for callback local recording quality data.

    ZegoDataRecordProgress adds the [quality] attribute, which can be used to callback the quality data of the recorded file, such as frame rate and bit rate, during the local recording process.

    For related API, please refer to onCapturedDataRecordProgressUpdate

Enhancements

  1. Optimizing the callback notification logic of the media streamer.

    Optimize the callback notification logic of the media streaming engine, add error callbacks for unsupported audio sampling rate (for example, not supporting a sampling rate of 24K), and help developers quickly locate problems.

    For related API, please refer to onMediaDataPublisherFileClose

  2. For low-performance Android devices, optimize the fluency of voice and the effect of echo cancellation during background operation.

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

  3. For KTV scenarios, optimize the alignment effect of Bluetooth earphones on vocals and accompaniment, enhancing the K-song experience on iOS or Android platform.

Bug Fixes

  1. Fix the problem of abnormal time consumption of interface calls caused by not deinitializing the SDK after long-term use.

  2. Fixed compatibility issues with hardware encoding and decoding, addressing occasional crashes.

  3. Fix known compatibility issues and null pointer problems.


Version 3.12.4

Release date: 2024-01-18

Bug Fixes

  1. Fixed the issue where the UI would occasionally freeze if a network abnormality occurs when initializing the SDK on iOS platform.

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

  1. Support Copyright-music plugin.

    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 getting a list of streams in the room from the client.

    Note: The function retrieves a real-time stream list inside the room. If the room service is disconnected, the results obtained may not be accurate.

    Developers are supported to obtain the stream list inside the room from the client, which can be used to handle related business logic.

    For related API, please refer to getRoomStreamList

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

  4. The media player supports obtaining the real-time frame rate of the file.

    Support for obtaining frame rate statistical information of the currently playing media file, which can be used for data display, anomaly monitoring, etc..

    For related API, please refer to getPlaybackStatistics

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

Bug Fixes

  1. Fix the issue of crashing when playing audio or video with a sample rate higher than 48K on certain Android devices.

  2. Fix the issue of occasional crashes when calling the [enableAudioCaptureDevice] interface on iOS platform.


Version 3.11.0

Release date: 2023-12-15

New Features

  1. All network requests support the IPv6 protocol

  2. Real-time room messaging supports sending transparent messages

    Support sending real-time room messages to specified clients or client servers; message types are divided into normal and ordered, with the latter ensuring that messages are received strictly in order. This feature is suitable for scenarios where the anchor needs to manage the microphone positions in the room, for example:

    • Send messages to users who need to mute through the anchor client, and the receiving client will mute accordingly.

    • When the anchor wants to kick a user out of the room, send a message to the client server of the other party through the anchor client, and kick out the user.

    For related API, please refer to sendTransparentMessage

  3. Automatic mixing supports setting water level

    Note:

    • This feature is not enabled by default, meaning the server uses the default configuration values.

    • This feature may increase latency, so use it judiciously.

    The automatic stream mixing interface supports setting a watermark to control the lower limit of the range for adaptive adjustment of the mixing server's stream cache. This helps maintain a balance between mixing time and video stuttering caused by unstable streaming from the source. This feature only takes effect on new input streams and does not affect input streams that have already started mixing.

    For example, in a real-time karaoke KTV scenario, slight fluctuations in the streaming network from the source may cause mixing stuttering, which in turn increases the likelihood of stuttering for viewers. By adjusting the lower limit of the watermark, you can optimize the viewer's experience with stuttering, but this will increase latency.

    For related API, please refer to ZegoAutoMixerTask > minPlayStreamBufferLength

  4. Support for using live streams as input streams for mixing

    Newly added support for using live streams as input streams for mixing; the URL of the live input stream supports both RTMP and HTTP-FLV protocols. This feature is suitable for mixing the RTC video streams of hosts' interactive broadcasting with cloud sports live streams, game live streams, etc., to achieve scenarios such as game or sports commentary in live broadcasting.

  5. Custom audio offset value is supported for mixing

    When using custom audio and video capture function and the corresponding audio capture sources have inconsistent delays, you can customize the audio offset value during mixing to achieve audio-video synchronization after mixing output, ensuring a better experience for the audience.

    For related API, please refer to ZegoMixerInput > advancedConfig

  6. The audio player supports separate settings for streaming volume and local volume

    The sound effect player supports setting the streaming volume and local playback volume separately, ensuring that the volume on both ends, local and remote, is within an appropriate range.

    For related API, please refer to ZegoAudioEffectPlayer > setPublishVolume, ZegoAudioEffectPlayer > setPlayVolume, ZegoAudioEffectPlayer > setPublishVolumeAll, ZegoAudioEffectPlayer > setPlayVolumeAll

Enhancements

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

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

  3. Optimize the strategy of switching between the front and back end to solve the problem of collecting silence in certain specific scenarios or models

  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.


Version 3.10.3

Release date: 2023-11-20

Bug Fixes

  1. Fixed the problem of false positives in the hibernate detection module, affecting room re-login and stream publishing-playing retry logic.

Version 3.10.0

Release date: 2023-10-27

New Features

  1. Added real-time AI voice-changing function

    Note:

  2. The AI Voice-Changing function is a paid function. If you need to apply for a trial or inquire about the official charging standards, please contact ZEGOCLOUD business personnel.

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

    New AI voice changing function, like the Conan's Bowtie in real-time calls, perfectly reproduces the timbre and rhythm of the target character, while retaining the user's speech speed, emotion, and intonation, and can switch timbre at will, with ultra-low latency allowing users Enjoy social chat, live broadcast, game voice and other scenarios.

    For related API, please refer to createAIVoiceChanger, destroyAIVoiceChanger

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

  5. Supports obtaining and uploading audio Dump files

    Note: Since audio dump files are sensitive privacy data of users, developers must read ZEGOCLOUD Privacy Policy carefully when implementing this capability. In addition, when collecting audio Dump files, please indicate the purpose of Express SDK collection when obtaining user authorization and consent.

    Supports saving and uploading audio data before and after processing, which can be used to locate audio-related problems, improve troubleshooting efficiency, and shorten access time.

    For related API, please refer to startDumpData, stopDumpData, uploadDumpData, removeDumpData, onRequestDumpData, onStartDumpData, onStopDumpData, onUploadDumpData

Enhancements

  1. Optimize the upper limit of expected publish and play stream bit rates for network speed testing

    Optimize the upper limit of expected publish and play streaming bit rates for network speed testing, increasing it to 15M. Developers can check how well the audio and video quality matches the current network before publishing and playing streams to ensure stable call quality.

    For related API, please refer to startNetworkSpeedTest

  2. Optimize the [muteAll] interface logic for receiving audio and video data from remote users when playing streams

    Note: The new interfaces [muteAllPlayAudioStreams], [muteAllPlayVideoStreams] and the old interfaces [muteAllPlayStreamAudio], [muteAllPlayStreamVideo] cannot be mixed.

    New interfaces [muteAllPlayAudioStreams] and [muteAllPlayVideoStreams] are added to receive the audio and video data of all remote users when playing streams; at the same time, the [mutePlayStreamAudio] and [mutePlayStreamVideo] interfaces are used to individually control the specified streams.

    After the old interfaces [muteAllPlayStreamAudio] and [muteAllPlayStreamVideo] are called, the receiving status of the specified stream cannot be controlled individually.

    For related API, please refer to muteAllPlayAudioStreams, muteAllPlayVideoStreams, mutePlayStreamAudio, mutePlayStreamVideo

  3. The media player supports only playing video or audio without consuming additional decoding performance

    Note: During playback, if the media stream type is modified, it will take effect the next time it is played.

    When using a media player to play audio and video files, the [setPlayMediaStreamType] interface can be used to set it to Audio-only or Video-only, which does not consume audio and video decoding performance.

    For related API, please refer to setPlayMediaStreamType

Bug Fixes

  1. Fixed the issue of occasional no sound when playing streams.

  2. Fixed the issue where the [logoutRoom] and [loginRoom] interfaces were called multiple times when multiple rooms were disconnected, resulting in subsequent failure to log in to the room.

  3. Fixed the problem of frequent retries when room reconnection fails.


Version 3.9.0

Release date: 2023-09-18

New Features

  1. Added SEI callback with timestamp.

    For related API, please refer to onPlayerRecvMediaSideInfo

  2. Direct-publish CDN supports updating the CDN address during publishing.

    For related API, please refer to enablePublishDirectToCdn

  3. Supports AI-balanced noise reduction mode.

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

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

    For related API, please refer to ZegoANSMode > ZegoANSModeAIBalanced

Enhancements

  1. Optimize [setLogConfig] interface.

    The life cycle of setLogConfig is expanded to the App life cycle, and its priority is higher than the configuration in setEngineConfig.

    For related API, please refer to setLogConfig, setEngineConfig

  2. Optimize the retry rules when the App is dormant.

    Optimize the retry rules when the App is sleeping. During the loginRoom and publishing-playing process, the App Sleep Time is also included in the Maximum Allowed Retry Time.

Bug Fixes

  1. Fixed the problem that the audio external collection module would cause silence when switching audio sources.

  2. Fixed the issue of a very small probability of failure when sending a new stream.

  3. Fixed the issue of the sound effects player occasionally crashes.

  4. Fixed the problem that when calling the sendAudioSideInfo interface to send audio secondary messages, it takes about 10 seconds for the player to receive the message.

  5. Fix the problem that the time spent on TCP disconnection of WS CDN in the case of direct publishing is fixed at 500 ms


Version 3.8.1

Release date: 2023-08-18

New Features

  1. Added support for Smart Cloud Proxy mode.

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

    After the developer sets the Smart Cloud Proxy mode, when publishing streams from RTC or L3, it will give priority to using the direct network mode to try. If the direct connection network is unavailable and it is currently a cellular network, continue to stay in the direct connection mode and try again; if the direct connection network is not available and it is currently a non-cellular network, then switch to the cloud proxy mode.

  2. Mediaplayer supports setting Http Headers of network resources.

    The mediaplayer supports setting the Http Headers of network resources. Based on this configuration, developers can customize and limit the access methods of network resources to strengthen the security protection of resources.

    For related API, please refer to setHttpHeader

  3. The range voice supports configuring the attenuation range of the 3D sound effect distance and the sound range of a single stream

    In the range voice scene:

    • Support to set the attenuation range [min, max] of the 3D audio effect distance through the setAudioReceiveRange interface. When the distance is less than min, the volume will not attenuate as the distance increases; when the distance is greater than max, the other party's voice will not be heard.
    • Support setting the vocal range [min, max] of a single stream through the setStreamVocalRange interface.
  4. Support callback related event activities by publish channel

    The onPublisherSendAudioFirstFrame callback function adds a channel parameter, which supports multi-channel listening and streaming to send the first frame information.

    For related API, please refer to onPublisherSendAudioFirstFrame

Enhancements

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

  2. 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 probelm that changing the userID after [createEngine] and before [destroyEngine] may cause publish-play stream failure when using Token authentication.

Deleted

  1. Abandoned some API interfaces

    In version 3.8.1, deprecated changes were made to the following API interfaces.

    • Abandoned the original onPublisherSendAudioFirstFrame callback interface and replaced it with the onPublisherSendAudioFirstFrame callback of the same name, and added a channel parameter to support callback-related event activities by publsih channel.

    • The original member function of ZegoRangeAudio class:

    • The original member function setAudioReceiveRange is discarded and replaced with the setAudioReceiveRange interface with the same name, and the parameter ZegoReceiveRangeParam type is extended to support setting the audio receiving range of the range voice.

    • The original member function setStreamVocalRange is discarded and replaced with the setStreamVocalRange interface with the same name, and the parameter ZegoVocalRangeParam type is extended to support setting the voice range of a single stream of range voice.

    There may be compatibility issues after the API interface changes, please refer to Upgrade guide 3.8.1+ for details.


Version 3.7.0

Release date: 2023-07-28

Enhancements

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

  2. In the publish-play stream retry state caused by network disconnection, support callback for local network quality. For related API, please refer to onNetworkQuality

  3. Support generating log upload tasks after calling the destroyEngine interface.

    For related API, please refer to submitLog

  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.


Version 3.6.1

Release date: 2023-07-03

Bug Fixes

  1. Fix the problem of calling the setRoomExtraInfo interface to directly report an error

Version 3.6.0

Release date: 2023-06-21

New Features

  1. Added Enhanced KTV reverb effect.

    Added an enhanced KTV reverb effect to achieve a more concentrated and brighter KTV vocal effect. Compared with the previous KTV reverb sound effect, the Enhanced KTV reverb effect shortens the reverb duration and improves the dry-wet ratio.

    The original KTV reverb effect is only suitable for users with obvious vocal defects, and the enhanced KTV reverb effect is suitable for most professional users and ordinary users.

    For related API, please refer to setReverbPreset

  2. Game voice function supports media player and audio player to use 3D sound effects.

    Developers can realize 3D sound effects of local audio and online audio resources by setting the position and orientation of media players and sound effect players. This function can be used to set the sound effect of the item in the virtual scene, as well as the background music of the specified location, etc.

    For related API, please refer to ZegoMediaPlayer > updatePosition, ZegoAudioEffectPlayer > updatePosition

  3. Media player double speed function supports up to 4x.

    The maximum speed of the media player has been increased to 4x. For example, when the user is playing an audio and video file, if it has been set to play at 2x, it can be accelerated to 4x when long pressing the screen.

    For related API, please refer to ZegoMediaPlayer > setPlaySpeed

  4. The media player supports functions such as downloading, retrieving data decryption, and playing at the same time.

    For copyright music protection in online players, the media player supports downloading while recalling unencrypted binary data, which is decrypted by the developer and then returned to the media player for playback. During the process, no files or cache files are generated.

    For related API, please refer to ZegoMediaPlayer > enableBlockData

Enhancements

  1. Adjust the applicationVolume and microphoneVolume in ZegoScreenCaptureConfig to become optional fields, expand SDK multi-port compatibility.

Bug Fixes

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

Version 3.5.0

Release date: 2023-05-19

New Features

  1. 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./unique-api/express-video-sdk/en/dart_flutter/zego_express_engine/ZegoExpressEngine/onPublisherSendVideoFirstFrame.html

    For related API, please refer to onPublisherSendAudioFirstFrame, onPublisherSendVideoFirstFrame

  2. The media player supports the first frame callback after the audio and video rendering is completed.

    When rendering audio and video through the media player, use the onMediaPlayerFirstFrameEvent callback to monitor the release timing of the "first frame of audio" or "first frame of video" after rendering. This function can be used to count the time consumption of audio and video rendering, or update UI performance, etc.

    For related API, please refer to onMediaPlayerFirstFrameEvent

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

  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.

    For related API, please refer to switchRoom

Enhancements

  1. Drastically reduces SDK memory consumption on iOS device.

    This optimization takes effect from version 3.5.0 and does not require additional interfaces.

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 problem that Android memory usage information is not updated.


Version 3.4.2

Release date: 2023-04-26

New Features

  1. Added geofencing function

    Notice:

    • To use this function, please contact ZEGO technical support.
    • Please configure geofence information before creating an engine.

    Restrict audio , Video and signaling data access to a certain area to meet regional data privacy and security regulations, that is, restrict users to access audio and Video services in a specific area.

    For related APIs, please refer to setGeoFence

  2. Support dynamic switching flow control strategy

    Supports dynamic switch Flow Control function, and supports setting Flow Control attributes, etc.

    For related APIs, please refer to enableTrafficControl, setMinVideoBitrateForTrafficControl, setMinVideoFpsForTrafficControl, setMinVideoResolutionForTrafficControl

Enhancements

  1. Optimize SDK memory usage

    Delete some unnecessary memory applications inside the SDK, and optimize the memory usage of the SDK. Compared with the previous version, the memory usage is reduced by about 10%.

Bug Fixes

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

Deleted

  1. Starting from version 3.4.2, the support for versions below iOS 11.0 is abandoned, and the iOS Deployment Target (minimum supported version) is upgraded to iOS 11.0

    For details, please refer to App Store submission requirement starts April 25 and Xcode 14 Release Notes.

  2. Starting from version 3.4.2, iOS SDK no longer supports 32-bit armv7 architecture

    For details, please refer to Xcode 14 Release Notes.


Version 3.3.1

Release date: 2023-03-24

Bug Fixes

  1. Fix the problem that Android hardware HeadphoneMonitor fail in some scenarios.

Version 3.3.0

Release date: 2023-03-20

New Features

  1. Support the vocal enhancement effect in the external playback scene

    In the external playback scene, the Microphone of the device is too close to the speaker, which may easily cause the human voice to be blurred or dull. In this scenario, vocal enhancement can effectively improve the clarity of vocals and improve the dullness, so it is recommended to enable this function in the loudspeaker scenario.

    In order to achieve the human voice enhancement effect in the external playback scene, you can turn on the human voice enhancement AudioEffect and set the enhancement level. The recommended enhancement level is 4, which can be used in the KTV external playback scene to finely Controller the vocal effect.

    For related APIs, please refer to enableSpeechEnhance

  2. In custom Audio capture and SDK internal rendering mode, support adaptive device capture rendering delay and AEC(AEC) function

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

    In the custom Audio collection and SDK internal rendering mode, it supports Audio Mixing adaptive alignment and AEC functions, which can achieve better results when realizing chorus in KTV scenes.

  3. In-game Voice Chat supports custom setting of sound mode and listening mode

    In-game Voice Chat supports custom setting of the sound mode and listening mode, which can be used to realize the scene where players of the same team that are not within the range need to be blocked after joining the team.

    For related APIs, please refer to setRangeAudioCustomMode

  4. Added [StandardVoiceCall] standard Voice Calling scene in scene-based audio and Video configuration

    Added [StandardVoiceCall] standard Voice Calling scene in scene-based audio and Video configuration, which is applicable to 1v1 pure Voice Calling scene. For details.

    For related APIs, please refer to setRoomScenario

Enhancements

  1. Optimize the AEC(AEC) effect of the KTV scene

    The AEC optimization for KTV scene realizes:

    • Significantly improve the quality of human voice in the external playback scene, making the human voice more fidelity.
    • While eliminating echoes, it can effectively avoid occasional words swallowing or vocal fluctuations.

Bug Fixes

  1. Fix the problem that the player has no sound after plugging and unplugging the headset on Android

Version 3.2.1

Release date: 2023-02-24

New Features

  1. Flutter Web supports multi-room function

    For related APIs, please refer to setRoomMode

Bug Fixes

  1. Fixed onRemoteSoundLevelUpdate callback will cause abnormal problem
  2. Fixed the problem that setSEIConfig interface setting SEIType on iOS platform has no effect

Version 3.2.0

Release date: 2023-01-31

Enhancements

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

Version 3.1.0

Release date: 2022-12-27

New Features

  1. The SDK supports setting cloud proxy.

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

    By setting the cloud proxy interface of the SDK, all traffic corresponding to the SDK will be relayed through the proxy server in the cloud to realize communication with the RTC.

    For related APIs, please refer to setCloudProxyConfig

Enhancements

  1. Greatly increase the Audio connection rate in extremely weak network areas and reduce the connection time.

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

Bug Fixes

  1. Fix the problem that sending room Logout signaling may fail.
  2. Fix the occasional crash of Android Audio Effect Player.
  3. Fix the problem of restarting the device in Android low-latency mode.

Version 3.0.3

Date of release: 2022-12-06

Warning

This update contains incompatible changes, please refer to 3.0.0 and above version upgrade guide for details.

New Features

  1. Scene-based AI noise reduction adds the ability to reduce noise in music scenes

    Note: If you need to use this function, please contact ZEGO technical support. This feature currently only supports Android、iOS、macOS and Windows platforms.

    The scene-based AI noise reduction function, based on the previous noise reduction for all non-human voices, has added support for noise reduction in music scenes. By identifying music, it can intelligently adjust the noise reduction effect to restore the sound quality of music. The SDK will detect the music input from the Microphone in real time, and automatically adjust the noise reduction level to ensure the high-fidelity sound quality of the music in the sound card, singing or near-field music scene.

  2. Add room dimension scenario Scenario

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

    Currently supported scenarios include Live Video Streaming, KTV, standard 1v1 audio and Video Calling, high-definition 1v1 audio and Video Calling, standard voice Voice Chatroom, and high-quality voice Voice Chatroom(the web side does not support high-quality voice Voice Chatroom scenarios and KTV scenarios for now) .

    For related APIs, please refer to setRoomScenario

  3. Added the switch interface for obtaining GPS information

    Note: This function is enabled by default. If you need to disable this function, please contact ZEGO technical support. This feature currently only supports Android、iOS、macOS and Windows platforms.

    In the case that the App has the permission to obtain the geographic location, the developer can choose whether to allow the ZEGO SDK to obtain the GPS information cached by the system, and obtain it by default. When developers want to disable this function, they need to contact ZEGO technical support for setting.

Enhancements

  1. Optimized for 1v1 pure RTC call scenarios

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

    Optimized for 1v1 call scenarios, suitable for use in pure RTC scenarios.

  2. Optimize spatial Audio function

    The spatial Audio capability has been optimized so that users can distinguish front and rear sound sources to achieve a better sense of immersion.

  3. Optimize the situation where the Volume of the collection is too high and the sound is broken

    Optimize the AGC AGC Controller algorithm, when the collection volume is Volume, it will not cause broken sound.

  4. Optimize the audio and Video experience under extremely weak network

    The SDK optimizes the internal strategy. In audio and Video scenarios, it supports a minimum Downlink of 50 kbps to play streams without lagging, ensuring a better experience under extremely weak networks.

Bug Fixes

  1. Fixed the problem that the log currently being uploaded may crash when the network status is switched from networked to non-networked
  2. Fixed the problem that GetCallbackController is not thread-safe​
  3. Fix 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
  4. Fix the problem that the onNetworkQuality interface does not call back on the Android platform

Deleted

  1. Abandoned the three old versions of [ZegoScenario] Scenarios Abandoned the three scenarios of General, Communication, and Live in the ZegoScenario scenario enumeration.

  2. Deleted setDebugVerbose, setPlayStreamVideoLayer, enableAudioDataCallback and other interfaces, please refer to 3.0.0 and above version upgrade guide for details.


Version 2.23.0

Release date: 2022-10-25

New Features

  1. Support the development of macOS programs using the Flutter framework

    The Flutter framework adds support for macOS. macOS currently only supports TextureRenderer, it is recommended to obtain the view of ZegoCanvas through createCanvasView.

    For related APIs, please refer to setPlayerCanvas

  2. The system HeadphoneMonitor of Huawei mobile phone supports Reverb effect

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

    When Huawei mobile phones use the system HeadphoneMonitor, the Reverb effect is increased. Due to the limitation of the system, only the following three Reverb effects are supported: KTV, Theater, Concert, and the default is KTV. If you choose a Reverb effect other than the three effects, the KTV effect is still the default.

  3. Flutter framework adds interfaces to support developing web programs

    The Flutter framework adds some interfaces for developing web programs.

    For related APIs, please refer to enableCamera, mutePlayStreamAudio, mutePlayStreamVideo, sendBroadcastMessage, sendBarrageMessage, etc.].

Bug Fixes

  1. Fixed an issue where calling loginRoom during network switching (Wi-Fi or cellular) may not have a callback in multi-room mode.
  2. Fixed the issue that the voice of people in the original squad could still be heard outside the range of the range voice function after exiting the squad.
  3. Fix the crash problem that may occur on Android 5.1 and below.
  4. Fix other known issues.

Version 2.22.0

Release date: 2022-08-24

New Features

  1. Added support for SOCKS5 client proxy

    In an intranet or firewall scenario, you can interact with the public network through a proxy server, and set the proxy server address through setEngineConfig to ensure that the ZEGO audio and Video cloud service is normal. Currently, only the SOCKS5 protocol is supported.

    For related APIs, please refer to setEngineConfig

  2. iOS and Android platforms support dynamic modification of AudioDeviceMode

    Added setAudioDeviceMode interface to dynamically modify the Audio mode of the device. This configuration determines the Volume mode, pre-processing mode and Mic occupation logic of the device. You can choose according to specific scenarios.

    For related APIs, please refer to setAudioDeviceMode

  3. Support to call back the PCM data of the vocal-aligned Media Player

    Notice:

    • The enableAux interface needs to be used at the same time when using the Media Player to play the accompaniment.
    • After the enableAlignedAudioAuxData interface is enabled, the Media Player data will not be pushed out. If you need to tune the accompaniment and align the vocals in the recording and singing scene, you can first mix the accompaniment into the main channel through the enableAux interface, and then enable it through the enableAlignedAudioAuxData interface]. switch, and finally obtain the PCM data of the media Media Player through the onAlignedAudioAuxData, enableAux callback. At this time, the data collected by the Media Player and the Mic are aligned, and the data frames correspond one-to-one.

    For related APIs, please refer to enableAlignedAudioAuxData, onAlignedAudioAuxData, enableAux

  4. Support the development of Windows programs using the Flutter framework

Enhancements

  1. Optimize network quality callbacks to sense abnormal status of remote users

    When the remote user is abnormal, onNetworkQuality will call back the quality unknown status (ZegoStreamQualityLevel.Unknown status) every 2s. When the user remains in this state for 8s, it is considered that the remote user has been abnormally disconnected, and the callback will be called at this time. Quality exception status (ZegoStreamQualityLevel.Die status).

    For related APIs, please refer to onNetworkQuality

  2. Optimize the network quality callback, the network quality feedback is more sensitive

    The push-pull stream quality callback will call back the result with the worst quality every 3s. When serious jitter or packet loss occurs during the period, the poor stream quality can be immediately reported.

    For related APIs, please refer to onPlayerQualityUpdate, onPublisherQualityUpdate, onNetworkQuality

  3. Optimize log reporting strategy

    Optimize the log reporting strategy to improve log upload efficiency.

  4. Optimized the harmonic detection algorithm of AGC

    AGC's newly improved harmonic detection algorithm has a crash problem, and is now back to the old version of the harmonic detection algorithm.

Bug Fixes

  1. Fix the very low probability of crash of the network module

Version 2.21.1

Release date: 2022.07.15

Bug Fixes

  1. Fix the issue that SEI failed to send in Audio-only scene

Version 2.21.0

Release date: 2022.07.12

New Features

  1. Range voice supports custom distance update frequency

    The default distance update frequency of the SDK is changed from 1s to 100ms, which can basically satisfy the smooth attenuation effect of most developers when using range voice, optimize the sound attenuation experience when using range voice, and can achieve a smoother and more natural attenuation effect.

    If you want to better match the actual business effect, you can call the setPositionUpdateFrequency interface to modify the frequency by yourself.

    For related APIs, please refer to setPositionUpdateFrequency

  2. Add the CDN Plus play streams configuration item to the play streams interface

    Note: If you want to Controller the play streams mode from the cloud through more dimensions such as region and user, please contact ZEGO technical support for related configuration.

    The play streams interface adds the CDNPlus play streams resource mode (ZegoStreamResourceMode), and developers can enable and use CDNPlus to play streams by themselves according to the stream dimension. CDN Plus play streams is a cost-effective play streams method with higher quality than CDN play streams , but the price is close to CDN.

    For related APIs, please refer to startPlayingStream

Enhancements

  1. Optimize the Error Codes related to Token exceptions when mandatory login authentication is enabled

    Added 1002074, 1002075, 1002076, 1002077, 1002078, 1002079, 1002080 and other Error Codes. After enabling mandatory login authentication, if the Token is incorrect, these Error Codes will be returned. For details, please refer to the detailed explanation and handling suggestions in Common Error Codes.

  2. Real-time chorus vocal accompaniment alignment optimization

    Optimized the alignment of vocals and accompaniment in KTV real-time chorus scenes. Avoid when the client pushes two streams of vocal and accompaniment at the same time, due to the delay of device playback, the vocal and accompaniment are not aligned, resulting in a degraded experience.

Bug Fixes

  1. Fixed an issue where L3 play streams failed

    Fixed the problem that when the 2.20.0 ~ 2.20.2 SDK uses L3 to play streams, if the pulled stream is the stream pushed by the SDK of 2.15.0 and earlier versions, it may fail.

  2. Fix some custom Audio capture related bugs


2.21.0-prerelease.1 version

Release date: 2022.07.04

New Features

  1. Support the development of web programs using the Flutter framework

Version 2.20.2

Release date: 2022.06.20

Bug Fixes

  1. Fixed a probabilistic play streams failure problem
  2. Fixed the problem that setting the Audio device mode does not take effect before initializing the SDK

Version 2.20.0

Release date: 2022.06.16

New Features

  1. The Media Player supports setting the channel

    After calling the createEngine interface to initialize the engine and the createMediaPlayer interface to create a Media Player, you can call the setActiveAudioChannel interface to set the left channel, right channel or all sound. When initialized, the Media Player defaults to all channels.

    For related APIs, please refer to setActiveAudioChannel

  2. Volume gain that supports linear adjustment

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

    A new Volume gain method is provided, and developers can choose an appropriate Volume gain method according to actual needs.

  3. Supports automatic auditing of audio and Video at stream level

    Note: If you want to use this function, please contact ZEGO technical support to activate the background service.

    When calling the startPublishingStream interface to start publish streams, developers can set the "ZegoStreamCensorshipMode" parameter to conduct automatic audio and Video audits at the stream level, including audit types such as pornography and politics, so as to reduce the risk of developers access difficulty and service maintenance costs.

    For related APIs, please refer to startPublishingStream

Enhancements

  1. The Error Codes when the developer passes in a non-existing AppID has been optimized from 1002099 to 1001004

  2. Optimize AEC to solve the sound swallowing phenomenon in KTV and other scenes

  3. Added 1009013 Error Codes

    Indicates that the message input length exceeds the limit. When this Error Codes occurs, please check the input content length or contact ZEGO technical support to extend the message content length.

  4. Added 1017009 Error Codes

    When the copyrighted music is initialized, the authentication fails because the AppSign or Token is not set, and this Error Codes will appear. At this time, if you use AppSign authentication, please pass in AppSign when initializing the SDK; if you use Token authentication, please call the loginRoom interface before calling the initCopyrightedMusic interface] And pass in Token for authentication.

    For related APIs, please refer to initCopyrightedMusic, loginRoom

Bug Fixes

  1. Fixed the error of custom capture AAC Audio format

Version 2.19.0

Release date: 2022.05.23

New Features

  1. Direct publishing to CDN stream supports play streams through L3

    When Direct publishing to CDN , the SDK play streams from the customer's CDN source site, distributes the audio and Video content to the audience through L3, and Controller the source site resources through [ZegoResourceType] without changing the publish streams method. This function is often used in live broadcast scenarios.

    For related APIs, please refer to startPlayingStream

  2. Support SEI data synchronization with Audio frame in audio and Video scenarios

    Note: Currently, only the RTC scenario is supported, and it is invalid in the Direct publishing to CDN and Relaying Streams to CDNs scenarios.

    Starting from version 2.19.0, SEI (Media Supplemental Enhancement Information) is supported to be sent synchronously with Audio frames in audio and Video scenarios. This function is often used in Video scenarios where SEI is strongly related to Audio , such as real-time KTV.

    In versions prior to 2.19.0, the SEI data was sent along with the Video frame data. Generally, the FPS is much lower than the Audio frame rate, resulting in insufficient SEI accuracy/frequency in Stream Mixing stream alignment and accompaniment alignment scenarios.

    For related APIs, please refer to onPlayerRecvAudioSideInfo, sendAudioSideInfo

Enhancements

  1. To improve security, this release upgrades curl to 7.82.0

Bug Fixes

  1. Fixed the problem that the network speed measurement callback could not be received when the start publish streams interface was called immediately after the network speed measurement interface was called

  2. Fixed the issue that the call Volume was changed from Bluetooth to speaker when the capture was enabled when certain Android models were used with certain Bluetooth headsets

  3. Fixed iOS not working on simulator


Version 2.18.0

Release date: 2022-04-28

New Features

  1. Added AI noise reduction function
Warning

AI noise reduction will currently cause great damage to the music collected by the Microphone, including the sound of people singing through the Microphone. To use this feature, please contact ZEGO Technical Support.

AI noise reduction means that the SDK will perform noise reduction processing on the sound collected by the Microphone. In the case of normal processing of the original steady-state noise, it will also deal with non-steady-state noise, mainly including mouse, keyboard sound, percussion, air conditioner, Non-human noises such as kitchen dishes, noisy restaurants, ambient wind, coughing, air blowing, etc. The AI noise reduction mode is set through the "ZegoANSMode" parameter in the [setANSMode] interface, and the noise reduction mode can be adjusted in real time.

This function is often used in calls, conferences and other scenarios without background music, such as ordinary voice Voice Chatroom, voice conferences, voice blackouts, and one-to-one Video Calling.

For related APIs, please refer to setANSMode

  1. Support setting the playback speed of AudioEffect

    After starting to play the AudioEffect, you can call the [SetPlaySpeed] interface to set four playback speeds for the AudioEffect(the local playback speed and the publish streams speed will be set at the same time), which are 0.5 times, original speed, 1.5 times and 2 times respectively, and the default is the original speed.

    For related APIs, please refer to SetPlaySpeed

  2. Supports push-pull streaming using QUIC protocol during CDN live streaming

    The QUIC protocol push-pull streaming is mainly used to improve the unstable quality of CDN live streaming in a weak network environment, but the improvement is limited. It is recommended to use low-latency live streaming to enjoy high-quality and low-latency live streaming services. Currently, QUIC protocol publish streams and play streams using Tencent and Wangsu's two CDN live streaming products are supported.

    The publish streams protocol and QUIC version are configured through the "ZegoCDNConfig" parameter in the [enablePublishDirectToCDN] interface. If you want to perform custom CDN play streams of the QUIC protocol, you need to configure the play streams protocol and QUIC version through the "ZegoPlayerConfig" parameter in [startPlayingStream].

    For related APIs, please refer to enablePublishDirectToCDN

  3. Address and protocol-related information that supports monitoring of push-pull streams

    After the publish streams is initiated, you can monitor the publish streams status in real time through the [onPublisherStreamEvent] callback, which will return the current publish streams address, resource type, and protocol-related information.

    After initiating the play streams, you can monitor the play streams status in real time through the [onPlayerStreamEvent] callback, which will return the current play streams address, resource type, and protocol-related information.

    For related APIs, please refer to onPublisherStreamEvent, onPlayerStreamEvent

  4. Support setting the Stream Mixing Watermark and Stream Mixing input Volume through URL

    Call Stream Mixing to start or update the mixing task. It supports setting the mixing input Volume through " Stream Mixing ".

    For related APIs, please refer to startMixerTask

  5. Added room state change notification [onRoomStateChanged]

    When the connection state of the room changes, the [onRoomStateChanged] callback will be triggered, and the "ZegoRoomStateChangedReason" parameter will provide more detailed connection state and the reason for the state change.

    For related APIs, please refer to onRoomStateChanged

Enhancements

  1. Improve the Error Codes returned by the start mixing interface [ Stream Mixing ]

    Added an Error Codes of 1005000, indicating that the Stream Mixing streaming service has not been activated. When this Error Codes occurs, please activate the mixed- Stream Mixing service in the ZEGOCLOUD Console (please refer to " Stream Mixing-flow" in Project Management- Service Configuration for the activation steps), or contact ZEGO technical support is open.

    For related APIs, please refer to startMixerTask

Bug Fixes

  1. Fixed the problem of abnormal encryption and decryption using boringssl on some platforms

  2. Fixed the problem of not quickly rolling back soft editing after hard editing failed

  3. Fixed the memory leak caused by the android plugin binding not being released when using Android v2 embedded

  4. Fixed a memory leak caused by the temporary pixel buffer reference of iOS texture renderer not being released when destroyed


Version 2.17.2

Release date: 2022-04-15

Bug Fixes

  1. Fixed the problem of abnormal log file collection during log reporting

  2. Fixed the AEC problem of some mobile phones

Version 2.17.1

Release date: 2022-03-18

New Features

  1. Support steady state voice setting detection period parameter

    The default detection period for steady-state voice is 3 seconds. If users need to modify the default detection period, they can customize the detection period parameters through the [startAudioVADStableStateMonitor] interface.

    For related APIs, please refer to startAudioVADStableStateMonitor

  2. Added Stealth Squad Mode for Area Voice

    Added enumeration [ZegoRangeAudioModeSecretTeam] secret team mode. In this mode, users and listeners in the same room can not only communicate with people in the same team, but also hear the voices of all voices within the Audio reception range that are voices in the world mode, such as the space werewolf killing game scene.

    For related APIs, please refer to setRangeAudioMode

  3. Added debugging assistant function

    Note: This function is only used in the development stage, please do not enable this function in the online version.

    Added the [enableDebugAssistant] interface. The developer calls this interface to enable the debugging assistant function. The SDK will print the log to the ZEGOCLOUD 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

Enhancements

  1. Optimized the authentication method

    For versions 2.17.1 and above, pass the AppSign blank or not when creating the engine, and you must pass in the Token when logging in to the room. After the authentication is passed, you can use the real-time audio and Video function. For details, please refer to [Using Token Authentication](#14350).

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

    For related APIs, please refer to createEngineWithProfile, loginRoom

Bug Fixes

  1. Fixed an issue that may cause a crash when the length of the parameter name of string type is too long

  2. Fixed the problem that when the publish streams end App returns to the front-end from the background, the play streams end cannot receive the BreakResume event

  3. Fixed other known issues

  4. Fixed the issue that pushdown of live Audio stream failed on 32-bit machines


Version 2.16.0

Release date: 2022-02-17

New Features

  1. In-game Voice Chat support setting whether to receive Audio data from the specified user

    The [muteUser] interface has been added to the In-game Voice Chat module. Local users can set whether to receive Audio data from the specified remote user through the [muteUser] interface after initializing the In-game Voice Chat [createRangeAudio] according to their needs.

    This feature is often used in game scenarios, such as the speaker is blocked by a wall, the listener does not need to receive the sound.

    For related APIs, please refer to muteUser

  2. Added MOS sound quality score in the play streams quality callback [onPlayerQualityUpdate]

    [onPlayerQualityUpdate] Added a "mos" parameter to the callback, which indicates the rating of the play streams quality. When developers are more concerned about Audio quality, they can use this parameter to know the current Audio quality.

    image description text

For related APIs, please refer to onPlayerQualityUpdate

  1. Support publish streams based on rtmp over quic protocol

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

    In order to allow the publish streams end to publish streams higher-quality Audio streams in a weak network environment, the SDK supports streaming based on the rtmp over quic protocol.

    This function is often used in single-host live Direct publishing to CDN and live PK scenarios.

Enhancements

  1. Android SDK minimum supported OS version changed from Android 4.1 to Android 4.4

    Starting from this version, the API level required by the Android SDK is not lower than 19, and the minimum supported operating system version is changed from Android 4.1 to Android 4.4. If you want to support Android 4.1, please contact ZEGO technical support.

  2. Android system of 8.0 and above supports getting the CPU usage

  3. Optimize NTP time error

    When calling the [getNetworkTimeInfo] interface to obtain synchronized network time information, the SDK will regularly update the NTP time to reduce the error of the obtained NTP time.

    For related APIs, please refer to getNetworkTimeInfo

Bug Fixes

  1. Fixed the problem that when the [loginRoom] and [startPublishingStream] interfaces are called at the same time, the peer end may not receive a new stream notification

  2. Fixed an issue where users could not receive room additional messages sent by other users in the room before logging into the room

  3. Fix known issues


Version 2.15.0

Release date: 2021-12-15

New Features

  1. The Media Player supports the acquisition of sound waves and spectrum when playing music

    The Media Player added a sound wave spectrum callback and switch interface, which can Controller whether to enable 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 movies together, games and Voice Chatroom scenes, this function can be used to perform spectrum animation functions to increase the fun.

    After creating a Media Player, call the [enableSoundLevelMonitor] interface to Start SoundLevel Monitor. After enabling, you can use the [onMediaPlayerSoundLevelUpdate] callback to monitor sound changes.

    After creating a Media Player, call the [enableFrequencySpectrumMonitor] interface to enable spectrum monitoring. After enabling, you can use [onMediaPlayerSoundLevelUpdate] callback to monitor spectrum changes.

    For related APIs, please refer to enableSoundLevelMonitor, onMediaPlayerSoundLevelUpdate, enableFrequencySpectrumMonitor, onMediaPlayerFrequencySpectrumUpdate

  2. Support omnidirectional Virtual Stereo

    Added support for omnidirectional Virtual Stereo, which simulates stereoscopic sound through algorithm processing of monophonic sound. This function is often used in KTV scenes to make the singing sound more three-dimensional.

    When the [enableVirtualStereo] interface is called and the angle parameter is set to -1, it means that the stereo effect is omnidirectional stereo.

    For related APIs, please refer to enableVirtualStereo

  3. Add local device exception callback [onLocalDeviceExceptionOccurred]

    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

Enhancements

  1. Added 1015032 Error Codes

    Logging into the room causes the network test to stop. Since the network test will consume bandwidth, please do it before logging in to the room.

  2. Added 1002066 Error Codes

    If the user is in the server blacklist when logging in to the room, this Error Codes will be returned, indicating that the room is prohibited from logging in.

  3. Added 1004072 Error Codes

    When using the SDK to pull Low-Latency Live streaming, this Error Codes will be returned if you have not activated the Low-Latency Live service.

Bug Fixes

  1. Fixed a crash when calling [startMixerTask]

Deleted

  1. Discard [onDeviceError] callback

    In order to let developers intuitively understand the type of abnormal device and the specific abnormal situation, the [onDeviceError] callback is deprecated in version 2.15.0 and above, please use the [onLocalDeviceExceptionOccurred] callback instead.

    For related APIs, please refer to onDeviceError, onLocalDeviceExceptionOccurred


Version 2.14.0

Release date: 2021-11-30

New Features

  1. Added real-time ordered data function

    When developers need to distribute commands such as remote Controller and cloud games, they can obtain publisher messages with low latency through real-time signaling.

    For related APIs, please refer to createRealTimeSequentialDataManager

  2. Added H.265 codec exception notification

    Added an alarm callback for insufficient H.265 decoding performance. In the scenario of play streams through CDN, it is used to prompt the user whether to downgrade. If the developer receives the low frame rate callback [onPlayerLowFpsWarning] during the process of pulling the H.265 stream, it is recommended that the developer stop pulling the H.265 stream and switch to the H.264 stream.

    Added H.265 codec error prompts in the publish streams state callback [onPublisherStateUpdate] and the play streams state callback [onPlayerStateUpdate].

    For related APIs, please refer to onPlayerLowFpsWarning, onPublisherStateUpdate, onPlayerStateUpdate

  3. The Media Player supports specifying the start playback progress when loading media resources

    The [loadResourceWithPosition] interface is added to the Media Player, which supports specifying the start playback progress when loading media resources, in milliseconds.

    For related APIs, please refer to loadResourceWithPosition

  4. Added the function of enabling or disabling play streams alignment

    This function is often used in KTV and other scenarios that require Stream Mixing stream alignment. When the play streams end is playing, use the [setPlayStreamsAlignmentProperty] interface to Controller whether the played real-time audio and Video streams need to be accurately aligned. If necessary, all the pulled streams that contain precise alignment parameters will be aligned; if not, all streams will be unaligned.

    For related APIs, please refer to setPlayStreamsAlignmentProperty

  5. Added steady-state voice detection function

    This function can be used to determine whether someone is speaking into the Microphone within a certain period of time, which is used to detect whether the Audio data collected or pre-processed is human Audio or noise.

    For related APIs, please refer to startAudioVADStableStateMonitor, stopAudioVADStableStateMonitor, onAudioVADStateUpdate

Enhancements

  1. Change nullable parameters to optional parameters

    • Versions before 2.14.0: Nullable parameters of the following interfaces, even if they are empty, still need to pass in null when calling.
    • 2.14.0 and above: The nullable parameters of the following interfaces are changed to optional parameters. When the value is empty, it can be omitted. When the value is not empty, the parameter name must be entered.

    For related APIs, please refer to ZegoEngineConfig, ZegoEngineProfile, ZegoPublisherConfig, ZegoCanvas, ZegoVideoConfig, ZegoPlayerConfig, ZegoMixerInput

  2. Optimized [ZegoMixerOutput]

    The videoConfig of [ZegoMixerOutput] has been changed to an optional parameter, which can be omitted when videoConfig is not required to be configured separately.

    For related APIs, please refer to ZegoMixerOutput


Version 2.13.0

Release date: 2021-11-17

New Features

  1. Flutter's functions are aligned with the Native SDK 2.13.0 version

    Support basic push-pull streaming, Multiple Rooms, Room Message in rooms, live audio and Video, 3A processing, CDN direct push and retweet, Stream Mixing streaming, Media Player, Audio Effect Player, In-game Voice Chat, Flow Control, user Controller permissions, etc. For details, please See Overview.

    Currently, the functions of defining Video capture, Custom Video Rendering, Custom Video Pre-processing, and Audio Mixing are not supported.

    For related APIs, please refer to Client API

Enhancements

  1. Go to test environment

    In order to reduce the cost of developers' understanding of the environment, ZEGO has unified the concept of environment. Starting from this version, the test environment is abandoned and the formal environment is used uniformly. Developers who have accessed the SDK before version 2.13.0 can refer to the Test Environment Discard Instructions for SDK upgrade and code adjustment.

    For related APIs, please refer to createEngineWithProfile

Deleted

  1. Deprecate the old [createEngine] interface

In order to reduce developers' understanding of the environment, the test environment was abandoned and the environment was used uniformly. The original [createEngine] interface is deprecated in version 2.13.0 and above, please use the [createEngineWithProfile] interface instead.

For related APIs, please refer to createEngine

Previous

Download SDK

Next

Upgrade Guide for 2.23.0 and above