Voice 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
      • Set up common audio config
      • Check the room connection status
  • Best practices
    • Implement a live audio room
  • Upgrade using advanced features
    • Advanced features
      • Configure the audio
        • Beautify & Change the voice
      • Improve audio quality
        • Test network and devices in advance
        • Monitor streaming quality
        • Visualize the sound level
      • Message signaling
        • Broadcast real-time messages to a room
        • Convey extra information using SEI
        • Quotas and limits
      • Play media files
        • Play media files
        • Play sound effects
      • Mix the streams
      • Record media data
      • Encrypt the streams
    • Distincitve features
      • Join multiple rooms
      • Customize the audio
      • Play streams via URL
      • Low-latency live streaming
  • Resources & Reference
    • SDK
    • Sample code
    • API reference
    • Debugging
    • FAQs
    • Key concepts
  • Documentation
  • Voice Call
  • Resources & Reference
  • SDK
  • Release notes

Release notes

Last updated:2024-03-29 20:13

3.13.2 Version

Release date: 2024-03-29

Bug Fixes

1. Fixed the problem of data loss when reporting quality or billing failed.



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

Enhancements

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

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

For related API, please refer to onMediaDataPublisherFileClose

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

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

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

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



3.11.0 Version

Release date: 2023-11-29

New Features

1. All network requests support the IPv6 protocol.

2. Real-time room messaging supports sending transparent messages.

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

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

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

For related API, please refer to sendTransparentMessage

3. Automatic mixing supports setting water level.

Note:

  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

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

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

5. Custom audio offset value is supported for mixing.

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

For related API, please refer to ZegoMixerInput > advancedConfig

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

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

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

7. 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 the AEC (Acoustic Echo Cancellation) algorithm to achieve better AEC performance.

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

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

4. Optimize multi-device login logic.

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



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

3. Supports obtaining and uploading audio Dump files.

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

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

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

Enhancements

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

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

For related API, please refer to startNetworkSpeedTest

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

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

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

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

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

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

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

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

For related API, please refer to setPlayMediaStreamType

Bug Fixes

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

2. Fixed 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. Added SEI callback with timestamp.

For related API, please refer to onPlayerRecvMediaSideInfo

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

For related API, please refer to enablePublishDirectToCdn

3. Supports AI-balanced noise reduction mode.

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

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

For related API, please refer to ZegoANSModeAIBalanced

Enhancements

1. Optimize [setLogConfig] interface.

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

For related API, please refer to setLogConfig, setEngineConfig

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

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

Bug Fixes

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

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

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

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

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



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. 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 URL length of resources loaded by mediaplayers, with a maximum support of 2048 bytes.

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

Bug Fixes

1. Fix the problem of dual-voice switching caused by invalid microphones.



3.7.0 Version

Release date: 2023-07-13

New Features

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

2. 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. In the publish-play stream retry state caused by network disconnection, support callback for local network quality.

For related API, please refer to onNetworkQuality

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

For related API, please refer to submitLog

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



3.6.0 Version

Release date: 2023-06-09

New Features

1. Added Enhanced KTV reverb effect.

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

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

For related API, please refer to setReverbPreset

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

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

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

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

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

For related API, please refer to ZegoMediaPlayer > setPlaySpeed

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

Bug Fixes

1. Fix the problem that the media player cannot make the playback progress jump to 0 through the seekTo interface in some m3u8 file formats.

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



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



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

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



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

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 Voice 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-audio:x.y.z to im.zego:express-audio:x.y.z, see Integrate the SDK documentation for more details.



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 occasional crash of audio player.



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

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

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

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

5. Support dual channel acquisition in SPEAKER mode

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

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

Enhancements

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

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

3. 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 the logs currently being uploaded may crash when the network status is switched from having a network to having no network.

2. Fixed GetCallbackController non thread safety issue.

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

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

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

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

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

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

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

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

3. Added debugging assistant function.

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

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

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

5. 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. Android system of version 8.0 and above supports getting CPU usage.

3. Optimize NTP time error.

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

For related API, please refer to getNetworkTimeInfo

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



2.15.0 Version

Release date: 2021-12-09

New Features

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bug Fixes

1. Fixed an error when opening the file.

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

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

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

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

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

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

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

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

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

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



2.2.0 Version

Release date: 2021-01-28

New Features

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

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

3. 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. Fix the problem that the AudioEffectPlayer loads resources and the timing of callback loading results is inaccurate.

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

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

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

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

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

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

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 occasional popping sound when the sound effect player set the specified playback progress.

For related API, please refer to ZegoAudioEffectPlayer > seekTo

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

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



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. Optimize the call timing of [mutePlayStreamAudio], the settings can take effect before and after streaming.

For related API, please refer to mutePlayStreamAudio

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

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

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

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 onPlayerRecvSEI will receive the SEI attached to the encoder or the video file itself.

For related API, please refer to onPlayerRecvSEI



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

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.



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

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 feature for setting noise suppression mode. By default, the noise suppression mode is set to Medium.

For related API, please refer to setANSMode

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



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

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

Bug Fixes

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

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

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



1.8.2 Version

Release date: 2020-06-11

Bug Fixes

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

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



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

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

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

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

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

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.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 checking the Picture Order Count (POC).

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