Video Call
  • iOS : Objective-C
  • Android
  • macOS
  • Windows
  • Linux
  • Web
  • WeChat Mini Program
  • Flutter
  • Electron
  • Unity3D
  • uni-app
  • React Native
  • Cocos2D
  • Introduction
  • Sample codes
  • Client SDKs
    • SDK downloads
    • Release notes
    • Upgrade guide
  • Getting started
    • Integrate the SDK
    • Implement a basic video call
    • Use Tokens for authentication
  • Guides
    • Common video config
    • Common audio config
    • Real-time messaging
    • Enhancing call quailty
    • Stream mixing
    • Playing media files
    • Playing streams via URL
    • Basic face beautification features
    • Voice changing/Reverb/Virtual stereo
    • Screen sharing
    • Local media recording
    • Advanced features
    • Quotas and Limits
  • Tutorials
  • Error codes
  • Server APIs
  • API Documents
  • FAQ

Release notes

Last updated:2022-11-25 17:55

3.0.3 Version

Release date: 2022-11-25

Bug Fixes

1. Fixed the possible crash of hardware decoding on iOS, macOS and Windows platforms.



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.



3.0.1 Version

Release date: 2022-10-31

Bug Fixes

1. Fixed the problem of iOS hardware decoding failure.

For related API, please refer to enableHardwareDecoder



3.0.0 Version

Release date: 2022-10-28

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

New Features

1. New video super-resolution capability

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

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

For related API, please refer to enableVideoSuperResolution, onPlayerVideoSuperResolutionUpdate

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

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

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

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

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

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

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

For related API, please refer to createRangeScene

4. Added audio and video for 10000 people

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

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

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

For related API, please refer to createRangeScene

5. Scenario of adding room dimensions

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

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

For related API, please refer to setRoomScenario

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

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

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

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

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

For related API, please refer to isVideoEncoderSupported, isVideoDecoderSupported

7. Added switch interface for acquiring GPS information

Note: This function is enabled by default. If you need to disable this function, please contact ZEGO 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 ZEGO technical support to set it.

8. New video first frame callback based on camera opening

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

For related API, please refer to onPlayerRenderCameraVideoFirstFrame

Enhancements

1. Optimized for 1v1 pure RTC call scenarios

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

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

2. Optimize space audio function

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

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

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

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

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

Bug Fixes

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

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

3. Fixed GetCallbackController non thread safety issue.

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

Deleted

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

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

2. Dropped support for bitcode

Since version 3.0.0, bitcode is no longer supported in the iOS SDK. Please refer to Xcode 14 Release Notes for more details.

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



2.23.0 Version

Release date: 2022-09-09

New Features

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

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

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

For related API, please refer to setAppOrientationMode

Enhancements

1. Objective-C 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 Objective-C SDK; since the C++ API is in the form of Header-Only, only using the Objective-C 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.



2.22.0 Version

Release date: 2022-08-09

New Features

1. Add support for SOCKS5 client proxy.

In an intranet or firewall scenario, you can interact with the public network through a proxy server, and set the proxy server address through [setEngineConfig] to ensure that the ZEGO's cloud-based RTC service is normal. Currently only supports SOCKS5 protocol.

For related API, please refer to setEngineConfig

2. Low-light enhancement supports using Metal.

Note: Low-light enhancement uses OpenGL by default, if you need to specify Metal, please contact ZEGO technical support.

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

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

  1. It does not supports B frame.

For related API, please refer to enableCustomVideoCapture

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

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

6. Supports querying the features of the current SDK.

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

For related API, please refer to isFeatureSupported

Enhancements

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

When the remote user is abnormal, [onNetworkQuality] will call back the quality unknown state (ZegoStreamQualityLevelUnknown state) every 2s. When the user remains in this state for 8s, the remote user is considered to be abnormally disconnected, and the quality abnormal state (ZegoStreamQualityLevelDie state) will be called back.

For related API, please refer to onNetworkQuality

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

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

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

3. Optimize log reporting strategy.

Optimize the log reporting strategy, improve log upload efficiency.

4. Optimized harmonic detection algorithm for AGC.

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

Bug Fixes

1. Fixed a very low probability of crash in the network module.



2.21.1 Version

Release date: 2022-07-14

Bug Fixes

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



2.21.0 Version

Release date: 2022-07-08

New Features

1. Range voice supports custom distance update frequency.

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

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

For related API, please refer to ZegoRangeAudio > setPositionUpdateFrequency

2. Support setting the low-light enhancement.

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

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

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

For related API, please refer to setLowlightEnhancement

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

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

For related API, please refer to startMixerTask

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

Note: If you want to control the stream-playing mode from the cloud by more criteria such as region and user, please contact ZEGO 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.

Bug Fixes

1. Fixed an issue where [onStop] callbacks would be triggered repeatedly when custom video processing was turned off.

For related API, please refer to enableCustomVideoProcessing

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

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



2.20.2 Version

Release date: 2022-06-20

Bug Fixes

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



2.20.1 Version

Release date: 2022-06-18

Bug Fixes

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



2.20.0 Version

Release date: 2022-06-09

New Features

1. Media player supports setting the channel.

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

For related API, please refer to setActiveAudioChannel

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

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

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

For related API, please refer to ZegoMediaPlayer > clearView

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

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

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

For related API, please refer to enableCameraAdaptiveFPS

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

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

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

For related API, please refer to startMixerTask

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

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

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

6. Supports linearly increasing volume gain.

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

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

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

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

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

For related API, please refer to startPublishingStream

Enhancements

1. 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. The echo cancellation has been optimized to solve the swallowed sound phenomenon in KTV and other scenarios.

4. Added 1009013 error code.

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

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

Release date: 2022-05-11

New Features

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

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

For related API, please refer to startPlayingStream

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

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

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

In versions before 2.19.0, the SEI data was sent along with the video frame data. Generally, the video frame rate is much lower than the audio frame rate, resulting in insufficient SEI accuracy/frequency in mixed stream alignment and accompaniment alignment scenarios.

For related API, please refer to onPlayerRecvAudioSideInfo, sendAudioSideInfo

Enhancements

1. For improved security, this release upgrades curl to 7.82.0.

Bug Fixes

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

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

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

4. Fixed an issue where the iOS SDK depended on CocoaPods could not package the Release simulator architecture.



2.18.1 Version

Release date: 2022-04-13

Bug Fixes

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



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 ZEGO Technical Support.

AI noise reduction means that the SDK will perform noise reduction processing on the sound collected by the microphone. In the case of normal processing of the original steady-state noise, it will also deal with non-steady-state noise, mainly including mouse, keyboard sound, 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 issue that creating and destroying an engine multiple times on the iOS platform may cause the setting of the maximum retry time to fail when the network is disconnected.



2.17.1 Version

Release date: 2022-03-11

Bug Fixes

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



2.17.0 Version

Release date: 2022-03-09

New Features

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

Added the [setMinVideoFpsForTrafficControl] and [setMinVideoResolutionForTrafficControl] interfaces, which can be used to set the minimum video frame rate and resolution by calling the interface when the user's network is poor and the flow control is turned on, helping the user to comprehensively control the video display effect.

For related API, please refer to setMinVideoFpsForTrafficControl, setMinVideoResolutionForTrafficControl

2. Support steady-state voice setting detection period parameter.

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

For related API, please refer to startAudioVADStableStateMonitor

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

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

For related API, please refer to setRangeAudioMode

4. Added debugging assistant function.

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

Added the [enableDebugAssistant] interface. The developer calls this interface to enable the debugging assistant function. The SDK will print the log to the console, and the UI will pop up an error message when other functions of the SDK are called abnormally.

For related API, please refer to enableDebugAssistant

Enhancements

1. The authentication method is optimized.

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

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

Bug Fixes

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

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

3. Fixed other known issues.



2.16.3 Version

Release date: 2022-02-10

Bug Fixes

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



2.16.2 Version

Release date: 2022-01-26

Bug Fixes

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



2.16.1 Version

Release date: 2022-01-20

Bug Fixes

1. Fix known issues.



2.16.0 Version

Release date: 2022-01-14

New Features

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

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

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

For related API, please refer to muteUser

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

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

For related API, please refer to onPlayerQualityUpdate

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

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

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

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

For related API, please refer to setCustomVideoCaptureRegionOfInterest

4. Supports streaming based on rtmp over quic protocol.

NOTE: To use this feature, please contact ZEGO 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 ZEGO 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. Optimized the basic beauty function.

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

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

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

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

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

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

Bug Fixes

1. Fixed occasional crash when deinitializing SDK.

Deleted

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

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



2.15.0 Version

Release date: 2021-12-09

New Features

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

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

For related API, please refer to setCustomVideoCaptureDeviceState

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

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

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

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

For related API, please refer to enableSoundLevelMonitor, enableFrequencySpectrumMonitor

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

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

For related API, please refer to sendSEISyncWithCustomVideo

4. Support all-round virtual stereo.

Added support for omni-directional virtual stereo sound. The monophonic sound is processed by algorithms to simulate a somatosensory sound. This function is often used in KTV scenes to make the singing sound more three-dimensional.

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

For related API, please refer to enableVirtualStereo

5. Added local device exception callback [onLocalDeviceExceptionOccurred].

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

For related API, please refer to onLocalDeviceExceptionOccurred

6. iOS supports Mac Catalyst architecture (arm64 + x86_64).

Developers can port iOS applications to macOS through the Mac Catalyst framework.

Enhancements

1. [setCustomVideoCaptureRotation] compatible with PixelBuffer data type.

When the custom video capture video frame data type [ZegoVideoBufferType] is the PixelBuffer type, it is supported to call the [setCustomVideoCaptureRotation] interface to set the custom picture rotation angle.

For related API, please refer to setCustomVideoCaptureRotation

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

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

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

5. 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 ZEGO technical support.

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

3. Added H.265 codec exception notification.

Added a new alarm callback for insufficient H.265 decoding performance, which is used to prompt the user whether to perform downgrade processing in a scenario where the stream is pulled through the CDN. If the developer receives a low frame rate callback [onPlayerLowFpsWarning] during the process of pulling the H.265 stream, it is recommended that the developer stop pulling the H.265 stream and switch to the H.264 stream.

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

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

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

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

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

For related API, please refer to callExperimentalAPI

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

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

For related API, please refer to ZegoMediaPlayer > loadResourceWithPosition

6. Support setting the rotation angle of the custom capture screen.

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

After receiving the [onStart] callback, the developer can call the [setCustomVideoCaptureRotation] interface to set the clockwise rotation angle of the custom capture screen of the specified push channel.

For related API, please refer to setCustomVideoCaptureRotation

7. Support setting camera focus and exposure mode.

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

After starting the local preview, you can call the [isCameraFocusSupported] interface to turn on the camera focus function. Through the [setCameraFocusPointInPreview] and [setCameraExposurePointInPreview] interfaces, you can set the focus and exposure point in the preview view (every time the camera restarts the capture, Both settings will be invalid and need to be reset). Call the [setCameraFocusMode] and [setCameraExposureMode] interfaces to set the camera focus mode and exposure mode respectively.

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

8. Added enable or disable pull flow alignment function.

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

For related API, please refer to setPlayStreamsAlignmentProperty

9. Added audio device mode.

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

For related API, please refer to setEngineConfig

10. Added steady-state voice detection function.

This function can be used to determine whether someone is speaking into the microphone within a certain period of time, and is used to detect whether the audio data after collection or audio pre-processing is human voice or noise.

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

11. The server supports ServerSecret smooth migration capability.

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

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

12. Server Token capability upgrade.

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

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

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

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

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

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

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

Enhancements

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

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

For related API, please refer to onNetworkQuality

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

Prior to 2.14.0, the default maximum number of push channels was 2 channels. If you need to support more, you need ZEGO 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. Optimized the problem that the number of wakeups will increase when the SDK is re-initialized after the SDK is deinitialized.

6. Retweet address length limit expansion

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

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

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

5. Supports setting the volume of the microphone and App to collect audio.

When the iOS platform collects mobile phone screen images, App audio, and microphone audio through Replaykit, and shares them through the SDK, the volume of the App audio and the volume of the microphone audio can be adjusted separately. In order to realize the flexible choice of highlighting the voice of the anchor or App in different scenarios. This function is often used in game live broadcast scenes.

After you start the preview or push the stream successfully, you can set the audio volume collected by the microphone through the [setReplayKitMicrophoneVolume] interface, and set the audio volume collected by the App through the [setReplayKitApplicationVolume] interface. The volume range of both is 0 ~ 200. The default value is 100.

For related API, please refer to setReplayKitMicrophoneVolume, setReplayKitApplicationVolume

6. Support arm64 Simulator.

Starting from this version, the arm64 simulator architecture is supported to facilitate developers to use the iOS simulator to develop and debug on the Mac with M1 chip (Apple Silicon).

Enhancements

1. Optimized the mixed flow precise alignment function.

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

For related API, please refer to setStreamAlignmentProperty

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

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

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

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

Bug Fixes

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

Deleted

1. Deprecate the old [onProcessCapturedAudioData] callback.

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

For related API, please refer to onProcessCapturedAudioData

2. Deprecate the old [onProcessRemoteAudioData] callback.

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

For related API, please refer to onProcessRemoteAudioData

3. Deprecate the old [onProcessPlaybackAudioData] callback.

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

For related API, please refer to onProcessPlaybackAudioData



2.12.0 Version

Release date: 2021-09-09

New Features

1. Added support for H.265 codec.

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

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

2. Added custom mixing post-processing function.

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

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

3. Supports callback of remote speaker device status.

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

For related API, please refer to onRemoteSpeakerStateUpdate

4. Media player supports double speed playback.

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

For related API, please refer to ZegoMediaPlayer > setPlaySpeed

5. Mixing supports spatial audio capabilities.

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

For related API, please refer to startMixerTask

Enhancements

1. Optimized the ear return function.

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

2. 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 ZEGO technical support for configuration.

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

Starting from this version, no special package is required.

For related API, please refer to ZegoMediaPlayer > loadResource

Bug Fixes

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

2. Fixed the conflict between SDK and CallKit.

3. Fixed the problem that there is no sound when playing on iOS occasionally.



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

Release date: 2021-08-10

New Features

1. Added automatic mixing function.

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

For related API, please refer to startAutoMixerTask, stopAutoMixerTask

2. Support setting mixed flow background color.

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

For related API, please refer to startMixerTask

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

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

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

4. Media player supports playing binary files.

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

For related API, please refer to ZegoMediaPlayer > loadResourceFromMediaData

5. Added camera exposure compensation function.

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

For related API, please refer to setCameraExposureCompensation

Enhancements

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

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

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

When developers need to support more than 12 streams, they need to contact ZEGO 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.

Deleted

1. Deprecate the old [onNetworkQuality] callback.

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

For related API, please refer to onNetworkQuality



2.9.3 Version

Release date: 2021-07-13

Bug Fixes

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

2. Fixed other known issues.



2.9.0 Version

Release date: 2021-07-09

New Features

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

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

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

For related API, please refer to setDummyCaptureImagePath

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

For related API, please refer to onNetworkQuality

3. Support to get NTP time.

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

For related API, please refer to getNetworkTimeInfo

4. Added mixed flow automatic and precise alignment function.

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

Enhancements

1. Optimized the multi-room function.

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

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

For related API, please refer to setRoomMode, loginRoom

2. Optimized the logic of exiting the room.

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

For related API, please refer to logoutRoom

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

For related API, please refer to onPlayerQualityUpdate

4. Optimized the network test function.

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

For related API, please refer to startNetworkSpeedTest

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

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

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

8. Media player supports playing mkv files.

Bug Fixes

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

2. Fixed an error when opening the file.

3. Fixed an issue that caused the screen to flicker by repeatedly setting the view in iOS.

4. Fixes the problem of abnormal images when iOS quickly switches between front and rear cameras.

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

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

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

Deleted

1. Deprecated [loginMultiRoom] interface.

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

For related API, please refer to setRoomMode, loginRoom



2.8.0 Version

Release date: 2021-06-11

New Features

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

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

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

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

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

For related API, please refer to callExperimentalAPI

3. Added spatial audio capabilities.

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

For related API, please refer to enablePlayStreamVirtualStereo

Enhancements

1. The minimum supported version of the SDK iOS platform has been increased from 8.0 to 9.0.

2. Starting from version 2.1.0, the delivery product is [Normal Framework] + [XCFramework]. From this version, it is changed to deliver only [XCFramework].

Bug Fixes

1. Fixed the problem of deadlock that may be caused in the process of [createEngine] and [createMediaPlayer] on iOS at the same time.

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

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



2.7.0 Version

Release date: 2021-04-29

New Features

1. Add experimental API functions.

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

For related API, please refer to callExperimentalAPI

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

Release date: 2021-03-18

New Features

1. Media player added screenshot function.

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

For related API, please refer to ZegoMediaPlayer > takeSnapshot

2. Support setting and obtaining audio quality configuration.

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

For related API, please refer to setAudioConfig, getAudioConfig

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

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

For related API, please refer to setTrafficControlFocusOn

4. Add local preview first frame rendering callback.

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

For related API, please refer to onPublisherRenderVideoFirstFrame

5. Media player adds precise search function.

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

For related API, please refer to ZegoMediaPlayer > enableAccurateSeek

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

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

For related API, please refer to muteAllPlayStreamAudio

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

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

For related API, please refer to muteAllPlayStreamVideo

Enhancements

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

Bug Fixes

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



2.3.1 Version

Release date: 2021-03-05

Bug Fixes

1. Fix known issues



2.3.0 Version

Release date: 2021-03-04

New Features

1. Added a interface for setting log attributes.

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

For related API, please refer to setLogConfig

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

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

For related API, please refer to setApiCalledCallback

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

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

For related API, please refer to setPlayStreamVideoType

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

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

For related API, please refer to setAudioRouteToSpeaker

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

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

For related API, please refer to setAllPlayStreamVolume

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

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

For related API, please refer to startNetworkProbe, stopNetworkProbe

Enhancements

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

Bug Fixes

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

Deleted

1. Deprecated [setPlayStreamVideoLayer] interface.

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

For related API, please refer to setPlayStreamVideoType

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

For related API, please refer to setLogConfig

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

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

For related API, please refer to setEngineConfig

4. Deprecated the [setBuiltInSpeakerOn] interface.

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

For related API, please refer to setAudioRouteToSpeaker



2.2.1 Version

Release date: 2021-02-04

Bug Fixes

1. Fixed the problem that the publish watermark may not be deleted.

For related API, please refer to setPublishWatermark

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

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

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

For related API, please refer to onRemoteVideoFrameEncodedData



2.2.0 Version

Release date: 2021-01-28

New Features

1. Add custom video processing function.

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

For related API, please refer to enableCustomVideoProcessing

2. Add RoomSessionID information for audio and video calls.

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

For related API, please refer to onRoomStateUpdate

3. Added SEI callback for media player

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

4. Support setting advanced configuration when start mixer task

Add [advancedConfig] parameter for [ZegoMixerTask] to support advance configuration for mixer task. if you need to use it, please contact ZEGO 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 support for delivery of XCFramework products, adapted to Xcode 12.3

Please choose to download XCFramework from the Download SDK on the developer center.

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

Bug Fixes

1. Fix known problems



2.0.1 Version

Release date: 2021-01-07

Bug Fixes

1. Fix known problems



2.0.0 Version

Release date: 2020-12-31

New Features

1. Added low latency live broadcast feature.

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

For related API, please refer to startPlayingStream

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

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

For related API, please refer to setVideoConfig

Bug Fixes

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

Deleted

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

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

For related API, please refer to enableCustomVideoCapture

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

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

For related API, please refer to enableCustomVideoRender

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

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

For related API, please refer to destroyEngine

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

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

For related API, please refer to onPlaybackAudioData

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

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

For related API, please refer to muteSpeaker

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

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

For related API, please refer to createMediaPlayer

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

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

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



1.20.1 Version

Release date: 2020-12-24

Bug Fixes

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

2. Fixed possible frame skipping issues in media players.



1.20.0 Version

Release date: 2020-12-17

New Features

1. Added network speed measurement function.

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

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

2. Added network mode changed notification callback.

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

For related API, please refer to onNetworkModeChanged

3. Added camera zoom function.

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

For related API, please refer to getCameraMaxZoomFactor, setCameraZoomFactor

4. Added audio route changed notification callback.

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

For related API, please refer to onAudioRouteChange

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

For related API, please refer to ZegoAudioEffectPlayer > seekTo

2. Fixed the occasional issue of abnormality when switching from media volume to call volume.

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

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

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

Enhancements

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

For related API, please refer to loginRoom

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

For related API, please refer to sendBroadcastMessage

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

For related API, please refer to startRecordingCapturedData

4. The media player newly supports m3u8 format

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

For related API, please refer to ZegoMediaPlayer > loadResource

Deleted

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



1.18.1 Version

Release date: 2020-11-24

Bug Fixes

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



1.18.0 Version

Release date: 2020-11-19

New Features

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

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

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

2. Added SEI setting type function.

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

For related API, please refer to setSEIConfig

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

For related API, please refer to onRoomStreamUpdate

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

For related API, please refer to onPlayerAudioData

Bug Fixes

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

For related API, please refer to startPlayingStream

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

For related API, please refer to mutePlayStreamAudio

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

For related API, please refer to mutePlayStreamVideo

4. Fix the problem that the media player's playback volume or publish volume obtained for the first time is 0.

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

2. Fix the issue that sometimes audio and video are out of sync in publish iOS screen capture stream.

For related API, please refer to handleReplayKitSampleBuffer



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. Added screen capture (ReplayKit) adaptive screen rotation function.

By default, adaptive screen rotating are processed on the publisher side, and it's also supported processing rotating on the player side to reduce the memory usage of the publisher. For specific usage, please refer to the document [Advanced Video Processing] -> [Custom Video Capturing].

For related API, please refer to prepareForReplayKit, handleReplayKitSampleBuffer

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

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

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

For related API, please refer to takePublishStreamSnapshot, takePlayStreamSnapshot

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

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



1.15.2 Version

Release date: 2020-09-17

Bug Fixes

1. Fixed issue where mediaplayer setting local playback volume or publishing stream volume might not work

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

For related API, please refer to onRoomUserUpdate



1.15.0 Version

Release date: 2020-09-10

New Features

1. Add media player volume control function

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

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

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

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

For related API, please refer to setAudioCaptureStereoMode, setAudioConfig

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

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

For related API, please refer to startSoundLevelMonitor, startAudioSpectrumMonitor

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

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

For related API, please refer to switchRoom

Enhancements

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

Bug Fixes

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

Deleted

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

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

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



1.14.0 Version

Release date: 2020-08-27

New Features

1. Added switch room feature

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

For related API, please refer to switchRoom

2. Added traffic control callback when using custom video capture

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

For related API, please refer to onEncodedDataTrafficControl

Enhancements

1. Increase the trigger timing of onRoomStreamExtraInfoUpdate

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

For related API, please refer to onRoomStreamExtraInfoUpdate

Bug Fixes

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

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

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

For related API, please refer to onPlayerRecvSEI

3. Fix the problem that the parameters obtained by the Preset construction method of the ZegoReverbParam are incorrect.

4. Fix the problem that the value obtained by the currentProgress getter of ZegoMediaPlayer is incorrect.



1.13.0 Version

Release date: 2020-08-13

New Features

1. Added multi-room feature

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

For related API, please refer to [loginMultiRoom]

2. Added room extra message function

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

For related API, please refer to setRoomExtraInfo

3. Added audio pre/post processing function

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

For related API, please refer to enableCustomAudioCaptureProcessing, enableCustomAudioRemoteProcessing

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

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

Enhancements

1. Expand the volume range for publishing/playing stream

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

For related API, please refer to setCaptureVolume, setPlayVolume



1.12.3 Version

Release date: 2020-08-06

Bug Fixes

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



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.



1.11.0 Version

Release date: 2020-07-15

New Features

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

Enhancements

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

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



1.10.0 Version

Release date: 2020-06-30

New Features

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

Developers can build related audio preprocessing effects into their apps.

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

2. Added a new feature for local recording.

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

For related API, please refer to startRecordingCapturedData, stopRecordingCapturedData

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

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

For related API, please refer to [enableAudioDataCallback]

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

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

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

For related API, please refer to setANSMode

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

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

For related API, please refer to enableCustomAudioIO

Enhancements

1. Added a new error code 1001011.

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



1.9.3 Version

Release date: 2020-06-28

Bug Fixes

1. Fix a crash problem that may occur when switching the front and back background repeatedly.

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



1.9.2 Version

Release date: 2020-06-20

Bug Fixes

1. Fix the issue of onMixerSoundLevelUpdate callback.

2. Fix the problem that the bufferType field in the custom video capture enableCustomVideoRender configuration does not take effect.



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.

2. Fix an issue that may pop up alert unexpectedly in a formal environment.



1.9.0 Version

Release date: 2020-06-15

New Features

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

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

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

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

Bug Fixes

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

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

3. Fixed the issue that setEventHandler cannot set to empty.

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

Deleted

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



1.8.2 Version

Release date: 2020-06-11

Bug Fixes

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

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



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.

Deleted

1. Removed 24 callbacks that were deprecated for more than 3 months due to parameter name changes.



1.7.9 Version

Release date: 2020-05-18

Bug Fixes

1. Fixed the issue that the stream playing configurations cannot take effect when playing streams via URL.

2. Fix the problem that the default path of logs may be empty resulting in log writes not taking effect.

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



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.

Enhancements

1. sendCustomVideoCapturePixelBuffer and sendCustomVideoCaptureTextureData interface's parameter timeStamp is renamed to timestamp.



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 video capture frame rate decreases in low light environments.

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



1.5.5 Version

Release date: 2020-03-31

Enhancements

1. Optimizing API annotations.

Bug Fixes

1. Fix the issue that the mixed stream soundLevel setting is invalid.



1.5.1 Version

Release date: 2020-03-19

Bug Fixes

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

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

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



1.5.0 Version

Release date: 2020-03-14

New Features

1. Added scenario pre-configuration properties.

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

2. Added the support for publishing the auxiliary stream.

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

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

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

4. Added the support for stream publishing traffic control.

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

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

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

For related API, please refer to enablePublishDirectToCDN

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

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

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

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

8. Added the support for sending barrage messages.

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

For related API, please refer to sendBarrageMessage

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

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

Enhancements

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

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



1.4.0 Version

Release date: 2020-02-13

New Features

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



1.3.5 Version

Release date: 2020-01-17

Bug Fixes

1. Fix some problems of the media player.



1.3.4 Version

Release date: 2019-12-27

New Features

1. Added the MediaPlayer module.

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

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



1.3.3 Version

Release date: 2019-12-13

New Features

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

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

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

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

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

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

Enhancements

1. Optimized the logging feature.



1.2.1 Version

Release date: 2019-11-27

New Features

1. Added the mixer (stream mixing) module.

2. Added the IM (instant messaging) module.



1.1.1 Version

Release date: 2019-11-11

New Features

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

Bug Fixes

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



1.1.0 Version

Release date: 2019-11-01

New Features

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