Video Call
  • iOS
  • Android : Java
  • Web
  • Flutter
  • React Native
  • Electron
  • Unity3D
  • Cocos Creator
  • Windows
  • macOS
  • Linux
  • Overview
  • Develop your app
    • Quick start
    • Enhance basic feature
      • Use Tokens for authentication
      • Config your video based on scenes
      • Check the room connection status
      • Set up common video config
      • Set up common audio config
  • Best practices
    • Implement a video call for multiple users
    • Implement call invitation
    • Implement a live audio room
  • Upgrade using advanced features
    • Advanced features
      • Configure the video
        • Watermark the video/Take snapshots
        • Improve your appearance in the video
        • Beautify & Change the voice
        • Configure video codec
        • Output the video in H.265
      • 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
        • Quotas and limits
      • Play media files
        • Play media files
        • Play sound effects
      • Share the screen
      • Mix the video streams
      • Publish multiple video streams
      • Encrypt the video streams
      • Record video media data
    • Distincitve features
      • Join multiple rooms
      • Customize the video and audio
      • Set the voice hearing range
      • Transfer traffic via the cloud proxy server
      • Use the bit mask
      • Play streams via URL
      • Play a transparent gift special effect
      • AI Voice Changer
      • In-game voice chat
  • Upgrade using Add-on
  • Resources & Reference
    • SDK
    • Sample codes
    • API reference
      • Client APIs
      • Server APIs
    • Debugging
      • Error codes
      • Logging/Version number
    • FAQs
    • Key concepts
  • Documentation
  • Video Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2024-04-02 15:30

3.13.2 Version

Release date: 2024-03-29

Bug Fixes

1. Fix known issues.



3.13.0 Version

Release date: 2024-03-14

New Features

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

Note:

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

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

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

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

For related API, please refer to ZegoCDNConfig > quicConnectMode

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

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

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

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

For related API, please refer to addPublishCdnUrl

3. Support for callback local recording quality data.

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

For related API, please refer to onCapturedDataRecordProgressUpdate

4. Custom video rendering supports independent channel control.

Custom video rendering supports independent channel control. For example, for a specified stream ID, only SDK internal rendering is performed without executing custom rendering.

For related API, please refer to enableCapturedVideoCustomVideoRender, enableRemoteVideoCustomVideoRender

5. Supports obtaining video data pre-processed by SDK, and passing different video data to SDK for preview and publish streaming respectively.

Note:

  • This feature may cause performance impact, please use it judiciously.

  • This feature does not support the use of video data of type SurfaceTexture.

It is supported to perform other video pre-processing operations (such as beautification, etc., which need to be implemented by the developer) after obtaining the data processed by the Express SDK video, or use the processed video data directly for preview or publish.

For related API, please refer to sendCustomVideoProcessedTextureData

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

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

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.



3.12.4 Version

Release date: 2024-01-16

Bug Fixes

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



3.12.2 Version

Release date: 2024-01-03

Bug Fixes

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



3.12.1 Version

Release date: 2023-12-30

Bug Fixes

1. Fixed the problem of stuck when playing and rendering streams on some devices.



3.12.0 Version

Release date: 2023-12-27

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.

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



3.11.0 Version

Release date: 2023-11-29

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:

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

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

11. Support for accessing the data before audio preprocessing.

Support for obtaining audio data before 3A audio pre-processing operations. Developers can enable this feature through the [enableBeforeAudioPrepAudioData] interface, and then retrieve the audio data through the [onBeforeAudioPrepAudioData] callback.

For related API, please refer to enableBeforeAudioPrepAudioData, onBeforeAudioPrepAudioData

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.



3.10.2 Version

Release date: 2023-11-18

Bug Fixes

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



3.10.1 Version

Release date: 2023-11-09

Bug Fixes

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



3.10.0 Version

Release date: 2023-10-13

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 an issue where the expected data length may be incorrect when mixing locally.

For related API, please refer to onAudioMixingCopyData

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

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



3.9.0 Version

Release date: 2023-09-08

New Features

1. External rendering supports throwing SurfaceTexture data to reduce rendering delay.

2. Added SEI callback with timestamp.

For related API, please refer to onPlayerRecvMediaSideInfo

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

4. Supports throwing [setDummyCaptureImagePath] exception callback.

For related API, please refer to onPublisherDummyCaptureImagePathError

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

For related API, please refer to enablePublishDirectToCdn

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



3.8.1 Version

Release date: 2023-08-16

Bug Fixes

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



3.8.0 Version

Release date: 2023-08-09

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. Custom video pre-processing function supports dual output.

The custom video pre-processing function supports dual output, which supports the output of memory data and 2D texture data. Developers can use these data to implement third-party beautification functions, and perform face detection and beautification with higher performance.

For related API, please refer to onCapturedUnprocessedRawData, ZegoVideoBufferTypeGLTexture2DAndRawData

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

4. Added a callback for synchronously throwing the first frame of the video network.

Added a callback [onPlayerSyncRecvVideoFirstFrame] that returns the first frame of the video network from a non-UI thread. This callback is not affected by UI freezes and can more accurately count the first frame of the video.

For related API, please refer to onPlayerSyncRecvVideoFirstFrame

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

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 problem of dual-voice switching caused by invalid microphones.



3.7.0 Version

Release date: 2023-07-13

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. The 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 ZegoExpressEngine > setVideoConfig, setPublishDualStreamConfig

2. Supports audio and video within a range of ten thousand people, as well as game voice chat with 3D sound effect distance attenuation range.

In the scenarios of large-scale audio-video, game voice, it supports setting the attenuation range [min, max] of 3D sound effect distance. When the distance is less than min, the volume will not decrease with the increase of distance; when the distance is greater than max, the sound of the other party will not be audible.

For related API, please refer to setReceiveRange, setAudioReceiveRange

3. Added error code prompt

Added error codes for the three modules of voice detection (1018xxxxx), audio and video for 10,000 people (1019xxxxx), and screen capture (1020xxxxx).

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. Fix the problem that after MediaRecorder and AudioObserver stop streaming, the local streaming is not resumed and the collection continues.

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



3.6.0 Version

Release date: 2023-06-09

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 startScreenCapture

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

Enhancements

1. The Android SDK provides an AAR package.

In order to make it easier for developers to use the screen sharing function, starting from version 3.6.0, an AAR package is provided in the locally downloaded SDK, and the AAR package of the Maven online integration method carries the screen sharing Service statement, and developers do not need to manually Declare in your own project.

2. Optimize the performance of the subject segmentation function when the microphone overlaps with the human body.

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

When the microphone partially overlaps with the human body area, the shape of the microphone in the overlapping area can be preserved to maintain the complete shape of the human body area.

For related API, please refer to enableVideoObjectSegmentation

Bug Fixes

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



3.5.0 Version

Release date: 2023-05-11

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.

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 ZEGOCLOUD technical support.

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

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.



3.4.0 Version

Release date: 2023-04-14

New Features

1. Support for Geofencing Function.

Note:

  1. To use this feature, please contact ZEGOCLOUD technical support.

  2. Please configure geofencing information before creating the engine.

Restrict access to audio, video, and signaling data to a specific area to meet regional data privacy and security regulations, which restrict users' access to audio and video services in a specific area.

For related API, please refer to setGeoFence

2. State synchronization and active streaming support for audio and video over a 10000 person range.

The status synchronization and 10000 person range audio and video functions support active streaming or custom streaming through stream ID. This function can achieve a gameplay that maintains streaming no matter how far away it is. It is suitable for scenes where the audience in any part of the virtual world can obtain a large screen or host's voice through streaming when there is a large screen or host in the virtual world.

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

4. Support for platform based switch body segmentation function.

Note:

  1. To use this feature, please contact ZEGOCLOUD technical support.

  2. Developers who access through experimental APIs need to migrate to accessing the subject segmentation function through formal API interfaces.

For related API, please refer to enableVideoObjectSegmentation

5. Support dynamic switching of flow control strategies

Supports dynamic switch flow control function, as well as setting flow control attributes.

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

Enhancements

1. Optimize SDK memory usage

Delete some unnecessary memory applications within the SDK and optimize the SDK's memory usage. Compared to the previous version, the memory usage has decreased by about 10%.

Bug Fixes

1. Fixed the issue of abnormal listening of game voice in certain situations.

Deleted

1. Abandon the [onPlayerRecvSEI] interface

Note: There may be compatibility issues with interface replacement, please check the description of [onPlayerRecvSEI].

To avoid data synchronization exceptions, the [onPlayerRecvSEI] interface will be discontinued in versions 3.4.0 and above. If you need to collect SEI content from remote streams, please use the [onPlayerSyncRecvSEI] interface instead.

For related API, please refer to onPlayerSyncRecvSEI, onPlayerRecvSEI



3.3.1 Version

Release date: 2023-03-23

Bug Fixes

1. Fixed the issue of Android hardware ear failure in some scenarios.

2. Fixed H265 decoding failure in some scenarios.



3.3.0 Version

Release date: 2023-03-10

New Features

1. Support for voice enhancement effect in external scenes.

In the external scene, the microphone of the device is too close to the speaker, which may easily lead to blurred or dull voice. In this scenario, voice enhancement can effectively improve the clarity of voice and improve the sense of boredom. Therefore, it is recommended to enable this function in an external scenario.

In order to achieve the voice enhancement effect in the external broadcast scene, the voice enhancement effect can be turned on and the enhancement level can be set. It can be used in the KTV external broadcast scene to fine control the voice effect. The recommended enhancement level is 4.

For related API, please refer to enableSpeechEnhance

2. Support adaptive device acquisition rendering delay and echo cancellation (AEC) in customized audio acquisition and SDK internal rendering mode.

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

In the customized audio acquisition and SDK internal rendering mode, the AUX adaptive alignment and AEC functions are supported, which can achieve better results when performing chorus in KTV scenes.

3. Media player supports playing transparent special effects.

Media player supports the function of playing transparent special effect files through rendering alpha channel.

For related API, please refer to loadResourceWithConfig

4. Game voice supports customized voice mode and listening mode.

The game voice supports the customized setting of voice mode and listening mode, which can be used to shield the scene of the same team of players outside the range after joining the team.

For related API, please refer to setRangeAudioCustomMode

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

Note: When pulling the transcoding stream through CDN, you must use the push CDN. To use this function, please contact ZEGOCLOUD technical support.

Single-stream transcoding refers to converting each original stream into transcoding streams with different encoding formats and different resolutions in the cloud. The transcoding template ID needs to be passed in to pull the transcoding stream. In live broadcast and other scenes, viewers can choose streams of different resolutions to watch based on the quality of the access network, terminal equipment, etc., to ensure the smoothness of playback.

6. The same mixed-stream task supports the output of multiple resolution video streams.

Note:

  1. At present, one mixing task can output up to four video streams with different resolutions, and only server mixing is supported.

  2. To use this function, please contact ZEGOCLOUD technical support.

The same mixing task supports the output of multiple resolution video streams, which can be used to meet the transcoding requirements in the mixing scenario.

7. Mixed flow task supports input of super whiteboard information.

In the mixed-stream function, the operation content in the whiteboard can be converted into real-time video, and the whiteboard configuration information can be set, for example, the whiteboard ID, the whiteboard aspect ratio, and whether dynamic PPT loading is supported.

For related API, please refer to setWhiteboard, startMixerTask

8. Scenario-based audio and video configuration adds [StandardVoiceCall] standard voice call scenario.

StandardVoiceCall standard voice call scenario is added for scenario-based audio and video configuration, which is applicable to 1v1 pure voice call scenario.

For related API, please refer to setRoomScenario

Enhancements

1. Optimize the supersection algorithm to greatly improve the coverage of aircraft models.

2. Optimize the over-division logic and add initialization and de-initialization interfaces.

Note:[enableVideoSuperResolution] modifies the call time, and can only be called after [initVideoSuperResolution].

For related API, please refer to initVideoSuperResolution, uninitVideoSuperResolution

3. Optimize the deep echo cancellation (AEC) effect of KTV scenes.

The deep AEC optimization for KTV scenes has achieved:

  1. The sound quality of the human voice in the external scene is greatly improved to make the human voice more fidelity.

  2. While eliminating the echo, effectively avoid the occasional swallowing of words or the fluctuation of voice.

Bug Fixes

1. Fixed the problem that the player has no sound after plugging the headset.

2. Fixed the problem of Android screen collection failure when the main process does not start the screen sharing service.



3.2.1 Version

Release date: 2023-02-23

Bug Fixes

1. Fixed the problem that the customized audio acquisition and audio acquisition source need to be reset to take effect after logging in to the room again in some scenarios.



3.2.0 Version

Release date: 2023-01-13

New Features

1. The range scenario supports setting the push/pull flow mode.

The range scenario supports setting the push/pull flow mode, which includes whether to pull the flow within the range and whether to push the flow to the world.

For related API, please refer to enablePlayInRange, enablePublishToWorld

2. Support video size streaming function

When video stream is layered by video size stream encoding (H.264 DualStream), compared with layered video encoding (H.264 SVC), video size stream encoding (H.264 DualStream) supports hardware encoding, that is, the [ZegoVideoCodecIDH264DualStream] field is added to the [ZegoVideoCodecID].

For related API, please refer to ZegoVideoCodecIDH264DualStream

3. Body segmentation and transmission support real scene segmentation and green screen segmentation, and internal rendering support alpha channel.

Note: This function is an internal test function. For access experience, please contact ZEGO business personnel.

  1. Android, iOS, Windows and MacOS (only Apple chips are supported temporarily) support live scene segmentation and green screen segmentation.

  2. The internal rendering supports the alpha channel. Developers do not need to use custom rendering to realize the mixing of the main body and the background.

Enhancements

1. Customized signaling configuration support extended to 4KB

Note: The default size of customized signaling configuration is 1KB. If you need to expand to 4KB, please contact ZEGOCLOUD technical support for processing.

2. Starting from this version, the Gradle repository of Express Video Call SDK is changed from https://jitpack.io to https://storage.zego.im/maven, and the dependency name is changed from com.github.zegolibrary:express-video:x.y.z to im.zego:express-video:x.y.z, see Integrate the SDK documentation for more details.

Bug Fixes

1. Fixed network time module retry failure.



3.1.1 Version

Release date: 2022-12-12

Bug Fixes

1. Fixed the problem of device restart in low latency mode.



3.1.0 Version

Release date: 2022-12-09

New Features

1. Multi person real-time status synchronization function supports item status synchronization and item lock capability.

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

Through this ability, you can quickly move and place items, seize items and other interactive play methods. Take the chair grabbinggame as an example:

  1. First, you need to create a chair in your field of vision through the [createItem] interface in advance.

  2. When you are near the chair, seize the chair through [bindItem] to obtain its use right.

  3. If you only allow one user to preempt the chair, other users will not be able to preempt it until you release the permission through [unbindItem].

  4. When you sit on the chair, you can update the status/command of the chair through [updateItemStatus] and [updateItemCommand] to notify other users that you are sitting on the chair.

For related API, please refer to createItem, bindItem, unbindItem, updateItemStatus, updateItemCommand

2. The "10000 person range audio and video" and "multi person real-time status synchronization" functions support the use of scenario templates.

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

In the virtual scene, due to the different map size, audio and video interactive playing methods and scales of each scene, it is necessary to customize the configuration for each scene. After version 3.1.0, 10000 person range audio and video and multi person real-time status synchronization support SDK interface and use template ID to specify scenarios.The configuration item corresponding to the template ID can only be configured through the server API.

For related API, please refer to templateID

3. The "10000 person range audio and video" and "multi person real-time status synchronization" functions support the use of Token basic authentication.

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

When logging in to the scenario, users can take the Token parameter to verify the validity.

For related API, please refer to ZegoSceneParam > token, ZegoRangeScene > renewToken

4. Support multi-source acquisition capability.

For a variety of interactive scenarios of audio and video sources such as online KTV, watching movies together, watching competitions, video conferences, and online education, multi-source acquisition provides flexible and easy-to-use audio and video acquisition sources and channel management capabilities, greatly reducing developers' development and maintenance costs.

Multi source acquisition capability shortens, optimizes and normalizes the implementation path of common capabilities such as screen sharing and mixing. After version 3.1.0, you can no longer implement the above complex capabilities through custom acquisition.

The main capabilities and characteristics are as follows.

  1. Streaming channel supports setting or switching multiple audio and video sources.

  2. Common capabilities such as screen sharing and mixing are supported.

5. SDK supports setting cloud proxy

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

By setting the cloud proxy interface of the SDK, all the traffic corresponding to the SDK is transferred through the cloud proxy server to achieve communication with the RTC.

For related API, please refer to setCloudProxyConfig

Enhancements

1. Greatly improve the audio and video connectivity in extremely weak network areas, and reduce the connection time.

The ZEGO self-developed dispatching system has been deeply optimized for areas with poor network quality.

Bug Fixes

1. Fixed the problem that sending room [Logout] signaling may fail.

2. Fixed the occasional black screen problem caused by the camera authority occupation.

3. Fixed occasional crash of audio player.

4. Fixed the problem of occasional access field pointer crash when video external capture is in memory mode.



3.0.2 Version

Release date: 2022-11-15

Bug Fixes

1. Fixed the problem that when streaming is stopped in the multi room mode, other people in the room cannot receive stream deletion notifications.

2. Fixed the problem that hardware may crash after decoding and switching resolution under Android system.



3.0.1 Version

Release date: 2022-11-03

Bug Fixes

1. Fixed the issue that [onNetworkQuality] not calling back



3.0.0 Version

Release date: 2022-10-28

This version contains breaking changes, please refer to v3.0.0 Upgrade Guide for details.

New Features

1. New video super-resolution capability

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

The new [enableVideoSuperResolution] interface supports super-resolution processing of a video stream to achieve better image quality. Super resolution, referred to as super resolution, is a technology that the client multiplies the width and height of the pulled video stream in real time. For example, from 640x360 to 1280x720.

For related API, please refer to enableVideoSuperResolution, onPlayerVideoSuperResolutionUpdate

2. Scene AI noise reduction adds the ability to reduce noise in music scenes

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

The scene AI noise reduction function, based on the previous noise reduction for all non human voices, supports the noise reduction capability in the music scene, and restores the music sound quality by identifying music and intelligently adjusting the noise reduction effect. The SDK will perform music detection on the microphone input in real time, and automatically adjust the noise reduction level in sound card, playing and singing or near field music scenes to ensure the high fidelity sound quality of music.

3. New real-time synchronization function of multi person status

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

The SDK provides orderly, high-frequency, low latency, and large-scale status synchronization cloud services for virtual scenes, helping customers quickly achieve real-time information synchronization capabilities such as player location, action, and image. At the same time, 10000 users can be online simultaneously in a single scene.

In a large virtual world, users generally do not need to perceive distant scenes or remote users. ZEGO provides AOI (Area Of Interest) capabilities to reduce information outside the user's visible range and greatly reduce customer traffic costs, user traffic and performance consumption.

For related API, please refer to createRangeScene

4. Added audio and video for 10000 people

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

The 10000 person range audio and video function supports large-scale audio and video interaction. The cloud service dynamically routes users based on their location, maintaining an immersive interactive experience in a large virtual scene while significantly reducing customer audio and video costs.

Depends on the real-time synchronization service of multi person status, automatically pulls remote audio and video within the listening range according to the cloud user location, and provides spatial audio effects. In a single scene, a maximum of 10000 users can turn on the microphone and camera at the same time. By default, the user pulls the nearest 12 channels (configurable) of audio and video.

For related API, please refer to createRangeScene

5. Scenario of adding room dimensions

In order to facilitate the rapid access of developers and reduce the access threshold for developers, the SDK provides a variety of preset scenarios. Developers can select the corresponding room mode [ZegoScenario] according to the desired scenario, and the SDK will automatically apply audio and video codecs, audio and video parameters, flow control strategies and other configurations suitable for the scenario, so as to quickly achieve the best effect in the scenario.

Currently supported scenarios include live show, KTV, standard 1v1 audio and video calls, high quality 1v1 audio and video calls, standard chat rooms, and high quality chat rooms.

For related API, please refer to setRoomScenario

6. Support for obtaining the codec capability of the specified video codec of the current device

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

The hardware or software encoding support of the current encoder can be obtained through the [isVideoEncoderSupported] interface.

Through the [isVideoDecoderSupported] interface. The hardware or software decoding support of the current decoder can be obtained. The above two interfaces contain three enumerated values:support hardware or software, support hardware, and support software.

Taking the Android side as an example, isVideoEncoderSupported(ZegoVideoCodecID. H265, ZegoVideoCodecBackend. HARDWARE)means to check whether the current device supports H265 hardcoding. If yes, return true.

For related API, please refer to isVideoEncoderSupported, isVideoDecoderSupported

7. Support dual channel acquisition in SPEAKER mode

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

8. Added switch interface for acquiring GPS information

Note: This function is enabled by default. If you need to disable this function, please contact ZEGOCLOUD technical support. … n If the app has access to the geographical location, the developer can choose whether to allow the ZEGO SDK to obtain the GPS information cached by the system, which is obtained by default. When developers want to disable this function, they need to contact ZEGOCLOUD technical support to set it.

9. New video first frame callback based on camera opening

Support callback after SDK pulls the stream and renders the first frame of remote camera video data each time the remote camera is turned on. Developers can use this callback to calculate the first frame time consumption, or update the UI components of the playback stream.

For related API, please refer to onPlayerRenderCameraVideoFirstFrame

Enhancements

1. Optimized for 1v1 pure RTC call scenarios

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

It is optimized for 1v1 call scenarios and is applicable to pure RTC scenarios.

2. Optimize space audio function

The space audio capability is optimized, so that users can distinguish the front and rear audio sources, so as to achieve a better sense of immersion.

3. Optimize the situation of broken sound caused by excessive collection volume

The AGC automatic gain control algorithm is optimized. When the acquisition volume is too large, it will not cause broken sound.

4. Optimize the audio and video experience in extremely weak networks

The SDK optimizes the internal strategy. In the audio and video scenarios, it supports a minimum downlink of 50 kbps without congestion, ensuring a better experience in extremely weak networks.

Bug Fixes

1. Fixed the problem that under some system versions of Mac M1 chip computers, the Web side enabled hardware encoding streaming, and used multiple SPS (Sequence Parameter Set) and PPS (Picture Parameter Set) output forms.

2. Fixed the problem that the logs currently being uploaded may crash when the network status is switched from having a network to having no network.

3. Fixed GetCallbackController non thread safety issue.

4. Fixed the SDK crash caused by repeatedly starting and stopping the camera under Android system.

5. Fixed the problem that the SDK did not trigger [onPlayerRenderVideoFirstFrame] without a View.

Deleted

1. Three old versions of [ZegoScenario] scenarios have been abandoned

Discard [General], [Communication] and [Live] three scenarios in the [ZegoScenario] scenario enumeration.

2. [setDebugVerbose],[setPlayStreamVideoLayer],[enableAudioDataCallback]and other interfaces are deleted.



2.23.0 Version

Release date: 2022-09-09

New Features

1. Added 3 new modes for video capture and rotation function on mobile.

Due to the angle, resolution, rotation and other characteristics of mobile cameras, 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 related API, please refer to setAppOrientationMode

2. Added support for reverb effects to the system ear feedback of Huawei mobile phones.

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

When use the system ear return of Huawei mobile phones, add the reverberation effect support. 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 those three effects, it still defaults to the KTV effect.

Enhancements

1. Optimized the performance of the super-resolution feature for Android machines using Qualcomm chips.

Note: To use this feature, please contact ZEGOCLOUD 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.

2. Improve the development experience of Express Android Java SDK.

In order to improve the development experience for Android developer, the Java source code will be delivered in the form of a jar package together with the SDK package since v2.23.0. Developers can import the source code jar package through Android Studio to obtain API comments.

3. Java SDK now also comes with C++ API headers.

For the convenience of cross-platform framework developers, we have attached the C++ interface header files to the Java SDK; since the C++ API is in the form of Header-Only, only using the Java API will not increase the package size after integrating the SDK; in addition, do not use both sets of APIs at the same time to avoid confusion of the SDK life cycle.

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 be heard outside the range of the range voice function after exiting the squad.

3. Fixed a possible crash on Android 5.1 and below.



2.22.0 Version

Release date: 2022-08-09

New Features

1. Add support for SOCKS5 local 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's cloud-based RTC service is normal. Currently only supports SOCKS5 protocol.

For related API, please refer to setEngineConfig

2. The custom video capture function supports H.265 encoded stream.

Note: It is recommended to set a GOP every 2s, and each I frame must carry SPS and PPS and put them at the first. When calling [enableCustomVideoCapture], the type must be set to [ZegoVideoBufferTypeEncodedData].

  1. It does not supports B frame.

For related API, please refer to enableCustomVideoCapture

3. Support dynamically modify AudioDeviceMode.

Add [setAudioDeviceMode] to dynamically modify the audio mode of the device. This configuration determines the volume mode, preprocessing mode and Mic occupation logic of the device. You can choose according to specific scenarios.

For related API, please refer to setAudioDeviceMode

4. Support for calling back vocal-aligned PCM data from media player.

Note: 1. When using the media player to play the accompaniment, you need to use the [enableAux] interface at the same time. 2. After enabling the [enableAlignedAudioAuxData] interface, the data of the media player 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, then turn on the switch through the [enableAlignedAudioAuxData] interface, and finally through the [onAlignedAudioAuxData] interface. ] The callback obtains the PCM data of the media player. 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 API, please refer to enableAlignedAudioAuxData, onAlignedAudioAuxData, enableAux

5. Supports querying the features of the current SDK.

Since the SDK supports feature trimming, some features may be trimmed; you can use this function to quickly determine whether the current SDK supports the specified features.

For related API, please refer to isFeatureSupported

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 state (ZegoStreamQualityLevelUnknown state) every 2s. When the user remains in this state for 8s, the remote user is considered to be abnormally disconnected, and the quality abnormal state (ZegoStreamQualityLevelDie state) will be called back.

For related API, 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 API, please refer to onPlayerQualityUpdate, onPublisherQualityUpdate, onNetworkQuality

3. Optimize log reporting strategy.

Optimize the log reporting strategy, improve log upload efficiency.

4. Optimized harmonic detection algorithm for 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. Fixed a very low probability of crash in the network module.



2.21.1 Version

Release date: 2022-07-14

Bug Fixes

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



2.21.0 Version

Release date: 2022-07-08

New Features

1. Range voice supports custom distance update frequency.

The default distance update frequency of the SDK is changed from 1s to 100ms, which can basically 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 ZegoRangeAudio > setPositionUpdateFrequency

2. Support setting the low-light enhancement.

Note: The [setLowlightEnhancement] interface should be called after calling the [createEngine] 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

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

4. 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 ZEGOCLOUD technical support for related configuration.

The [ZegoStreamResourceMode] interface adds CDN_PLUS as a new ZegoResourceType. interface. You can enable CDN_PLUS 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

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 [onStop] callbacks would be triggered repeatedly when custom video processing was turned off.

For related API, please refer to enableCustomVideoProcessing

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

Release date: 2022-06-20

Bug Fixes

1. Fixed the problem that the audio device mode set before the SDK initialization does not take effect.



2.20.1 Version

Release date: 2022-06-18

Bug Fixes

1. Fixed a problem of probabilistic stream-playing failure.



2.20.0 Version

Release date: 2022-06-09

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 ZegoMediaPlayer > 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 ZEGOCLOUD 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 ZEGOCLOUD 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 ZEGOCLOUD 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. Unifies the APIs of Express-Video SDK and Express-Audio SDK.

From v2.20.0, there is no longer any API difference between Express-Video SDK and Express-Audio SDK, that is, you can easily switch from Video SDK to Audio SDK and vice versa at any time. The only difference between the two SDKs is that for the Audio SDK, some video-related APIs (such as video encoding parameter settings, ZegoCanvas parameter in startPlayingStream, etc.) have no effect after being set, and no error will be reported. After upgrading from the old version, it may cause few incompatibilities and need to be fixed. Please refer to the FAQ How to solve the compilation error after upgrading to Express v2.20.0 or above?.

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

3. When the Android platform fails to load the so library, it can throw an UnsatisfiedLinkError exception notification.

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

5. 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 ZEGOCLOUD technical support to extend the message content length.

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

2. Fixed a high probability that the switch would be invalid after using [setPlayerCanvas] to switch between two [TextureView] multiple times when the media player was playing a media file.



2.19.0 Version

Release date: 2022-05-11

New Features

1. Direct push CDN streams support pulling streams through L3.

When pushing CDN directly, without changing the push mode, the SDK pulls the stream from the customer's CDN source site, distributes the audio and video content to the audience through L3, and controls the source site resources through [ZegoResourceType]. This function is often used in live broadcast scenarios.

For related API, please refer to startPlayingStream

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

Note: Currently, only RTC scenarios are supported, and it is invalid in direct CDN and retweet CDN scenarios.

Starting from version 2.19.0, SEI (Media Supplemental Enhancement Information) can 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 before 2.19.0, the SEI data was sent along with the video frame data. Generally, the video frame rate is much lower than the audio frame rate, resulting in insufficient SEI accuracy/frequency in mixed stream alignment and accompaniment alignment scenarios.

For related API, please refer to onPlayerRecvAudioSideInfo, sendAudioSideInfo

Enhancements

1. For improved 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 streaming interface was called immediately after the network speed measurement interface was called.

2. Fixed the issue that H.265 did not take effect when only recording local media (not streaming).

3. Fixed the issue that [onEncodedDataTrafficControl] does not call back when the custom video capture function is enabled

4. Fixed the issue that when using certain Android models and certain Bluetooth headsets together, the call volume was changed from Bluetooth to loudspeaker when the acquisition was enabled.



2.18.1 Version

Release date: 2022-04-13

Bug Fixes

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

2. Fixed echo cancellation issues on some phones.



2.18.0 Version

Release date: 2022-04-09

New Features

1. Added AI noise reduction function.

Note: 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 ZEGOCLOUD 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, tapping , air conditioners, kitchen dishes, noisy restaurants, ambient wind, coughing, blowing and other non-human noises. 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 normal voice chat rooms, voice conferences, voice blackouts, and one-to-one video calls.

For related API, please refer to setANSMode

2. Support setting the playback speed of the audio effect player

After playing the sound effect, you can call the [setPlaySpeed] API in [ZegoAudioEffectPlayer] class to set four playback speeds for the sound effect (the local playback speed and the streaming speed will be set at the same time), which are 0.5x, 1.0x, 1.5x and 2x respectively, and the default is the original speed (1.0x).

For related API, please refer to ZegoAudioEffectPlayer > 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 push and pull streaming using Tencent and Wangsu's two CDN live streaming products are supported.

Configure the push protocol and QUIC version through the [ZegoCDNConfig] parameter in the [enablePublishDirectToCDN] interface. If you want to perform custom CDN streaming of the QUIC protocol, you need to configure the pull protocol through the [ZegoPlayerConfig] parameter in [startPlayingStream] and the QUIC version.

For related API, please refer to enablePublishDirectToCDN

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

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

For related API, please refer to onPublisherStreamEvent, onPlayerStreamEvent

5. Support setting muxed watermark and muxed input volume through URL.

Call startMixerTask to start or update the muxing task. It supports setting the muxing watermark and muxing input volume through [backgroundUrl] and [inputVolume] respectively.

For related API, please refer to startMixerTask

6. Supports returning to login room and exiting room results.

The [loginRoom] interface adds a [callback] parameter, which supports returning the login room result from [callback].

The [logoutRoom] interface adds a [callback] parameter, which supports returning the result of exiting the room from [callback].

For related API, please refer to loginRoom, logoutRoom

7. 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 API, please refer to onRoomStateChanged

Enhancements

1. Mixed 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 API, please refer to startMixerTask

2. Improve the error code returned by the start mixing interface [startMixerTask].

Added an error code of 1005000, indicating that the mixed streaming service has not been activated. When this error code occurs, please activate the mixed streaming service by contact ZEGOCLOUD technical support.

For related API, please refer to startMixerTask

Bug Fixes

1. Fixed the problem that some platforms use boringssl to encrypt and decrypt abnormally.

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

3. Fixed the problem that the resolution returned by the hard solution of some mobile phones was incorrect.



2.17.3 Version

Release date: 2022-03-28

Bug Fixes

1. Fixed an issue where the resolution of the [onPlayerVideoSizeChanged] callback might be inaccurate when playing stream with hardware decoding enabled on some android device models.



2.17.1 Version

Release date: 2022-03-11

Bug Fixes

1. Fixed an issue where pushing down real-time audio and video streams failed on 32-bit machines.



2.17.0 Version

Release date: 2022-03-09

New Features

1. Supports setting the minimum video frame rate and video resolution.

Added the [setMinVideoFpsForTrafficControl] and [setMinVideoResolutionForTrafficControl] interfaces, which can be used to set the minimum video frame rate 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 control the video display effect.

For related API, 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 API, please refer to startAudioVADStableStateMonitor

3. A stealth squad mode has been added to the area voice.

Added enum 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 API, 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 console, and the UI will pop up an error message when other functions of the SDK are called abnormally.

For related API, please refer to enableDebugAssistant

Enhancements

1. The authentication method is optimized.

For versions 2.17.0 and above, pass the AppSign blank or not when creating the engine, and you must pass in the Token when logging in to the room. After the authentication is passed, you can use the real-time audio and video function. For details, please refer to Control user mos.

Versions below 2.17.0, pass in AppSign when creating the engine, and use the real-time audio and video function after the authentication is passed.

Bug Fixes

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

2. Fixed the issue that when the push-end App returned to the front-end from the background, the pull-end could not receive the BreakResume event.

3. Fixed other known issues.



2.16.3 Version

Release date: 2022-02-10

Bug Fixes

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



2.16.2 Version

Release date: 2022-01-26

Bug Fixes

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



2.16.1 Version

Release date: 2022-01-20

Bug Fixes

1. Fix known issues.



2.16.0 Version

Release date: 2022-01-14

New Features

1. Game voice support setting whether to receive audio data from the specified user.

The [muteUser] interface has been added to the game voice module. Local users can set whether to receive audio data from the specified remote user through the [MuteUser] interface after initializing the game voice [CreateRangeAudio] according to their needs.

This function 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 API, please refer to muteUser

2. Pull stream quality callback [onPlayerQualityUpdate] added MOS sound quality score.

The [onPlayerQualityUpdate] callback adds a [mos] parameter, which indicates the rating of the streaming quality. When developers are more concerned about audio quality, they can use this parameter to know the current audio quality.

For related API, please refer to onPlayerQualityUpdate

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

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

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

This feature is often used for remote control, Face detection etc. scene.

For related API, please refer to setCustomVideoCaptureRegionOfInterest

4. Support specified audio device for capture/playback.

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

After creating an engine [createEngine], before pushing [startPublishingStream] or pulling [startPlayingStream], you can call the [useAudioDevice] interface to select an audio device.

For related API, please refer to useAudioDevice

5. Supports streaming based on rtmp over quic protocol.

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

In order to allow the streaming end to push 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 CDN and live PK scenarios.

6. H.265 pull stream supports automatic downgrade.

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

Version 2.15.0 and earlier: When the SDK uses [startPlayingStream] to pull the H.265 encoded stream, if the decoding frame rate is insufficient due to poor hardware performance on the streaming end, the SDK cannot actively downgrade, and the user needs to first Stop pulling the H.265 encoded stream and re-pull the H.264 encoded stream.

Version 2.16.0 and above: Added the H.265 streaming automatic downgrade policy. When using [startPlayingStream] to pull H.265 encoded streams, the SDK can compare the hardware performance of the streaming end according to the streaming quality. If the decoding frame rate is insufficient due to the difference, the H.264 encoded stream will be automatically downgraded.

For related API, 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 OS version has changed from Android 4.1 to Android 4.4. If you need to support Android 4.1, please contact ZEGOCLOUD technical support.

2. Optimized the basic beauty function.

ZEGO provides a new basic beauty function, showing users a good skin condition and creating a natural beauty effect. Developers need to call the [startEffectsEnv] interface to initialize the beauty environment before pushing the stream, and then call the [enableEffectsBeauty] interface to enable the beauty function. Through the [setEffectsBeautyParam] interface, you can adjust the degree of whitening, smoothing, sharpening, and ruddy as needed to achieve basic beauty capabilities.

This function is often used in video calls, live broadcasts and other scenarios.

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

3. Media player callback support to return video frame timestamp.

The [onVideoFrame] and [onVideoFramePixelBuffer] callbacks of the media player support returning the timestamp corresponding to the video frame.

4. Android system of version 8.0 and above supports getting CPU usage.

5. 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 API, please refer to getNetworkTimeInfo

6. Supports verifying jar and so versions when creating an engine.

When calling [createEngine] to create an engine, the SDK supports checking whether the versions of jar and so are the same. If the versions are inconsistent, a RuntimeException will be thrown.

Deleted

The old beauty 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 API, please refer to enableBeautify, enableEffectsBeauty, setBeautifyOption, setEffectsBeautyParam



2.15.0 Version

Release date: 2021-12-09

New Features

1. Support setting the device status of custom video capture.

Added the [setCustomVideoCaptureDeviceState] interface. When using custom video capture, developers can set the capture device status of the specified channel for custom video capture, and the remote can get the state change of the push stream through the [onRemoteCameraStateUpdate] callback. This function is often used in live show scenes.

For related API, please refer to setCustomVideoCaptureDeviceState

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

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

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

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

For related API, please refer to enableSoundLevelMonitor, enableFrequencySpectrumMonitor

3. Support custom video capture to send media enhancement supplementary information (SEI) synchronized with the current video frame.

When using the custom video capture function, calling the [sendSEISyncWithCustomVideo] interface can realize that while pushing the stream to transmit the video stream data, it can send the stream media enhancement supplementary information to synchronize some other additional information, which is synchronized with the current video frame. This function is often used in scenes where the playback content needs to be strongly synchronized with the video frame, such as video karaoke, and the video is strongly synchronized with the lyrics.

For related API, please refer to sendSEISyncWithCustomVideo

4. Support all-round virtual stereo.

Added support for omni-directional virtual stereo sound. The monophonic sound is processed by algorithms to simulate a somatosensory 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 API, please refer to enableVirtualStereo

5. Added local device exception callback [onLocalDeviceExceptionOccurred].

Through the [onLocalDeviceExceptionOccurred] callback, you can set the device type to be detected, such as camera, speaker, microphone, etc. Developers can handle the error callbacks of different device types accordingly.

For related API, please refer to onLocalDeviceExceptionOccurred

Enhancements

1. Mixed stream output supports advanced encoding parameter configuration.

Mixed-stream output video configuration [ZegoMixerOutputVideoConfig] Added encodeProfile and encodeLatency parameters, which are used to set the mixed-stream output video encoding specifications and the mixed-stream output video encoding delay respectively.

2. Added 1015032 error code.

Logging in to the room causes the network test to stop. As the network test consumes bandwidth, please do it before logging in to the room.

3. Added 1002066 error code.

If the user is in the server blacklist when logging in to the room, this error code will be returned, indicating that the room is forbidden to log in.

4. Added 1004072 error code.

When using the SDK to lower the latency of live streaming, this error code will be returned if you have not subscribed to the low latency live streaming service.

Bug Fixes

1. Fixes the problem that [onDeviceError] may repeat callbacks.

Deleted

1. Deprecated [onDeviceError] callback.

In order to allow developers to intuitively understand the type of abnormal device and the specific abnormal situation, the [onDeviceError] callback is abolished in 2.15.0 and above. Please use the [onLocalDeviceExceptionOccurred] callback instead.

For related API, please refer to onLocalDeviceExceptionOccurred



2.14.0 Version

Release date: 2021-11-16

New Features

1. Added real time sequential data function.

When developers need to distribute instructions such as remote control, cloud games, etc., through real-time signaling, they can obtain news from the publisher with low latency.

For related API, please refer to createRealTimeSequentialDataManager

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

Support the copyright music function to obtain copyrighted songs or accompaniment resources, and combine with the media player for local playback control. It can be used in chorus or background music scenes such as online KTV and language chat rooms.

3. Added H.265 codec exception notification.

Added a new alarm callback for insufficient H.265 decoding performance, which is used to prompt the user whether to perform downgrade processing in a scenario where the stream is pulled through the CDN. If the developer receives a 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.

H.265 codec error notifications have been added to the push stream state callback [onPublisherStateUpdate] and the pull stream state callback [onPlayerStateUpdate].

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

4. Support real-time monitoring of the first frame callback of audio and video.

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

Allows developers to customize the callback notifications for the arrival of audio and video frames, including the first audio frame arrival callback, the first video frame arrival callback, and the first video frame rendering callback.

For related API, please refer to callExperimentalAPI

5. The media player supports specifying the start playback progress when loading media resources.

The media player has a new [loadResourceWithPosition] interface, which supports specifying the start playback progress when loading media resources, in milliseconds.

For related API, please refer to ZegoMediaPlayer > loadResourceWithPosition

6. Supports setting the conversion matrix and rotation angle of the custom capture screen.

Note: This function is only valid when the custom video capture frame data type [bufferType] is set to GLTexture2D.

After receiving the [onStart] callback, the developer can call the [setCustomVideoCaptureRotation] interface to set the clockwise rotation angle of the custom capture screen of the specified push channel. Call the [setCustomVideoCaptureTransformMatrix] interface to set the custom capture image conversion matrix of the specified channel, including rotation, flip, and zoom.

When the [setCustomVideoCaptureTransformMatrix] and [setCustomVideoCaptureRotation] interfaces are called at the same time, execute [setCustomVideoCaptureTransformMatrix] first, and then execute [setCustomVideoCaptureRotation].

For related API, please refer to setCustomVideoCaptureRotation, setCustomVideoCaptureTransformMatrix

7. 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 turn on the camera focus function. Through the [setCameraFocusPointInPreview] and [setCameraExposurePointInPreview] interfaces, you can set the focus and exposure point in the preview view (every time the camera restarts the capture, Both settings will be invalid and need to be reset). Call the [setCameraFocusMode] and [setCameraExposureMode] interfaces to set the camera focus mode and exposure mode respectively.

For related API, please refer to isCameraFocusSupported, setCameraFocusMode, setCameraExposureMode

8. Added enable or disable pull flow alignment function.

This function is often used in scenes that require mixed stream alignment, such as KTV. When playing at the streaming end, use the [setPlayStreamsAlignmentProperty] interface to control whether the real-time audio and video streams need to be accurately aligned. If necessary, all the streams that contain precise alignment parameters will be aligned; if not, all streams are not aligned.

For related API, please refer to setPlayStreamsAlignmentProperty

9. Added audio device mode.

Two new modes, GENERAL3 and COMMUNICATION4, have been added to the audio device mode. GENERAL3 mode means that the pre-processing of the system is turned off, the microphone is always occupied, and the media volume is used throughout. COMMUNICATION4 mode means that the pre-processing of the system is turned on, the microphone is used for the microphone, and the microphone is released for the microphone, and the call volume is used throughout the process.

For related API, please refer to setEngineConfig

10. 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, and is used to detect whether the audio data after collection or audio pre-processing is human voice or noise.

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

11. The server supports ServerSecret smooth migration capability.

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

Support the generation of Token's secret key to realize the smooth migration ability of ServerSecret. Two ServerSecrets are enabled at the same time through the background configuration. When one of the ServerSecrets is exposed, it can be smoothly migrated to the other ServerSecret.

12. Server Token capability upgrade.

Note: If you need to use the Token to add to the blacklist function, please contact ZEGOCLOUD technical support.

Token support to be added to the blacklist: In order to prevent the old Token from attacking the new Token after the release, support for adding the Token to the blacklist is added. Token blacklist means that the Token cannot be used under the AppID within the validity period.

Token supports authentication through flow ID: To prevent the use of the same token to push other flows after passing authentication, a new token that supports the generation of a bound flow ID is added.

13. Support batch prohibition of RTC streaming and recovery of RTC streaming.

In order to ensure the successful downloading of the client, the server has added batch prohibition of RTC streaming and batch restoration of RTC streaming capabilities.

Call the batch prohibition of RTC streaming interface, you can prohibit the specified stream ID from being pushed to the RTC service in batches, and the prohibition operation will send a notification that the push is prohibited to the client that is pushing and the client that is pulling. Call the batch recovery RTC streaming interface to recover the stream IDs that are prohibited from being pushed to the RTC media service in batches.

For related APIs, please refer to Batch forbid a RTC stream / Batch resume a RTC stream

Enhancements

The processing logic of version 2.10.0 to 2.13.1 is: 1. You must both push and pull streams before you receive your own network quality callback. 2. When a stream is pulled, the user's network quality will be received only if the push-stream end has a pull-stream and the push-stream end is in the room where it is located.

The processing logic of version 2.14.0 and above is: 1. As long as it pushes or pulls a stream, it will receive its own network quality callback. 2. When you pull a stream, the pushing end is in the room where you are, and you will receive the user's network quality.

For related API, please refer to onNetworkQuality

2. The default maximum push channel number is added from 2 to 4.

Prior to 2.14.0, the default maximum number of push channels was 2 channels. If you need to support more, you need ZEGOCLOUD technical support for special package. In order to cooperate with the real-time signaling function, the default maximum number of push streams is added to 4 channels in this version.

For related API, please refer to startPublishingStream

3. Optimized API interface and error code comments.

Completed the comment optimization of all API interfaces and error codes, and added information such as "Available since", "Description", "Use cases", "When to call", "Restrictions", "Caution" and other information in the API comment , So that developers can understand the functions of the API more clearly. "Possible causes" and "Recommendations" are added to the error code to help developers better locate and solve problems.

4. Remove 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 accessed the SDK before version 2.14.0 can refer to the Test Environment Disposal Instructions for SDK upgrades and code adjustments.

5. Retweet address length limit expansion

The length limit of the mixed stream forwarding address is extended from 512 bytes to 1024 bytes.

6. Optimized the problem of inaccurate playback progress when the media player plays AAC format files.

7. The SDK package on the official website supports VP8 and MP3 codec by default. Starting from this version, no special package is required.

Deleted

1. Deprecated 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.14.0 and above. Please use the same interface without the [isTestEnv] parameter instead.



2.13.1 Version

Release date: 2021-10-15

Bug Fixes

1. Fixed a crash caused by passing in a null parameter when calling the [enablePublishDirectToCDN] interface.



2.13.0 Version

Release date: 2021-10-15

New Features

1. Added electronic sound effects.

Electronic sound effect refers to the sound that allows people to talk and sing, and after processing, it has the effect of electric sound. This function is often used in KTV and language chat room scenes.

Before [createEngine] initializes the SDK, call the [setElectronicEffects] interface to turn on the electronic sound effects, and set different modes of electronic tones and the corresponding starting pitches as needed. When this interface is not called, the electronic sound effects are turned off by default.

Developers can also preset common electronic sound effects through the [setVoiceChangerPreset] interface. Currently, it supports preset C major electronic sound effects, A minor electronic sound effects, and harmony minor electronic sound effects.

For related API, please refer to setElectronicEffects

2. Added Token expiration management mechanism.

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

Different business scenarios, time-effective restrictions on user login room, push streaming and other permissions can be achieved through Token.

When the Token expires, the server will take the initiative to reclaim the user's permissions, and the client user will be kicked out of the room and stop streaming. This mechanism can make user authority management more secure, and is often used in KTV and chat room scenarios.

For related API, please refer to renewToken, onRoomTokenWillExpire

3. Support real-time update of mixed-stream text watermark.

When live streaming uses mixed streaming, the watermark can be updated in real time on the mixed streaming output screen, so that the watermark can be refreshed synchronously when the mixed streaming is updated in real time. This function is often used in online education scenarios, such as marking the name of the teacher or class corresponding to each input stream on the mixed stream screen during class.

[ZegoMixerTask]'s mixed stream input list [ZegoMixerInput] has added a [label] field to set the relevant text watermark information on the mixed stream input video screen. Each stream of the mixed stream only supports one watermark.

For related API, please refer to startMixerTask

4. Mixed streaming supports setting the video rendering mode.

When mixing streams, you can set the rendering mode for each stream. When the resolution ratio of the mixed stream input stream is inconsistent with the layout ratio of the corresponding input stream on the mixed stream output screen, different rendering modes can be selected according to different business scenarios.

[ZegoMixerTask]’s mixed stream input list [ZegoMixerInput] has added a [renderMode] field to set the rendering mode of the mixed stream input video screen, supporting "filling mode" and "adaptation mode".

For related API, please refer to startMixerTask

Enhancements

1. Optimized the mixed flow precise alignment function.

On the push end, you can specify certain streams for precise alignment when configuring mixed streams.

For related API, please refer to setStreamAlignmentProperty

2. Optimized the interface call logic for precise alignment of mixed flow.

Call the [startPublishingStream] interface and set the [forceSynchronousNetworkTime] value in [ZegoPublisherConfig] to 1, then the SDK will wait until the NTP network time synchronization is completed before pushing the stream, and then call the [setStreamAlignmentProperty] interface to enable the mixed stream precise alignment function.

For related API, please refer to startPublishingStream, setStreamAlignmentProperty, onNetworkTimeSynchronized

3. Optimized the sound effects of recording studios, KTVs, and phonographs.

Bug Fixes

1. Fixed the crash triggered when the SDK gets the network status.

Deleted

1. Deprecate the old [onProcessCapturedAudioData] callback.

Because the timestamp collection timestamp is added to the callback, the [onProcessCapturedAudioData] callback is discarded in 2.13.0 and above, and the callback with the same name with the timestamp parameter is used instead.

For related API, please refer to onProcessCapturedAudioData

2. Deprecate the old [onProcessRemoteAudioData] callback.

Because the timestamp collection timestamp is added to the callback, the [onProcessRemoteAudioData] callback is discarded in 2.13.0 and above, and the callback with the same name with the timestamp parameter is used instead.

For related API, please refer to onProcessRemoteAudioData

3. Deprecate the old [onProcessPlaybackAudioData] callback.

Because the timestamp collection timestamp is added to the callback, the [onProcessPlaybackAudioData] callback is discarded in 2.13.0 and above, and the callback with the same name with the timestamp parameter is used instead.

For related API, please refer to onProcessPlaybackAudioData



2.12.0 Version

Release date: 2021-09-09

New Features

1. Added support for H.265 codec.

The H.265 codec complete solution is launched, which is suitable for single-anchor live broadcast and multi-person interactive live broadcast scenarios. Developers can output H.265 format video streams during encoding or mixing. H.265 saves 30% of traffic compared to H.264 under the same image quality. Before using this function, you need to contact ZEGOCLOUD technical support to activate it.

For related API, please refer to isVideoEncoderSupported, isVideoDecoderSupported, enableH265EncodeFallback, onPublisherVideoEncoderChanged

2. Added custom mixing post-processing function.

Support to obtain and modify the audio data to be played after mixing. After initializing the SDK, before [startPublishingStream], [startPlayingStream], [startPreview], [createMediaPlayer] and [createAudioEffectPlayer], call the [enableCustomAudioPlaybackProcessing] interface to enable the custom audio mixing post-processing function, and [setCustomAudioProcessHandler] to set the custom audio Handling callbacks.

For related API, please refer to enableCustomAudioPlaybackProcessing, setCustomAudioProcessHandler, onProcessPlaybackAudioData

3. Supports callback of remote speaker device status.

After successfully connecting with the remote user, when the status of the remote speaker device changes, such as turning on/off the speaker, you can call back to monitor through [onRemoteSpeakerStateUpdate].

For related API, please refer to onRemoteSpeakerStateUpdate

4. Media player supports double speed playback.

After loading the resources, call the [setPlaySpeed] interface to set the video playback speed of the media player, which supports 0.5 ~ 2.0 times, and the default is 1.0, which is the normal speed.

For related API, please refer to ZegoMediaPlayer > setPlaySpeed

5. Mixing supports spatial audio capabilities.

When using the mixing function, it is supported to set the spatial audio effect of each audio stream through the audioDirection parameter in [ZegoMixerInput].

For related API, please refer to startMixerTask

Enhancements

1. Optimized the mixed flow interface.

Optimized the calling logic of the mixed-flow interface to make the code clearer and simpler.

For related API, please refer to ZegoMixerTask

2. Optimized the ear return function.

Optimized the ear return logic to shorten the delay of ear return to 50+ ms.

3. Ear return function supports more mobile phone manufacturers.

Added support for the ear return capability of Xiaomi models.

4. Expanded the capacity of broadcast messages and barrage messages.

Starting from this version, broadcast messages and barrage messages support sending longer messages (the default limit is 1 KB). If necessary, please contact ZEGOCLOUD technical support for configuration.

5. The SDK package on the official website defaults to the media player that supports playing m3u8 format files.

Starting from this version, no special package is required.

For related API, please refer to ZegoMediaPlayer > loadResource

Bug Fixes

1. Fixed an error that may occur when sending custom messages in multi-room mode on the mobile terminal.



2.11.0 Version

Release date: 2021-08-27

New Features

1. Add range audio feature module.

Range audio is a scene-based voice interactive product developed for social and chicken-eating games. The product provides range voice, 3D sound effects and team voice functions.

Range audio: the listener in the room has a range limit on the receiving distance of the audio. If the distance between the speaker and himself exceeds this range, the sound cannot be heard. To ensure a clear voice, when there are more than 20 people nearby, you can only hear the 20 speakers closest to you.

3D sound effect: The sound has a sense of 3D space and is attenuated by distance.

Team mode: Players can choose to join a team, and support free switching between World mode and Team mode in the room.

For related API, please refer to createRangeAudio, destroyRangeAudio, setEventHandler, setAudioReceiveRange, updateSelfPosition, updateAudioSource, enableSpatializer, enableMicrophone, enableSpeaker, setRangeAudioMode, setTeamID

Enhancements

1. Optimize core API annotation documents and error codes.



2.10.1 Version

Release date: 2021-08-20

Bug Fixes

1. Fix the problem that it may take a long time to log in to the room

For related API, please refer to loginRoom

2. Fix the problem that log upload may fail

For related API, please refer to uploadLog



2.10.0 Version

Release date: 2021-08-10

New Features

1. Added automatic mixing function.

The SDK can specify a room, and the ZEGO real-time audio and video server automatically mixes all audio streams in the room (currently only supports mixed audio streams), which is often used in pure language chat scenes. Compared with manual mixing, this function reduces the complexity of developer access and does not need to manage the life cycle of the audio stream in the specified room.

For related API, please refer to startAutoMixerTask, stopAutoMixerTask

2. Support setting mixed flow background color.

Added [setBackgroundColor] to the mixed-flow task object [ZegoMixerTask] to set the mixed-flow background color.

For related API, please refer to startMixerTask

3. Added the function of turning on the voice detection and the voice callback of the voice part.

Developers often only pay attention to the human voice when monitoring sound wave callbacks. They can call the [startSoundLevelMonitor] interface and pass in [ZegoSoundLevelConfig] to enable VAD human voice detection. The SDK also adds parameters for whether to include human voice detection in the local sound wave callback [onCapturedSoundLevelInfoUpdate] and remote audio sound wave callback [onRemoteSoundLevelInfoUpdate].

For related API, please refer to startSoundLevelMonitor, onCapturedSoundLevelInfoUpdate, onRemoteSoundLevelInfoUpdate

4. Media player supports playing binary files.

After the developer has written the playback data into the memory, he can directly use the media player to play it without writing it into a file for playback.

For related API, please refer to ZegoMediaPlayer > loadResourceFromMediaData

5. Added camera exposure compensation function.

Developers can call the [setCameraExposureCompensation] interface to set the camera exposure compensation value after opening the preview. The value range is [-1, 1]. The smaller the value, the darker the picture, and the larger the value, the brighter the picture.

For related API, please refer to setCameraExposureCompensation

Enhancements

1. Device exception notification [onDeviceError] added the [deviceID] parameter to ensure the uniqueness of the device.

When using multiple video or audio devices, the [deviceID] parameter can be used to accurately identify the device reporting the error and troubleshoot the problem more efficiently.

2. Optimized the configuration of the number of streams. This version of the SDK supports 50 streams by default, and it will be set to 12 streams by default during runtime.

When developers need to support more than 12 streams, they need to contact ZEGOCLOUD technical support settings.

3. Optimize coding during screen capture to reduce code rate fluctuations

Bug Fixes

1. Fixed a crash issue under certain conditions.

2. Fixed possible content leakage issues.

3. Fixed the problem that it took a long time to upload logs.

4. Fixed an issue where the media player was truncated because the path was too long.

Deleted

1. Deprecate the old [onNetworkQuality] callback.

The parameter definition is inaccurate. The [onNetworkQuality] callback is abandoned in 2.10.0 and above, and the callback of the same name with the ZegoStreamQualityLevel enumeration is used instead.

For related API, please refer to onNetworkQuality



2.9.3 Version

Release date: 2021-07-13

Bug Fixes

1. Fixed the issue that some resources were not released in time when invoking [LogoutRoom].

2. Fixed other known issues.



2.9.0 Version

Release date: 2021-07-09

New Features

1. Support pushing still pictures when the camera is closed.

When the camera is turned off, it supports continuous push of still pictures in JPEG/JPG, BMP and HEIF formats. For example, when the anchor exits the background, the camera will be actively turned off. At this time, the audience side needs to display the image of the anchor temporarily leaving.

After initializing the SDK, set the path of the pushed static image through the [setDummyCaptureImagePath] interface before closing the camera. After starting the normal push, call the [enableCamera] interface to turn off the camera and start pushing the still image, call the [enableCamera] interface to open The camera will end pushing still pictures.

For related API, please refer to setDummyCaptureImagePath

Added uplink and downlink network quality callbacks for local and remote users [onNetworkQuality]. By default, the network status of the local and each remote user (including unknown, excellent, good, medium, poor, network Disconnected). Developers can use this function when they want to analyze the network conditions on the link, or to understand the network conditions of local and remote users.

For related API, please refer to onNetworkQuality

3. Support to get NTP time.

When performing multi-terminal synchronization behaviors or time-consuming statistics, network time synchronization is required. The SDK adds the function of obtaining the NTP time. You can obtain the NTP time stamp through the [getNetworkTimeInfo] interface. Please contact ZEGOCLOUD technical support before using this function.

For related API, please refer to getNetworkTimeInfo

4. Added mixed flow automatic and precise alignment function.

Based on the NTP time of the ZEGO server, the playback time of each stream is automatically aligned when the stream is mixed. Please contact ZEGOCLOUD technical support before using this function.

Enhancements

1. Optimized the multi-room function.

The same user can join multiple rooms at the same time, and in multiple rooms at the same time (currently the default is up to 5 rooms at the same time) push, pull, send real-time messages, and receive message callbacks. This function can isolate the messages and callbacks of multiple rooms, and realize more flexible mic-linking services. ZEGO is recommended for super small class scenes with inter-room interconnection and online education.

You need to call [ZegoRoomMode] to set the multi-room mode before initializing the SDK, and then call the [loginRoom] interface to log in to the multi-room.

For related API, please refer to setRoomMode, loginRoom

2. Optimized the logic of exiting the room.

Developers can call the [logoutRoom] interface to log out of the current room without filling in the roomID. If the multi-room function is used, calling this interface will exit all rooms.

For related API, please refer to logoutRoom

Added audioCumulativeBreakCount, audioCumulativeBreakTime, audioCumulativeBreakRate and other parameters in the pull-stream quality callback, which provide more detailed data of pull-stream stuck.

For related API, please refer to onPlayerQualityUpdate

4. Optimized the network test function.

When calling the [startNetworkSpeedTest] interface to start the network speed test, you can set the callback period (3000 ms by default).

For related API, please refer to startNetworkSpeedTest

5. Optimized the streaming function, support for mixing in streams with only video but no audio (pure video).

6. Optimized the media player, the error of calling the [seekTo] interface to specify the playback progress is shortened to 10 ms.

7. Optimized internal audio rendering, supporting single channel audio.

8. Media player supports playing mkv files.

Bug Fixes

1. Fixed an issue where the media player’s screen was abnormal after being minimized and then maximized.

2. Fixed an error when opening the file.

3. Fixed an issue where recording abnormalities occurred when only pushing audio streams and sending SEI.

4. Fixed an issue where the last frame of the screen was displayed abnormally after stopping streaming.

5. Fixed the problem of abnormal ear return when inserting headphones during the streaming process.

Deleted

1. Deprecated [loginMultiRoom] interface.

In order to improve the multi-room function and remove the old master-slave room concept, the [loginMultiRoom] interface has been abandoned in 2.9.0 and above. If you need to implement a new multi-room function, please call the [setRoomMode] function to set the multi-room mode before the engine is initialized, and then use [loginRoom] to log in to the multi-room. If you call the [loginRoom] function to log in to the multi-room, please make sure to pass in the same User Info.

For related API, please refer to setRoomMode, loginRoom



2.8.0 Version

Release date: 2021-06-11

New Features

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

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

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

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

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

For related API, please refer to callExperimentalAPI

3. Added spatial audio capabilities.

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

For related API, please refer to enablePlayStreamVirtualStereo

Enhancements

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

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

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

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

Bug Fixes

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

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



2.7.0 Version

Release date: 2021-04-29

New Features

1. Add experimental API functions.

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

For related API, please refer to callExperimentalAPI

Bug Fixes

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

Deleted

1. Deprecated the [enableAudioDataCallback] interface.

The [enableAudioDataCallback] interface is obsolete in 2.7.0 and above, please use the [startAudioDataObserver] interface instead.

For related API, please refer to startAudioDataObserver



2.6.0 Version

Release date: 2021-04-15

New Features

1. Added focus voice feature in mix stream.

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

For related API, please refer to startMixerTask

Bug Fixes

1. Fix known issues



2.5.0 Version

Release date: 2021-04-01

New Features

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

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

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

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

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

For related API, please refer to ZegoMediaPlayer > setNetWorkBufferThreshold



2.4.1 Version

Release date: 2021-03-25

Bug Fixes

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



2.4.0 Version

Release date: 2021-03-18

New Features

1. Media player added screenshot function.

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

For related API, please refer to ZegoMediaPlayer > takeSnapshot

2. Support setting and obtaining audio quality configuration.

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

For related API, please refer to setAudioConfig, getAudioConfig

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

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

For related API, please refer to setTrafficControlFocusOn

4. Add local preview first frame rendering callback.

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

For related API, please refer to onPublisherRenderVideoFirstFrame

5. Media player adds precise search function.

The timestamp specified by normal seek may not an I frame, and then returns the I frame near the specified timestamp, which is not so accurate. But the accurate seek, when the specified timestamp is not an I frame, it will use the I frame near the specified timestamp to decode the frame of the specified timestamp.

For related API, please refer to ZegoMediaPlayer > enableAccurateSeek

6. Support to mute or resume all streams' audio data being playing

This function can be used when you need to mute the audio data of all the playing streams at one time.

For related API, please refer to muteAllPlayStreamAudio

7. Support to mute or resume all streams' video data being playing

This function can be used when you need to mute the video data of all the playing streams at one time.

For related API, please refer to muteAllPlayStreamVideo

Enhancements

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

Bug Fixes

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

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



2.3.1 Version

Release date: 2021-03-05

Bug Fixes

1. Fix known issues



2.3.0 Version

Release date: 2021-03-04

New Features

1. Added a interface for setting log attributes.

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

For related API, please refer to setLogConfig

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

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

For related API, please refer to setApiCalledCallback

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

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

For related API, please refer to setPlayStreamVideoType

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

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

For related API, please refer to setAudioRouteToSpeaker

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

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

For related API, please refer to setAllPlayStreamVolume

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

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

For related API, please refer to startNetworkProbe, stopNetworkProbe

Enhancements

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

Bug Fixes

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

Deleted

1. Deprecated [setPlayStreamVideoLayer] interface.

Because the view type parameters that are more general and easier to understand are defined, the new interface itself can clearly describe the concept of playing streams and switching between large and small streams, so as to avoid misunderstandings for developers, the [setPlayStreamVideoLayer] interface is abandoned in 2.3.0 and above, and the [setPlayStreamVideoType] interface is used instead.

For related API, please refer to setPlayStreamVideoType

2. In order to reflect the timing requirements and functional independence of setting the Log property in the SDK, and to avoid misuse by developers, therefore the [logConfig] property of the [ZegoEngineConfig] class is discarded, and the [setLogConfig] interface is added to implement the original function.

For related API, please refer to setLogConfig

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

Switch the console printing function by setting [key] to [set_verbose] and [value] to [true] or [false].

For related API, please refer to setEngineConfig

4. Deprecated the [setBuiltInSpeakerOn] interface.

Due to naming conventions, in order to reflect that the interface itself can clearly describe the concept of audio routing and avoid misunderstandings for developers, the [setBuiltInSpeakerOn] interface is abandoned in 2.3.0 and above. Please use [setAudioRouteToSpeaker] to implement the original function.

For related API, please refer to setAudioRouteToSpeaker



2.2.1 Version

Release date: 2021-02-04

Bug Fixes

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

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

For related API, please refer to sendCustomAudioCaptureAACData, sendCustomAudioCapturePCMData

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

For related API, please refer to onRemoteVideoFrameEncodedData



2.2.0 Version

Release date: 2021-01-28

New Features

1. Add custom video processing function.

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

For related API, please refer to enableCustomVideoProcessing

2. Add RoomSessionID information for audio and video calls.

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

For related API, please refer to onRoomStateUpdate

3. Added SEI callback for media player

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

4. Support setting advanced configuration when start mixer task

Add [advancedConfig] parameter for [ZegoMixerTask] to support advance configuration for mixer task. if you need to use it, please contact ZEGOCLOUD technical support.

For related API, please refer to startMixerTask

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

Enhancements

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



2.1.1 Version

Release date: 2021-01-21

Bug Fixes

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

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

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



2.1.0 Version

Release date: 2021-01-14

New Features

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

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

For related API, please refer to setPlayStreamBufferIntervalRange

Enhancements

1. Refactor and optimize the Android JNI layer

Bug Fixes

1. Fix known problems



2.0.1 Version

Release date: 2021-01-07

Bug Fixes

1. Fix known problems



2.0.0 Version

Release date: 2020-12-31

New Features

1. Added low latency live broadcast feature.

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

For related API, please refer to startPlayingStream

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

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

For related API, please refer to setVideoConfig

Bug Fixes

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

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

For related API, please refer to sendCustomCommand

Deleted

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

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

For related API, please refer to enableCustomVideoCapture

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

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

For related API, please refer to enableCustomVideoRender

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

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

For related API, please refer to destroyEngine

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

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

For related API, please refer to onPlaybackAudioData

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

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

For related API, please refer to muteSpeaker

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

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

For related API, please refer to createMediaPlayer

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

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

For related API, please refer to ZegoMediaPlayer > setPublishVolume, ZegoMediaPlayer > setPlayVolume



1.20.1 Version

Release date: 2020-12-24

Bug Fixes

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

2. Fixed possible frame skipping issues in media players.



1.20.0 Version

Release date: 2020-12-17

New Features

1. Added network speed measurement function.

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

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

2. Added network mode changed notification callback.

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

For related API, please refer to onNetworkModeChanged

3. Added camera zoom function.

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

For related API, please refer to getCameraMaxZoomFactor, setCameraZoomFactor

4. Added audio route changed notification callback.

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

For related API, please refer to onAudioRouteChange

5. Added GL_TEXTURE_EXTERNAL_OES type for custom video capture function.

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

For related API, please refer to enableCustomVideoCapture, sendCustomVideoCaptureTextureData

Bug Fixes

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

For related API, please refer to startRecordingCapturedData, stopRecordingCapturedData



1.19.1 Version

Release date: 2020-12-10

Enhancements

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

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

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

Bug Fixes

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

For related API, please refer to setSEIConfig

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

For related API, please refer to startPlayingStream

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

For related API, please refer to ZegoAudioEffectPlayer > seekTo

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



1.19.0 Version

Release date: 2020-12-03

New Features

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

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

For related API, please refer to startPerformanceMonitor, stopPerformanceMonitor

2. Added streaming media encryption function.

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

For related API, please refer to setPublishStreamEncryptionKey, setPlayStreamDecryptionKey

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

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

For related API, please refer to onPlayerQualityUpdate

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

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

Enhancements

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

For related API, please refer to loginRoom

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

For related API, please refer to sendBroadcastMessage

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

For related API, please refer to startRecordingCapturedData

4. The media player newly supports m3u8 format

if you need to use it, please contact ZEGOCLOUD technical support.

For related API, please refer to ZegoMediaPlayer > loadResource

Deleted

1. Deprecated the videoLayer property in [ZegoPlayerConfig], please use [setPlayStreamVideoLayer] instead. This interface supports dynamically setting layers before and after playing.



1.18.1 Version

Release date: 2020-11-24

Bug Fixes

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



1.18.0 Version

Release date: 2020-11-19

New Features

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

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

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

2. Added SEI setting type function.

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

For related API, please refer to setSEIConfig

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

For related API, please refer to onRoomStreamUpdate

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

For related API, please refer to onPlayerAudioData

Bug Fixes

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

For related API, please refer to startPlayingStream

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

For related API, please refer to mutePlayStreamAudio

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

For related API, please refer to mutePlayStreamVideo

Deleted

1. Deprecate the old [setReverbParam] interface.

In order to support more reverberation parameters, and set more rich effects, the [setReverbParam] interface is obsolete in version 1.18.0 and above. Please use the [setReverbAdvancedParam] interface with ZegoReverbAdvancedParam type parameters instead.

For related API, please refer to setReverbAdvancedParam

2. Deprecate the old [onRoomStreamUpdate] callback.

The [onRoomStreamUpdate] callback is obsolete in version 1.18.0 and above. Please use the callback with the same name with the extended data parameter of extendedData instead. extendedData is used to identify the messages attached to stream updates, such as the reason for stream deletion, so the old interface is discarded.

For related API, please refer to onRoomStreamUpdate



1.17.5 Version

Release date: 2020-11-05

Enhancements

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

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

Bug Fixes

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

For related API, please refer to sendSEI



1.17.0 Version

Release date: 2020-10-22

New Features

1. Added support for more voice changer effects.

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

For related API, please refer to setVoiceChangerPreset

2. Added support for setting reverb echo parameters.

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

For related API, please refer to setReverbEchoParam

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

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

For related API, please refer to ZegoMediaPlayer > setVoiceChangerParam

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

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

For related API, please refer to takePublishStreamSnapshot, takePlayStreamSnapshot

5. Added support for transient noise suppression.

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

For related API, please refer to enableTransientANS

6. Media Player added support for switching audio tracks.

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

For related API, please refer to ZegoMediaPlayer > setAudioTrackIndex

Enhancements

1. Android SDK minimum supported operating system version changes.

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

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

For related API, please refer to onPlayerQualityUpdate

Bug Fixes

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

Deleted

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

For related API, please refer to setVoiceChangerPreset, setVoiceChangerParam

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

For related API, please refer to setReverbPreset, setReverbAdvancedParam



1.16.1 Version

Release date: 2020-10-15

Enhancements

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

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

Bug Fixes

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

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



1.16.0 Version

Release date: 2020-09-24

New Features

1. Add audio effect player function

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

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

For related API, please refer to createAudioEffectPlayer, destroyAudioEffectPlayer

Bug Fixes

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

For related API, please refer to onRoomStreamExtraInfoUpdate

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

For related API, please refer to setEventHandler



1.15.2 Version

Release date: 2020-09-17

Bug Fixes

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

For related API, please refer to onRoomUserUpdate



1.15.0 Version

Release date: 2020-09-10

New Features

1. Add media player volume control function

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

For related API, please refer to ZegoMediaPlayer > setPublishVolume, ZegoMediaPlayer > setPlayVolume

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

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

For related API, please refer to setAudioCaptureStereoMode, setAudioConfig

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

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

For related API, please refer to startSoundLevelMonitor, startAudioSpectrumMonitor

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

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

For related API, please refer to switchRoom

Enhancements

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

Bug Fixes

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

Deleted

1. Deprecated the [getVolume] API in the media player class, please use [getPlayVolume] and [getPublishVolume] instead

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

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



1.14.0 Version

Release date: 2020-08-27

New Features

1. Added switch room feature

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

For related API, please refer to switchRoom

2. Added traffic control callback when using custom video capture

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

For related API, please refer to onEncodedDataTrafficControl

Enhancements

1. Increase the trigger timing of onRoomStreamExtraInfoUpdate

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

For related API, please refer to onRoomStreamExtraInfoUpdate

Bug Fixes

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

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

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

For related API, please refer to onPlayerRecvSEI

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



1.13.0 Version

Release date: 2020-08-13

New Features

1. Added multi-room feature

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

For related API, please refer to [loginMultiRoom]

2. Added room extra message function

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

For related API, please refer to setRoomExtraInfo

3. Added audio pre/post processing function

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

For related API, please refer to enableCustomAudioCaptureProcessing, enableCustomAudioRemoteProcessing

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

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

Enhancements

1. Expand the volume range for publishing/playing stream

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

For related API, please refer to setCaptureVolume, setPlayVolume



1.12.3 Version

Release date: 2020-08-06

Bug Fixes

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

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

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



1.12.0 Version

Release date: 2020-07-30

New Features

1. Add sound equalizer (EQ) function

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

For related API, please refer to setAudioEqualizerGain



1.11.4 Version

Release date: 2020-07-23

Bug Fixes

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

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

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

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

5. Fix the problem of JNI sample rate conversion.



1.11.0 Version

Release date: 2020-07-15

New Features

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

Enhancements

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

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

Bug Fixes

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

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



1.10.0 Version

Release date: 2020-06-30

New Features

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

Developers can build related audio preprocessing effects into their apps.

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

2. Added a new feature for local recording.

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

For related API, please refer to startRecordingCapturedData, stopRecordingCapturedData

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

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

For related API, please refer to [enableAudioDataCallback]

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

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

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

For related API, please refer to setANSMode

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

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

For related API, please refer to enableCustomAudioIO

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

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

Enhancements

1. Added a new error code 1001011.

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



1.9.3 Version

Release date: 2020-06-28

Bug Fixes

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



1.9.2 Version

Release date: 2020-06-20

Bug Fixes

1. Fix the issue of onMixerSoundLevelUpdate callback.



1.9.1 Version

Release date: 2020-06-17

Bug Fixes

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



1.9.0 Version

Release date: 2020-06-15

New Features

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

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

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

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

Bug Fixes

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

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

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

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

Deleted

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



1.8.2 Version

Release date: 2020-06-11

Bug Fixes

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

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

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



1.8.0 Version

Release date: 2020-05-31

New Features

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

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

Bug Fixes

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

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



1.7.9 Version

Release date: 2020-05-18

Bug Fixes

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

2. Fix no log when first createEngine issue.

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



1.7.5 Version

Release date: 2020-05-15

New Features

1. Add error code 1000008.

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

Bug Fixes

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

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

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



1.7.0 Version

Release date: 2020-04-30

New Features

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

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

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

Bug Fixes

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



1.6.0 Version

Release date: 2020-04-15

New Features

Enhancements

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

Bug Fixes

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

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



1.5.6 Version

Release date: 2020-04-05

Bug Fixes

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

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

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



1.5.5 Version

Release date: 2020-03-31

Enhancements

1. Optimizing API annotations.



1.5.1 Version

Release date: 2020-03-19

Bug Fixes

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

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

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



1.5.0 Version

Release date: 2020-03-14

New Features

1. Added scenario pre-configuration properties.

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

2. Added the support for publishing the auxiliary stream.

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

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

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

4. Added the support for stream publishing traffic control.

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

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

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

For related API, please refer to enablePublishDirectToCDN

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

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

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

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

8. Added the support for sending barrage messages.

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

For related API, please refer to sendBarrageMessage

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

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

Enhancements

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

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



1.4.0 Version

Release date: 2020-02-13

New Features

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



1.3.5 Version

Release date: 2020-01-17

Bug Fixes

1. Fix some problems of the media player.



1.3.4 Version

Release date: 2019-12-27

New Features

1. Added the MediaPlayer module.

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

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



1.3.3 Version

Release date: 2019-12-13

New Features

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

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

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

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

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

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

Enhancements

1. Optimized the logging feature.



1.2.1 Version

Release date: 2019-11-27

New Features

1. Added the mixer (stream mixing) module.

2. Added the IM (instant messaging) module.



1.1.1 Version

Release date: 2019-11-11

New Features

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

Bug Fixes

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



1.1.0 Version

Release date: 2019-11-01

New Features

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



Page Directory