Documentation
ExpressVideoSDK Video Call
Documentation
Demo APP
SDK Center
API Center
FAQ
Code Market
Console
Sign Up
Log In
中文站 English
  • Documentation
  • Video Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2025-12-22 19:28

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. setDummyCaptureImagePath supports passing network image addresses

For related API, please refer to setDummyCaptureImagePath

3. switchPlayingStream supports setting timeout

The switchPlayingStream interface adds the switchTimeout parameter.

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

4. PK mixed streaming scenario supports blurring picture edges

Added blurInfo parameter in mixed streaming ZegoMixerInput to blend the picture boundaries of mixed streaming input.

For related API, please refer to startMixerTask

5. Flutter aligns with the custom audio preprocessing API

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

6. 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](https://doc-zh.zego.im/unique-api/express-video-sdk/zh/dart_flutter/zego_express_engine/ZegoExpressEngine/onPlayerRecvVideoFirstFrame.html), [onPlayerVideoSizeChanged](https://doc-zh.zego.im/unique-api/express-video-sdk/zh/dart_flutter/zego_express_engine/ZegoExpressEngine/onPlayerVideoSizeChanged.html)

Enhancements

1. Flow control supports any resolution

Optimize the flow control logic, remove the screen ratio limit, and currently support any resolution.

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

3. OpenH.264 encoder quality optimization

Optimize OpenH.264 encoder performance and improve encoding quality.

4. Media player resource analysis and optimization

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

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

6. Update integrated Express Web SDK to version 3.11.0



3.22.1 Version

Release date: 2025-09-30

Bug Fixes

Fixed the issue that the preview mirroring function of Windows, iOS, and Mac is not effective.


3.22.0 Version

Release date: 2025-08-26

New Features

1. Supports setting up the main channel for microphone audio source mixed into the screen to collect audio source

A new parameter enableMixScreenCapture has been added to ZegoAudioSourceMixConfig, which allows the audio data from screen sharing to be mixed into the stream when the microphone audio source is set on the main channel. You can dynamically enable or disable this feature by calling [setAudioSource].

For related APIs, 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 through [onMobileScreenCaptureStart] and [onMobileScreenCaptureExceptionOccurred] to monitor the screen sharing start failure or abnormal disconnection。

For related APIs, please refer to: onMobileScreenCaptureStart, onMobileScreenCaptureExceptionOccurred

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

A new parameter ZegoScreenCaptureOrientation has been added to ZegoScreenCaptureConfig, which allows the screen sharing to be fixed in the horizontal or vertical orientation.

ZegoScreenCaptureConfig added the ZegoScreenCaptureOrientation parameter to set the fixed landscape orientation of the screen sharing screen.

For related APIs, please refer to: startCapture, updateScreenCaptureConfig

4. Screen sharing supports audio packet sharing system sound

A new parameter ZegoScreenCaptureAudioDeviceMode has been added to ZegoScreenCaptureConfig, which allows the screen sharing to be fixed in the horizontal or vertical orientation.

To use this feature, please contact ZEGOCLOUD technical support.

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

A new parameter ZegoScreenCaptureAudioDeviceMode has been added to ZegoScreenCaptureConfig, which allows the screen sharing to be fixed in the horizontal or vertical orientation.

  1. Only when the microphone audio source is set on the main channel, the audio device mode takes effect.
  1. Only the [startScreenCapture] interface takes effect, and the [updateScreenCapture] interface does not take effect.
  1. 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. If necessary, you need to restart the collection.
  1. After stopping the collection, the audio device mode before the collection will be restored.

For related APIs, please refer to: startCapture, updateScreenCaptureConfig

6. Added static image collection video source

By setting the video source of setVideoSource to Picture, you can push a specified image.

For related APIs, please refer to: setVideoSource

7. Semi-automatic mixing supports mixing alignment capability

For related APIs, please refer to: ZegoAutoMixerTask

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

For related APIs, please refer to: ZegoMediaPlayer

9. Media player supports streaming and playback of fragmented files to avoid excessive memory allocation at once

To use this feature, please contact ZEGOCLOUD technical support.

10. Pull stream switching function supports forced switching mode

By enabling the forced switching mode, you can avoid the situation where the stream cannot be pulled for a long time when switching from a high bitrate to a low bitrate in a weak network environment.

For related APIs, please refer to: SwitchPlayingStream

11. Scene configuration adds KTV scene parameters

For related APIs, please refer to: setRoomScenario

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

13. Support for micro-frame 264 encoder

To use this feature, please contact ZEGOCLOUD technical support.

14. Added callback for data metrics of each link on the pull stream

To use this feature, please contact ZEGOCLOUD technical support.

15. SDK player supports HLS protocol pull stream and supports resolution adaptation

To use this feature, please contact ZEGOCLOUD technical support.

For related APIs, please refer to: SwitchPlayingStream

17. Support for cloud proxy configuration to be sent through cloud control and take effect dynamically

Support for cloud proxy configuration to be sent 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.

To use this feature, please contact ZEGOCLOUD technical support.

For related APIs, please refer to: setCloudProxyConfig

18. Push and pull stream functions add support for national encryption algorithms

To use this feature, please contact ZEGOCLOUD technical support.

For related APIs, 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

2. Optimize the problem of excessive memory usage when switching the background type to video after enabling the main body segmentation

3. Optimize the natural background segmentation effect

4. Optimize the AI super-resolution jaggies

5. Optimize the low-light enhancement effect

Bug Fixes

1. Fixed the issue that the camera is not released normally when the end of the stream is called while repeating the camera collection when calling startPreview and startPublish asynchronously.

2. Fixed the issue that the error prompt appears when the eventChannel registers zego_express_event_handler data and the callback processing occurs.

3. Fixed the issue that the onRemoteCameraStateUpdate and onRemoteMicStateUpdate events are not triggered when the remote device state callback reports an error.

4. Fixed the camera permission pop-up problem in the pure audio scenario.

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


3.21.0 Version

Release date: 2025-06-11

New Features

1. Screen sharing feature supports outline effect on Windows and macOS devices

When using screen sharing on the desktop, you can add a highlight border to the shared window and set the color and width of the border to enhance the recognition of the shared window.

On the Windows platform, some system windows (such as the Task Manager, windows of programs started with administrator privileges, etc.) may not be able to display the border due to permission restrictions. It is recommended to start the application with administrator privileges.

For related API, please refer to enableHightLight

2. Support customizing CDN stream playback timeout duration

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.

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

4. 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 low-light enhancement algorithm

The low-light enhancement algorithm has been optimized to make the transition between light and dark smoother and avoid overexposure issues.

4. Optimize the ear-return delay performance of Android devices

The ear-return delay performance of Android devices in the ultra-low latency mode has been optimized.

5. Optimize the dual-channel audio encoding

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.

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

Bug Fixes

1. Fixed the issue that the transcoding template is invalid when the user plays a stream during stream publishing.

2. Fixed the issue that the onAudioRouteChange callback is not triggered when switching between speaker and earpiece using AVRoutePickerView in the call volume mode on iOS devices.

3. Fixed the issue that the wireless microphone device can not collect sound correctly in the media mode on iOS devices.



3.20.5 Version

Release date: 2025-05-13

New Features

1. More Features Added for Web Platform

Feature API
Get and Set Audio Parameters
  • getAudioConfig
  • setAudioConfig
Geo-fencing setGeoFence
Cloud Proxy setCloudProxyConfig
Set Mirror Mode setVideoMirrorMode
Setting stream mirroring is not supported.
Set Publishing End Capture Volume setCaptureVolume
Forward to CDN
  • addPublishCdnUrl
  • removePublishCdnUrl
Dynamic Traffic Control Strategy Switching
  • enableTrafficControl
  • setMinVideoBitrateForTrafficControl
  • setTrafficControlFocusOn
Set Playback Volume
  • setPlayVolume
  • setAllPlayStreamVolume
Values above 100 are not supported and will be treated as 100.
Whether to receive all audio data for playback muteAllPlayAudioStreams
Whether to receive all video data for playback muteAllPlayVideoStreams
Update playback view updatePlayingCanvas
Whether to enable hardware decoding enableHardwareEncoder
Real-time sequential data
  • createRealTimeSequentialDataManager
  • destroyRealTimeSequentialDataManager
  • startBroadcasting
  • stopBroadcasting
  • sendRealTimeSequentialData
  • startSubscribing
  • stopSubscribing
  • onReceiveRealTimeSequentialData
Enable and disable sound level monitoring
  • startSoundLevelMonitor
  • stopSoundLevelMonitor
Basic beauty effects
  • startEffectsEnv
  • stopEffectsEnv
  • enableEffectsBeauty
  • setEffectsBeautyParam
Media player loadCopyrightedMusicResourceWithPosition
Low-light Enhancement setLowlightEnhancement
Auto Mixing
  • startAutoMixerTask
  • stopAutoMixerTask
Play Stream Screenshot takePlayStreamSnapshot
Local Device Exception Event Callback onLocalDeviceExceptionOccurred
Local Video and Audio Device State Change Event Callback
  • onVideoDeviceStateChanged
  • onAudioDeviceStateChanged
Get Raw Audio Data
  • startAudioDataObserver
  • stopAudioDataObserver
  • onMixedAudioData
  • onPlayerAudioData
Mixer Sound Level Callback onMixerSoundLevelUpdate
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 Callback onAutoMixerSoundLevelUpdate
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

The following bug fixes only apply to Web platform methods.

1. Fixed issue where calling getVideoConfig after engine initialization failed to get default scene configuration

2. Fixed issue where calling setVideoConfig before publishing stream did not take effect

3. Fixed issue where setting maxMemberCount parameter when logging into room did not take effect

4. Fixed issue where calling setStreamExtraInfo, mutePublishStreamVideo, mutePublishStreamAudio, enableCamera before publishing stream did not take effect

5. Fixed issue where remainTimeInSecond field in onRoomTokenWillExpire had incorrect unit (changed from milliseconds to seconds)

6. 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. Support for Precise Audio-Video Synchronization in Sports Commentary Scenarios

To use this feature, please contact ZEGOCLOUD technical support.

A new interface is introduced for sports commentary scenarios, supporting precise audio-video synchronization between the commentary stream and the event stream, providing viewers with a high-quality viewing experience.

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

3. The Face Recognition Feature Supports The Rear Camera And A Callback for The Face Number Change and The Coordinates.

The face recognition feature supports the rear camera, and a new callback onPublisherFaceDetectInfo is added to support obtaining the number of faces and coordinate information.

This callback is triggered only when the camera is started and the number of faces changes, and cannot be used in conjunction with custom video pre-processing.

For related API, please refer to enableFaceDetection, onPublisherFaceDetectInfo

4. Custom Rendering on macOS Supports Outputting RGBA Data

To use this feature, please contact ZEGOCLOUD technical support.

For custom rendering on macOS, RGBA format video data is now supported.

Enhancements

1. Optimize The Local Recording Stuttering Caused by Weak Networks When Publishing Streams Directly to CDN

To use this feature, please contact ZEGOCLOUD technical support.

In the case of unstable networks when publishing streams directly to CDN, the SDK now can ensure smooth local recording, suitable for online education and meetings that have high requirements for local recording.

2. Optimize The Flickering Issue During Video Stream Switching on iOS to Achieve A Smooth Transition.

To use this feature, please contact ZEGOCLOUD technical support.

When switching video streams using the same view on iOS, you can choose to retain the last frame of the old video until the new video is rendered, achieving a smooth transition of the video image.

3. Optimize excessive camera status callbacks during frequent enableCamera calls on mobile devices.

The enableCamera interface has added a notifyMode parameter, which is used to control whether to notify the local and remote ends when the camera is turned off on mobile devices. In the scenario of switching between front and rear cameras, this parameter can reduce the number of device switch status callbacks, avoiding unnecessary business logic triggers.

Bug Fixes

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

2. Fixed the occasional playback error in the media player when playing certain online resources due to the failure of the seekTo interface call.

3. 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 AI Low Light Enhancement feature

To use this feature, please contact ZEGOCLOUD technical support.

The Low Light Enhancement feature adds AI algorithms. Compared to traditional algorithms, it provides more vibrant colors, more realistic contrast, and better noise suppression, significantly improving the overall subjective image quality.

Developers can specify the use of AI algorithm through setLowlightEnhancementParams. When device performance is insufficient to support AI algorithm, SDK will automatically use traditional algorithm. Generally, mid to high-end devices can stably run Low Light Enhancement AI algorithm.

For related API, please refer to setLowlightEnhancementParams

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

3. Added resource file caching support for Media Player when playing online resources

Developers can set the cache resource file path by configuring ZegoMediaPlayerResource-onlineResourceCachePath parameter. Additionally, the ZegoMediaPlayerResource-maxCachePendingLength parameter can be used to set the maximum pre-cacheable data length (in bytes) from the current playback time point. This reduces user resource download frequency and improves resource reuse rate and user experience when Media Player plays online resources.

While generating cache files, SDK also generates a ".info" suffix file to record cache information (such as cache start position, etc.). Users of this feature need to be responsible for cleaning up both "cache files" and "cache information files".

For related APIs, please refer to ZegoMediaPlayerResource > onlineResourceCachePath, ZegoMediaPlayerResource > maxCachePendingLength

4. Added support for automatic static image push when camera stops capturing

When the camera cannot continue capturing due to user operations or system foreground/background restrictions, it supports automatically pushing static images configured by developers.

For related API, please refer to ZegoExpLowlightEnhancementType

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.

3.18.1 Version

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)

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 related API, please refer to ZegoAECMode > AI

2. Support for Setting Video Noise Reduction Feature

The new video denoising interface setVideoDenoiseParams is applicable in scenarios such as addressing poor camera capture performance, significant visual noise in footage, or situations requiring dedicated video denoising processing. Developers can choose different video noise reduction modes ZegoVideoDenoiseMode and video noise reduction strengths ZegoVideoDenoiseStrength based on their business scenarios.

For related API, please refer to setVideoDenoiseParams

3. Support for Joining the Output Stream After Stream Mixing to the Target Room

The stream mixing feature supports joining the output stream after stream mixing to a specified room, i.e., it supports setting the target room information for the output stream targetRoom. Each output stream only supports joining one room, and once added, dynamic room updates are not supported during the stream mixing process.

For related API, please refer to targetRoom

4. 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 related API, please refer to setLogConfig

5. 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. Optimization of Noise Reduction Effects in Low-Light Enhancement Feature

2. Support for Adapting to OpenGL 3.0 Version During Video Custom Capture and Pre-processing

In scenarios of video custom pre-processing and custom capture, support for adapting to OpenGL 3.0 version is added, which can be used to adapt to beauty effects from some manufacturers.

For related API, please refer to setLowlightEnhancement

3. Reduction of Push and Pull Stream Time, Enhancement of SDK Performance

Bug Fixes

1. Fixed the issue of media player failing to load when the URL link contains spaces

2. Fixed the issue of iPad being unable to connect to Bluetooth headphones

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

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



3.17.1 Version

Release date: 2024-10-09

Bug Fixes

1. Fix the crash issue when android using the SurfaceTexture data type for custom video preprocessing.



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. When the media player plays transparent effects, support Alpha data layout on the top right of RGB data

When the media player plays transparent effects, a new ZegoAlphaLayoutType > RightTop enumeration is added to support Alpha data splicing on the top right of RGB data. When setting this enumeration, only a scaling factor of 0.5x is supported.

For related API, please refer to loadResourceWithConfig, ZegoStreamResourceMode > Custom, ZegoAlphaLayoutType > RightTop

3. 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. Remove the default screen sharing permission declared in the AndroidManifest.xml file

Note:

  • If developers did not declare permissions when implementing screen sharing capabilities after version 3.17.0, they must actively declare permissions after this update, otherwise compatibility issues may occur.
  • If you encounter compatibility issues online, please contact ZEGO technical support.

To better comply with privacy regulations, the default screen sharing permission declared in the AndroidManifest.xml file is removed. Developers need to declare it actively:

  • If the target Android SDK version is lower than version 34.0.0, the FOREGROUND_SERVICE permission declaration needs to be set.
  • If the target Android SDK version is 34.0.0 or later, the FOREGROUND_SERVICE and FOREGROUND_SERVICE_MEDIA_PROJECTION permission declarations need to be set.

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

3. 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 unable to parse abnormal cropping areas in H.265 streams

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

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

4. Adjust the lifecycle and fix known crash issues

5. Fix known issues with the media player



Version 3.16.2

Release Date: 2024-08-16

Bug Fixes

1. Fixed the issue where the camera cannot be opened in certain scenarios on Android.

2. Fixed the issue on Android devices where screen recording permission would not automatically stop when the application is killed.

3. Fixed the occasional crash issue on iOS when frequently starting/stopping live streaming.



Version 3.16.0

Release Date: 2024-07-29

New Features

1. Support for simultaneous video capture from front and rear cameras on iOS platform

Note:

  • This feature is only available on iOS 13 and above. Please contact ZEGOCLOUD technical support to enable this feature.

  • This feature consumes a significant amount of phone performance, so please use it with caution.

  • Developers can use the system library interface [AVCaptureMultiCamSession.multiCamSupported] to determine if the device supports the ability to use front and rear cameras simultaneously.

A new enumeration value ZegoVideoSourceTypeSecondaryCamera is added to identify the video from the second camera. It supports setting both the front and rear cameras as video sources and streaming them separately using the [setVideoSource] interface. Developers can use [useFrontCamera] to switch between the front and rear views corresponding to ZegoVideoSourceTypeCamera and ZegoVideoSourceTypeSecondaryCamera. This capability can be applied to scenarios such as dual-camera live streaming.

For related API, please refer to setVideoSource, useFrontCamera, ZegoVideoSourceType > SecondaryCamera, ZegoVideoSourceType > Camera

2. Automatic selection of the clearest camera for video capture on iOS platform for phones with 3 rear cameras

Note:

  • This feature is only available on iOS 14 and above. Please contact ZEGOCLOUD technical support to enable this feature.
  • You can use the system interface [AVCaptureDeviceDiscoverySession] to determine in advance if the device supports 3 rear cameras.

When there are 3 rear cameras (ultra-wide-angle, main, and telephoto cameras) on the device, after enabling the relevant configuration, if you update the zoom factor using [setCameraZoomFactor], the SDK will automatically select the clearest camera for video capture based on the zoom factor.

For related API, please refer to setCameraZoomFactor

3. Notification of screen capture permission request result on Android platform

Developers can handle subsequent business operations based on the callback result, including UI prompts or application jumps, etc.

For related API, please refer to onMobileScreenCaptureStart

4. Support for 1.33x and 1.5x zoom factors in video super-resolution on iOS and Android platforms

Note:

  • Please contact ZEGOCLOUD technical support to enable this feature.
  • Configure the video super-resolution before initialization.

When the video resolution exceeds the device's maximum supported limit, additional damage will be introduced, resulting in a decrease in video quality. Therefore, the video super-resolution capability adds support for 1.33x and 1.5x zoom factors to adapt to the best effect on different devices.

5. Low-latency mode added to AI noise reduction

Note: Please contact ZEGOCLOUD 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

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

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

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

Note: Please contact ZEGOCLOUD 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 excessive device heating caused by occasional multiple SPS and PPS file hardware decoding

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

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

4. Fixed the issue of occasional Renderer JNI exceptions

5. Fixed the issue of crashes on some phones due to interception of dlopen libnativewindow

6. Fixed the issue of crashes caused by deadlock when switching between the foreground and background with custom filters during streaming



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.

2. Expansion of the support range for video hardware encoding and decoding

Optimized video hardware encoding and decoding, adding more models for compatibility, and optimizing the performance of encoding and decoding at high resolution and high frame rate.

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. Supports capturing video by using high frame rates of 60 fps.

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

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

4. ZegoMediaPlayer supports video mirroring.

For related API, please refer to enableViewMirror

5. Supports initiating mixed-streaming tasks normally when image resource verification fails.

ZegoMixerTask added new parameter mixImageCheckMode, used to control whether backgroundImageURL, inputList.imageInfo.url, or watermark.imageURL image resources fail to verify whether the mixing task can be initiated normally.

This function is not enabled by default (the default value of mixImageCheckMode is 0), which means that image verification is strictly performed, that is, the original restriction rules of parameters must be met before the mixed flow task can be initiated normally.

For related API, please refer to startMixerTask

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

Enhancements

1. Optimize the super-resolution function

  • Optimize the super-resolution effect and reduce the sharpness of the algorithm, thereby improving the subjective quality when the original picture has noise, there are faces in the picture, etc. For example, the flaws on the anchor’s face will not be highlighted, and the anchor’s hairline will not become more obvious.

  • Optimize the frame rate performance of the super-resolution algorithm on Qualcomm chips.

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.

5. Fixed the problem of multi-thread concurrency when destroying a camera, causing a crash when accessing a null pointer.

6. Fixed the problem that the mediaPlayer takes a long time to open files in M3U8 format.



Version 3.13.3

Release date: 2024-04-09

Bug Fixes

1. Fixed an issue where the viewMode was set abnormally when using TextureView to render images on the iOS platform.



Version 3.13.2

Release date: 2024-04-01

Bug Fixes

1. Fix known issues.



Version 3.13.1

Release date: 2024-03-27

Bug Fixes

1. Fixed an issue where the streaming function occasionally fails when using screen sharing on the web platform.



Version 3.13.0

Release date: 2024-03-21

New Features

1. Added video stabilization feature (Only supports iOS).

Note:

This feature is only available for use during internal video capture.

When this feature is enabled, there may be delays or cropping of the image, so please use it accordingly.

The new video stabilization feature is added to reduce the impact of camera shake during internal video capture and improve the quality of video capture.

For related API, please refer to setCameraStabilizationMode

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

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

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

5. Supports low-light enhancement and color enhancement when using external capturing.

Note: The external capture function and pre-processing function cannot be used at the same time, otherwise abnormal images may occur when playing streams.

After enabling the external capture function, you can use the setLowlightEnhancement and enableColorEnhancement interfaces to separately enable low-light enhancement and color enhancement to adjust the captured images according to your business needs.

For related API, please refer to setLowlightEnhancement, enableColorEnhancement

6. Support for H.265 automatic compatibility strategy.

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

When some users in the room do not support the H.265 format, the streaming end that supports it will fall back to the H.264 format and republish stream.

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. Optimized color enhancement algorithm.

Optimized color enhancement algorithm performs better than previous versions in scenes with high color saturation.

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

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

  4. Fixing an issue where the engine occasionally initializes with incorrect states on iOS platform.



Version 3.12.5

Release date: 2024-02-28

Bug Fixes

1. Fix the issue of black screen when rendering videos on Safari 13.0.2 in macOS 10.15.



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. Fixes an issue where certain models would display stripes on the screen when motion is occurring after enabling the super resolution feature on Android devices.

2. Fix the issue of memory leak when destroying GPU resources in external filter blending mode for some Android phones.

3. Fix the issue of stuck when playing and rendering streams on some Android devices.

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

5. 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. Support high-definition and low-code video in the cloud transcoding service

Note: If you need to use this feature, please contact ZEGOCLOUD business personnel.

By applying leading coding and decoding algorithms and other video pre-processing capabilities in the cloud transcoding service, we continuously optimize the smoothness and clarity of video playback, significantly improving the image quality. This feature is suitable for the following scenarios:

  • Showroom live streaming scenes with high viewership. It ensures stable video transmission and high quality while saving bandwidth costs; without affecting the image quality, it can reduce the bitrate by about 30%.

  • Danmaku game live streaming, sports live streaming, and other scenes with rich color and texture details in the video content. Under the same bitrate conditions, it can provide a higher definition viewing experience.

For related API, please refer to ZegoMixerOutputVideoConfig > enableLowBitrateHD

2. Color enhancement is supported when publishing video-streams

For various cameras and other devices that capture images, if the colors appear grayish or have low saturation, we support enhancing the colors while preserving the natural skin tones. This will make the images more vibrant and brighter, creating a more realistic visual experience for the human eye.

For related API, please refer to enableColorEnhancement

3. All network requests support the IPv6 protocol

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

5. Hardware decoding acceleration supported for MJPEG format

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

When the video format output by the capture device is MJPEG, hardware decoding acceleration is enabled by default to prevent issues such as insufficient frame rate due to insufficient device performance.

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

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

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

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

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

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

For related API, please refer to onMediaPlayerVideoSizeChanged

10. 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 server-side mixing and single-stream transcoding capabilities

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

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

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

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

5. Optimize multi-device login logic

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

Bug Fixes

1. Fixed the issue that caused crashes in certain decoding scenarios.



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

Release date: 2023-11-09

Bug Fixes

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



Version 3.10.0

Release date: 2023-10-27

New Features

1. Added real-time AI voice-changing function

Note:

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

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

2. The virtual background of subject segmentation supports video materials

Note:

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

  2. The video filling method of the virtual background is centered and proportionally scaled. When the video is too large, the excess part will be cropped.

When using the subject segmentation function, the virtual background supports the use of video materials. The final frame rate of the video materials will be consistent with the encoding frame rate and played in a loop.

For related API, please refer to enableVideoObjectSegmentation

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

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

5. Custom video capture supports transparent channel transmission

Supports the extraction, encoding, and transmission of Alpha channel data in the RGBA channel collected by developers, thereby rendering the subject with a transparent background on the streaming side to achieve a more immersive and realistic video scene.

For related API, please refer to enableAlphaChannelVideoEncoder

Enhancements

1. Optimized low-light enhancement function, smoother in automatic mode

In the automatic mode with low illumination enhancement, the dynamic adjustment of brightness will be smoother and smoother, improving the user's visual experience.

For related API, please refer to setLowlightEnhancement

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

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

4. 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. ScreenCapture supports system WGC.

Note: This feature requires Windows 10.18362 or above.

When the multi-source acquisition module performs screen capture, it supports system WGC, which also known as Windows Graphics Capture, and uses this mode by default, making the acquisition more efficient.

2. ScreenCapture supports setting publishing-stream area.

The multi-source collection module supports users to set independent preview and publishing-stream areas when performing screen capture.

For related API, please refer to updatePublishRegion

3. Added SEI callback with timestamp.

For related API, please refer to onPlayerRecvMediaSideInfo

4. The single-stream transcoding function supports playing stream by RTC.

Note:

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

  2. Transcoding will cause additional delays. It is not recommended if you use this function in your Live Streaming scenarios which playing stream by RTC.

When RTC plays streams, it supports triggering single-stream transcoding tasks through preset transcoding templates, and outputs transcoded streams with different resolutions.

This function can be used in scenarios such as live broadcasts. Viewers can choose streams of different resolutions to ensure smooth playback that based on network quality, terminal equipment, etc..

For related API, please refer to ZegoPlayerConfig > codecTemplateId

5. Supports throwing [setDummyCaptureImagePath] exception callback.

For related API, please refer to onPublisherDummyCaptureImagePathError

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

For related API, please refer to enablePublishDirectToCdn

7. 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 where no error message is thrown when the watermark path exceeds the maximum length set by setPublishWatermark.

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

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

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

6. 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. Support returning low frame rate alarms for encoding and hardware decoding.

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

Added a low frame rate alarm callback that supports throwing encoding and hardware decoding. In 1v1 chats, live broadcasts and other scenarios, developers can adjust the streaming resolution and trigger transcoding based on this callback.

For related API, please refer to onPlayerLowFpsWarning, onPublisherLowFpsWarning

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

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

5. 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 noise performance of the low-light enhancement algorithm.

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

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

Bug Fixes

1. Fix the problem of hard unblocking of H.265 RTMP streams with B frames.

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

New Features

1. After enabling the encoding of H.264 DualStream, in addition to the video parameters for the big stream, it is now possible to set the video parameters for the small one.

Note:

  1. Before using this function, you need to call the setVideoConfig interface to specify the video codecID as ZegoVideoCodecIDH264DualStream.

  2. he ratio of setting the resolution for the big stream and the small stream needs to be consistent, otherwise it will cause errors when calling the interface.

When specifying the codecID as ZegoVideoCodecIDH264DualStream, you can separately set the resolution, frame rate, and bitrate for the big stream and the small stream.

For related API, please refer to setVideoConfig, setPublishDualStreamConfig

2. Added a callback notification when the desktop screen capture area changes.

The callback notification for when the desktop screen capture area changes is called onRectChanged. After starting the screen capture, when the capture area changes, the SDK will notify the developer through this callback. By listening to this callback, developers can modify the preview screen size and other configurations.

For related API, please refer to onRectChanged

Enhancements

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

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

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

For related API, please refer to onNetworkQuality

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

For related API, please refer to submitLog

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

Bug Fixes

1. Fixed the occasional stuck problem when rendering on the metal screen.

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

3. 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 support for background blur and virtual background functions.

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

In real scene or greenscreen scenes, developers can use this function to blur the user's background, or replace it with a custom picture background.

This function can be used in video conferences, 1v1 audio and video calls and other scenarios to help users better protect personal privacy and improve the fun of calls.

For related API, please refer to enableVideoObjectSegmentation

2. The screen capture function supports the capture of system audio.

The screen capture function adds the ability to capture system audio on the basis of only supporting image capture, so as to share the music being played while sharing the demo courseware screen. This function can be used in scenarios such as online teaching and game live broadcasting.

For related API, please refer to startCapture

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

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

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

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

For related API, please refer to getMediaInfo

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

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

2. Fix the problem that the custom video capture and custom video rendering functions cannot end when the custom video pre-processing is enabled.



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. Significantly reduce the time-consuming time spent on video hard decoding of Huawei models.

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

For HUAWEI devices, the SDK supports relevant configurations to reduce the time spent on video hardware decoding by 80%.

2. 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 occasional problem that the video on the streaming side freezes after re-pushing the stream.

3. Fix the problem that Android memory usage information is not updated.

4. Fix the occasional problem that when the iOS media player loads a file for the first time, there will be no picture for the first few seconds.



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

2. Optimize the rotation logic of iOS Screen Sharing

Optimize the rotation logic of Screen Sharing to avoid the crash caused by the memory usage exceeding the 50MB limit caused by the rotation during the screen recording process.

Bug Fixes

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

2. Fix the problem that the Video image is blurred due to the uncontrolled HardwareEncoder Video rate when the iOS 16.4.1 device is HardwareEncoder to publish streams

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

2. Fix the problem that Android H265 decoding fails 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. The play streams function on the iOS side of the Express SDK supports picture-in-picture capability

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

5. The single-stream transcoding function supports L3 or CDN play streams

Note: Relaying Streams to CDNs must be used when pulling transcoded stream through CDN. If you need to use this function, please contact ZEGO technical support.

Single-stream transcoding refers to converting each original stream into transcoded streams with different encoding formats and resolutions on the cloud. When play streams, you need to pass in the transcoding template ID to pull the transcoding stream. In scenarios such as live broadcasting, viewers can choose streams with different resolutions to watch based on the quality of the access network and terminal equipment to ensure smooth playback.

6. The same Stream Mixing task supports outputting Video streams with multiple resolutions

Notice:

  • Currently, a Stream Mixing task supports outputting up to 4 Video streams with different resolutions, and currently only supports Stream Mixing on the server side.
  • To use this function, please contact ZEGO technical support.

The same Stream Mixing task supports the output of Video streams with multiple resolutions, which can be used to meet the transcoding requirements in Stream Mixing scenarios.

7. 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 related APIs, please refer to setRoomScenario

Enhancements

1. Optimize the super-resolution algorithm and greatly increase the coverage of models

Note: enableVideoSuperResolution has modified the timing of the API call, it needs to be called after initVideoSuperResolution.

For related APIs, please refer to enableVideoSuperResolution, initVideoSuperResolution

2. Optimize the super-resolution logic, add initialization and de-initialization interfaces

Note: enableVideoSuperResolution has modified the timing of the API call, it needs to be called after initVideoSuperResolution.

For related APIs, please refer to initVideoSuperResolution, uninitVideoSuperResolution

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

4. Optimize the performance of inter-process communication for Screen Sharing on the Express SDK iOS side

In the application project, developers can start the AppGroup configuration through the newly added ZegoExpressEngine > setAppGroupID and ZegoReplayKitExt > setupWithDelegate:appGroup interface of the native layer to obtain better performance and stability.

For related APIs, please refer to setAppGroupID

Bug Fixes

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

2. Fix the problem that the Android screen capture fails when the screen sharing service is not started in the main process

3. Fix the problem that the icon in the data obtained by Windows screen capture getScreenCaptureSources is invalid, and some windows cannot get thumbnails



Version 3.2.1

Release date: 2023-02-24

New Features

1. Flutter Web supports Screen Sharing

For related APIs, please refer to createScreenCaptureSource, setAudioSource, setVideoSource

2. Flutter Web supports the Beautify function

For related APIs, please refer to enableEffectsBeauty, setEffectsBeautyParam

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

New Features

1. Support Video streaming function

Compared with ScalableVideoCoding (H.264 SVC), Video small and large stream coding (H.264 DualStream) supports hardware coding when Video stream coding (H.264 DualStream) is used to layer the Video stream. ZegoVideoCodecID adds ZegoVideoCodecID.H264DualStream field.

For related APIs, please refer to ZegoVideoCodecID

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.

2. Fixed the problem that when the iOS platform restarts after a hardware decoding failure, accessing a null pointer crashes.

3. Fixed the problem of hardware coding accessing null pointer crash on Windows platform.



Version 3.1.0

Release date: 2022-12-27

New Features

1. Support multi-source acquisition capability

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

Multi-source acquisition capability shortens, optimizes and normalizes the implementation paths of common capabilities such as Screen Sharing and Audio Mixing. From version 3.1.0 onwards, you no longer need to implement the above complex capabilities through custom acquisition. The main capabilities and characteristics are as follows:

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

2. 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. Significantly increase the audio and Video connection rate in extremely weak network areas, and reduce the time-consuming connection

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

Bug Fixes

1. Fix the problem that sending room Logout signaling may fail

2. After repairing the iOS Video hard solution failure, the occasional restart access null pointer crash problem

3. Fixed the occasional black screen problem caused by Android Camera permission occupation

4. Fix the occasional crash of Android Audio Effect Player

5. Fix the problem of restarting the device in Android low-latency mode



Version 3.0.3

Date of release: 2022-12-06

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

New Features

1. Added Video super resolution capability

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

The enableVideoSuperResolution interface is added to support super-resolution processing on a Video stream to obtain better image quality. Super-resolution, referred to as super-resolution, is a technology that the client performs real-time multiplication processing on the width and height of the pulled Video stream. For example, from 640x360 to 1280x720.

For related APIs, please refer to enableVideoSuperResolution, onPlayerVideoSuperResolutionUpdate

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

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

4. Support to obtain the codec capability support status of the specified Encoding & Decoding of the current device

Note: The interface adds an optional parameter codecBackend. The return value is changed to an int type; 0 means not supported, and this encoding format cannot be used for publish streams; 1 means supported, and this encoding format can be used for publish streams; 2 means not confirmed, and it is recommended to call this interface later. This feature currently only supports Android、iOS、macOS and Windows platforms.

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

  • Through the isVideoEncoderSupported interface, the hardware or software encoding support of the current encoder can be obtained.
  • Through the isVideoDecoderSupported interface, the hardware or software decoding support of the current decoder can be obtained. Both of the above two interfaces contain three enumerated values: support hardware or software, support hardware, and support software.

For example, ZegoExpressEngine.instance.isVideoEncoderSupported(ZegoVideoCodecID.H265, codecBackend: ZegoVideoCodecBackend.Hardware) means checking whether the current device supports H265 hard encoding, and returns 1 if it does.

For related APIs, please refer to isVideoEncoderSupported, isVideoDecoderSupported

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

6. Added callback based on the first frame of the Video after the Camera is turned on

It supports calling back after the SDK play streams and renders the first frame of Video data from the remote Camera each time the remote Camera is turned on. Developers can use this callback to count the time spent on the first frame or update the UI components for playing the stream.

For related APIs, please refer to onPlayerRenderCameraVideoFirstFrame

7. Added CDN and CDN Plus play streams configuration items to the play streams interface of the Web platform

Note: If you want to Controller the play streams method from the cloud through more dimensions such as regions and users, please contact ZEGO technical support for relevant configurations.

The play streams interface of the web platform has added CDN and CDN Plus play streams resource mode (ZegoStreamResourceMode), and developers can enable and use CDN and CDN Plus play streams according to the stream dimension.

CDN Plus stream is a cost-effective play streams method with higher quality than CDN play streams streaming, but the price is close to CDN.

For related APIs, please refer to startPlayingStream

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 Mac M1 chip computers in some system versions, the Web side enables hardware encoding publish streams, and uses multiple SPS (Sequence Paramater Set, also known as sequence parameter set), PPS (Picture Paramater Set, also known as sequence parameter set), PPS (Picture Paramater Set, also known as Image parameter set) output form, the Native SDK play streams will have the problem of decoding blurred screen

2. Fixed the problem that the log currently being uploaded may crash when the network status is switched from networked to non-networked

3. Fixed the problem that GetCallbackController is not thread-safe​

4. Fix the SDK crash problem caused by repeatedly starting and stopping the Camera under the Android system

5. Fixed the problem that the SDK did not trigger onPlayerRenderVideoFirstFrame when there is no View

6. Fixed the problem of abnormal screen scaling when rendering in texture mode on iOS, windows, and macOS

7. Fix iOS hardware decoding failure

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

9. Fix the problem that hardware decoding on iOS, macOS, and Windows platforms may crash

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

This version contains breaking changes, please refer to v2.23.0 Upgrade Guide for details

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. Windows supports Media Player settings display and Snapshot functions

Windows supports Media Player to set the display screen through the setPlayerCanvas interface, and take screenshots through the takePublishStreamSnapshot, takePlayStreamSnapshot, Snapshot interfaces] .

For related APIs, please refer to setPlayerCanvas, takePublishStreamSnapshot, takePlayStreamSnapshot, takeSnapshot.

3. 3 new modes are added to the mobile Video capture and rotation function

Due to the angle, resolution, rotation and other characteristics of mobile Camera, developers need to do many complex adaptations.

The current SDK encapsulates various configurations and provides simple mode selection. On the basis of the original custom mode, a new fixed scale mode, adaptive mode and alignment mode can be added, which can effectively reduce the access cost of developers. For details, please refer to Video capture rotation.

The TextureRenderer rendering mode of iOS is currently not supported.

For related APIs, please refer to setAppOrientationMode

4. The system HeadphoneMonitor feedback 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.

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

Enhancements

1. Android side super performance optimization (Qualcomm platform)

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

Optimize the performance of the super-resolution function, increase the maximum supported resolution, improve the model coverage, optimize resource usage and inference speed.

Deleted

1. Legacy video rendering APIs have been removed.

To make it easier for developers to implement video rendering features, the [createTextureRenderer], [destroyTextureRenderer], [updateTextureRendererSize], [createPlatformView] and [destroyPlatformView] API modules have been removed from version 2.23.0.

Therefore, when upgrading from an older version to v2.23.0, developers need to migrate to the new createCanvasView and destroyCanvasView interfaces for Video rendering. The new ZegoExpressCanvasViewUtils API module can support both external texture and PlatformView rendering methods. For details, please refer to v2.23.0 Upgrade Guide

For related APIs, please refer to createCanvasView, destroyCanvasView

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. Low Light Enhancement Support Metal for iOS

The low-light enhancement function uses OpenGL by default. If you need to specify the use of Metal, please contact ZEGO technical support.

3. Custom Video Capture function supports H.265 stream

Notice:

  • It is recommended to have a GOP every 2s, and each I frame must carry SPS and PPS and put them at the top. When calling enableCustomVideoCapture, the passed parameter type must be ZegoVideoBufferTypeEncodedData.
  • Input B-frames are not supported.

For related APIs, please refer to enableCustomVideoCapture

4. H.264 and H.265 hardware codec support using Windows AMD/NVIDIA/Intel series graphics cards

Note: To enable this function, you need to contact ZEGO technical support.

Support Windows AMD/NVIDIA discrete graphics and Intel HD graphics, you can modify the default graphics priority through setEngineConfig.

For related APIs, please refer to setEngineConfig, enableHardwareEncoder, enableHardwareDecoder

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

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

Note:

  • 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

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

Note: Windows currently does not support the Media Player setting display screen setPlayerCanvas, and the Snapshot function is still being improved. The involved interfaces include takePublishStreamSnapshot, takePlayStreamSnapshot, takeSnapshot.

The Flutter framework adds support for Windows. Windows currently only supports TextureRenderer, it is recommended to use createCanvasView to get the view of ZegoCanvas.

For related APIs, please refer to setPlayerCanvas

8. Add createCanvasView to get the view of the rendering window and ZegoCanvas

The - SDK integrates the createTextureRenderer and createPlatformView interfaces, and will use the ZegoEngineProfile.enablePlatformView interface to determine which method is preferred for creation. At the same time, when the platform only supports one of the creation methods, it will automatically use the supported method to create. Currently, Windows only supports TextureRenderer, and Web only supports PlatformView.

  • When using TextureRenderer, it is no longer necessary to actively call updateTextureRendererSize to update the window size.
  • When destruction is required, use destroyCanvasView to do so.

For related APIs, please refer to createCanvasView, destroyCanvasView

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. Fixed the problem of sending SEI failed in audio scene.



Version 2.21.0

Release date: 2022.07.12

New Features

  1. It supports web now.

    Now it supports the web, which will be different from other platforms in use. Some interface functions are not supported by the web. At present, the web supports basic functions.

  2. Range voice supports custom distance update frequency.

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

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

    For related API, please refer to setPositionUpdateFrequency

  3. Support setting the low-light enhancement.

    Note: The setLowlightEnhancement interface should be called after calling the createEngineWithProfile interface to create an engine.

    When the surrounding environment of the stream-publishing user is dark, or the frame rate set by the camera is high, resulting in a dark live broadcast screen, and the subject cannot be displayed or recognized normally, you can call the setLowlightEnhancement interface to set the low-light enhancement to increase the brightness of the video screen. The low-light enhancement function includes three modes: 1: Disable the low-light enhancement (default), 2: Enable the low-light enhancement, 3: Automatically switch on/off the low-light enhancement.

    You can choose different low-light enhancement modes according to business scenarios: when you want to judge whether the low-light enhancement is needed, you can switch between modes 1 and 2; when you want the SDK to automatically enhance the brightness, you can enable the mode 3, and the SDK will automatically determine the lighting environment where the user is in, and turn on or off the low-light enhancement.

    For related API, please refer to setLowlightEnhancement

  4. Support setting video borders to rounded corners when mixing streams.

    When calling the startMixerTask interface to mix streams, you can set the "cornerRadius" through the "ZegoMixerInput" class to turn the video border to rounded corners. The unit of "cornerRadius" is px, and the value cannot exceed the half of the width or the height of video screen, which is shorter.

    For related API, please refer to startMixerTask

  5. Add the CDN Plus playing configuration to the startPlayingStream interface.

    Note: If you want to control the stream-playing mode from the cloud by more criteria such as region and user, please contact ZEGO technical support for related configuration.

    The startPlayingStream interface adds CDNPlus as a new ZegoStreamResourceMode. interface. You can enable CDNPlus to play stream by yourself based on to the stream critirion. The CDN Plus stream-playing is a cost-effective method, because its quality is higher than CDN stream-playing with similar price.

    For related API, please refer to startPlayingStream

Enhancements

  1. Optimize the related error codes of 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 Error codes.

  2. Optimized the alignment between vocal and accompaniment for real-time chorus scenario.

    The alignment between vocal and accompaniment for real-time chorus scenario is optimized. Therefore,you can avoid the unaligned streams of vocal and accompaniment caused by the delay of device playback when the client publishes the two streams at the same time.

Bug Fixes

  1. Fixed an issue where play stream with L3 failed.

    Fixed the issue that when the 2.20.0 ~ 2.20.2 SDK uses L3 to play streams, if the played-stream is the stream which is published by the SDK of 2.15.0 and earlier versions, it may fail.

  2. Fixed some bug about Custom Audio IO



Version 2.21.0-prerelease.1

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 problem of probabilistic stream-playing failure.

2. Optimized the problem that the audio device mode set before the SDK initialization does not take effect.



Version 2.20.0

Release date: 2022.06.16

New Features

1. 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 channels. When initialized, the media player defaults to all channels.

For related API, please refer to setActiveAudioChannel

2. Media player supports clearing the last frame when the playback ends.

Note: You must wait for the media player to finish playing before the API call takes effect.

Call the createEngine interface to initialize the engine, call the createMediaPlayer interface to create a media player, and call clearView to clear the last remaining frame.

For related API, please refer to clearView

3. Support the camera to automatically change the frame rate.

Note: When the frame rate set by setVideoConfig is less than the minimum expected frame rate of enableCameraAdaptiveFPS, the frame rate value set by setVideoConfig will be used. Due to the different hardware and algorithm strategies of different mobile phone manufacturers, the effect of this interface is different on different models or on the front and back cameras of the same model.

When the frame rate set by the user on the streaming end is high, and the ambient light is low and the subject cannot be displayed or recognized normally, you can call the enableCameraAdaptiveFPS interface to automatically reduce the frame rate within a certain range to increase exposure time, so as to improve the brightness of the video picture. This function is often used in live broadcast scenes with high exposure requirements. The enableCameraAdaptiveFPS interface needs to be called after calling the createEngine interface to initialize the engine and before starting the camera.

For related API, please refer to enableCameraAdaptiveFPS

4. Support setting the picture information of a single input stream in the mixed stream.

Note: The length of the image address must not exceed 1024 bytes, otherwise the error code 1005034 will appear; the image format should be JPG and PNG format, otherwise the error code 1005035 will appear; the image must not exceed 1M, otherwise the error code 1005036 will appear.

You can set the image address through the "ZegoMixerImageInfo" type parameter of the startMixerTask interface to set the content of a single input stream as an image, which is used to replace the video, that is, when the image is used, the video is not displayed. This function is mainly used in a video call when a video caller may need to temporarily turn off the camera to display the image, or in a call between a video caller and a voice caller when the image of the voice caller may need to be displayed.

For related API, please refer to startMixerTask

5. Support setting whether to clear the last frame after calling the mutePlayStreamVideo interface.

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

When you finds that the stream publisher violates the regulations, you can call the mutePlayStreamVideo interface to discontinue the stream puller from pulling the video stream of the violating user, and request the violating user to make corrections. Using this function at the same time can avoid the risk of violation caused by the video interface of the stream puller still retaining the last frame.

6. Supports linearly increasing volume gain.

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

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

7. Supports automatic censorship of audio and video at the stream level.

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

When calling the startPublishingStream API to start streaming, you can set the "ZegoStreamCensorshipMode" parameter to conduct automatic audio and video censorship at the stream level, and automatically identify sensitive content, thus reducing the integration difficulty and business maintenance costs.

For related API, please refer to startPublishingStream

Enhancements

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

2. The echo cancellation has been optimized to solve the swallowed sound phenomenon in KTV and other scenarios.

3. Added 1009013 error code.

It indicates that the message input length exceeds the limit. When this error code appears, please check the input content length or contact ZEGO technical support to extend the message content length.

4. Added 1017009 error code.

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

For related API, please refer to initCopyrightedMusic, loginRoom

Bug Fixes

1. Fixed an error reporting the 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 H.265 does not take effect when only Recording Local Media (not publish streams)

3. Fixed the issue that the call Volume was changed from bluetooth to loudspeaker when the acquisition was enabled when certain Android models were used together with certain bluetooth headsets

4. Fixed iOS not working on simulator



Version 2.18.0

Release date: 2022-04-28

New Features

1. Added AI noise reduction function

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

2. Support setting the playback speed of AudioEffect

After playing 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

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

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

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

Call startMixerTask to start or update the Stream Mixing task. It supports setting the Stream Mixing Watermark and Stream Mixing input Volume through "backgroundUrl" and "inputVolume" respectively.

For related APIs, please refer to startMixerTask

6. 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. Stream Mixing text Watermark supports setting font border and color

Call the startMixerTask interface, use the "border" property in "ZegoFontStyle" to set whether the font has a border, and use the "borderColor" property to set the font border color.

For related APIs, please refer to startMixerTask

2. 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 ZEGO Admin 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 problem that the resolution returned by some mobile phones was not correct

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

5. 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 setting the minimum FPS and Video resolution

Added [setMinVideoFpsForTrafficControl] and [setMinVideoResolutionForTrafficControl] interfaces, which can be used to set the minimum FPS and resolution by calling the interface when the user's network is poor and the Flow Control is turned on, helping the user to comprehensively Controller the Video display effect.

For related APIs, please refer to setMinVideoFpsForTrafficControl, setMinVideoResolutionForTrafficControl

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

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

4. 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 ZEGO Admin Console. When an exception occurs in the calls of other SDK interfaces, the UI will pop up an error message.

For related APIs, please refer to enableDebugAssistant

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 voice and video call functions.

For versions below 2.17.1, pass in AppSign when creating the engine, and the voice and video call 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 problem that push down real-time audio and Video streams 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.

For related APIs, please refer to onPlayerQualityUpdate

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

4. H.265 play streams support automatic downgrade

To use this feature, please contact ZEGO Technical Support.

Version 2.15.0 and earlier: When the SDK uses [startPlayingStream] to pull H.265 encoded streams, if the decoding frame rate is insufficient due to poor hardware performance on the play streams end, the SDK cannot actively downgrade, and the user needs to stop playing H.265 first. .265 encoded stream, and then pull the H.264 encoded stream.

Version 2.16.0 and above: Added H.265 play streams automatic downgrade policy. When using [startPlayingStream] to pull H.265 encoded streams, the SDK can decode the play streams end due to poor hardware performance according to the play streams quality. When the frame rate is insufficient, it will automatically downgrade and pull the H.264 encoded stream.

For related APIs, please refer to startPlayingStream

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. Optimized the basic Beautify function

ZEGO provides a new basic Beautify function, showing users a good skin condition and creating a natural Beautify effect. Developers need to call the [startEffectsEnv] interface to initialize the Beautify environment before publish streams , and then call the [enableEffectsBeauty] interface to enable the Beautify function. Through the [setEffectsBeautyParam] interface, you can adjust the degree of Whiten, Polish, Sharpen and ruddy as needed to achieve basic Beautify capabilities.

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

For related APIs, please refer to startEffectsEnv, stopEffectsEnv, enableEffectsBeauty, setEffectsBeautyParam

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

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

Deleted

1. Abandoned the old version of the basic Beautify related interface

The old Beautify function is relatively simple and does not meet the developer's expectations. Therefore, the [enableBeautify] interface is deprecated in version 2.16.0 and above, please use the [enableEffectsBeauty] interface instead; the [setBeautifyOption] interface is deprecated, please use [setEffectsBeautyParam] ] replace.

For related APIs, please refer to enableBeautify, enableEffectsBeauty, setBeautifyOption, setEffectsBeautyParam

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. Stream Mixing output supports advanced encoding parameter configuration

Stream Mixing output Video configuration [ZegoMixerOutputVideoConfig] Added encodeProfile and encodeLatency parameters, which are used to set the Stream Mixing output Video encoding specification and Stream Mixing output Video encoding delay respectively.

For related APIs, please refer to ZegoMixerOutputVideoConfig

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

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

4. 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. Support setting Camera focus and exposure mode

The SDK supports setting the Camera focus and exposure mode, which is often used in Jianbao live broadcast scenes to zoom in and focus on the details of some objects.

After starting the local Preview, you can call the [isCameraFocusSupported] interface to enable the Camera focus function. Through the [setCameraFocusPointInPreview] and [setCameraExposurePointInPreview] interfaces, you can set the focus point and exposure point in the Preview view respectively (each time the Camera restarts the acquisition, the settings of both will fail and need to be reset). Call the [setCameraFocusMode] and [setCameraExposureMode] interfaces to set the Camera focus mode and exposure mode respectively.

For related APIs, please refer to isCameraFocusSupported, setCameraFocusPointInPreview, setCameraFocusMode, setCameraExposureMode, setCameraExposurePointInPreview

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

6. 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 have been aligned with Native SDK 2.13.0 version

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

It does not currently support defined Video capture, Custom Video Rendering, Custom Video Pre-processing, and Audio Mixing functions.

For related API, please refer to Client API

Enhancements

1. Go to the test environment

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

For related API, please refer to createEngineWithProfile

Abandon Deleted

1. Abandon the old [createEngine] interface

In order to reduce the developer's understanding of the environment, the test environment was abandoned and the environment was used uniformly. The original [createEngine] interface has been abandoned in 2.13.0 and above, please use [createEngineWithProfile] interface instead.

For related API, please refer to createEngine

Page Directory
  • Free trial
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    Get Consulting
    Scan Wechat QR code