Video Call
  • iOS
  • Android
  • Web
  • Flutter : Dart
  • React Native
  • Electron
  • Unity3D
  • Cocos Creator
  • Windows
  • macOS
  • Linux
  • Overview
  • Develop your app
    • Quick start
    • Implement a basic video call
    • Enhance basic feature
      • Use Tokens for authentication
      • Config your video based on scenes
      • Check the room connection status
      • Set up common video config
  • Best practices
    • Implement call invitation
    • Implement a live audio room
  • Upgrade using advanced features
    • Advanced features
      • Configure the video
        • Watermark the video/Take snapshots
        • Beautify & Change the voice
        • Configure video codec
        • Configure video codec
      • Improve video quality
        • Configure bandwidth management
        • Test network and devices in advance
        • Visualize the sound level
        • Monitor streaming quality
      • Message signaling
        • Convey extra information using SEI
        • Broadcast real-time messages to a room
      • Play media files
        • Play media files
        • Play sound effects
      • Share the screen
      • Mix the video streams
      • Record video media data
      • Monitoring and channel settings
    • Distincitve features
      • Customize the video and audio
      • Play streams via URL
      • Play a transparent gift special effect
  • Resources & Reference
    • SDK
    • Sample codes
    • API reference
      • Client APIs
      • Server APIs
    • Debugging
      • Error codes
    • FAQs
    • Key concepts
  • Communication capability
  • Documentation
  • Video Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2024-04-09 17:00

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

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.

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 details, please Refer to the <a href="https://doc-en.zego.im/article/15831 " target="_blank" rel="noopener noreferrer">Client Agent Documentation.

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 details, please refer to <a href= " http://doc-en.zego.im/faq/AudioDeviceMod?product=ExpressVideo&platform=ios " target="_blank" rel="noopener noreferrer">How to set the Audio device mode ZegoAudioDeviceMode?

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.

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

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

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