zego_express_engine 2.21.0 copy "zego_express_engine: ^2.21.0" to clipboard
zego_express_engine: ^2.21.0 copied to clipboard

ZegoExpressEngine Flutter SDK is a flutter plugin wrapper based on ZEGO Express RTC SDK (Native & Web), providing live video and real-time audio/video services.

Change Log #

2.21.0 #

New Features #

  1. It supports web now.

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

  2. Range voice supports custom distance update frequency.

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

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

    For related API, please refer to setPositionUpdateFrequency

  3. Support setting the low-light enhancement.

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

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

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

    For related API, please refer to startMixerTask

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

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

    The [startPlayingStream] interface adds 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 #

  1. Optimize the related error codes of Token exceptions when mandatory login authentication is enabled.

    Added 1002074, 1002075, 1002076, 1002077, 1002078, 1002079, 1002080 and other error codes. After enabling mandatory login authentication, if the Token is incorrect, these error codes will be returned. For details, please refer to Error codes.

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

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

Bug Fixes #

  1. Fixed an issue where [onStop] callbacks would be triggered repeatedly when external filters are turned off.

  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.

  3. Fixed some bug about Custom Audio IO

2.21.0-prerelease.1 #

New Features #

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

2.20.2 #

Bug Fixes #

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

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

2.20.0 #

New Features #

  1. Media player supports setting the channel.

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

    For related API, please refer to setActiveAudioChannel

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

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

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

    For related API, please refer to clearView

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

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

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

    For related API, please refer to enableCameraAdaptiveFPS

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

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

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

    For related API, please refer to startMixerTask

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

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

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

  6. Supports linearly increasing volume gain.

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

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

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

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

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

    For related API, please refer to startPublishingStream

Enhancements #

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

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

  3. Added 1009013 error code.

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

  4. Added 1017009 error code.

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

    For related API, please refer to initCopyrightedMusic, loginRoom

Bug Fixes #

  1. Fixed an error reporting the custom capture AAC audio format.

2.19.0 #

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 when using certain Android models and certain Bluetooth headsets together, the call volume was changed from Bluetooth to loudspeaker when the acquisition was enabled.

  4. Fixed other known issues.

2.18.1 #

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

    After playing the sound effect, you can call the [SetPlaySpeed] interface 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.5 times, original speed, 1.5 times and 2 times respectively, and the default is the original speed.

  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

  4. Address and protocol-related information that supports monitoring of push-pull streams.

    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. 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 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. Fix a memory leak that the android plugin binding is not released when using v2 embedded.

  4. Fix a memory leak that the temp pixel buffer of the iOS texture renderer could not be released.

  5. Fixed other known issues.

2.17.2 #

Bug Fixes #

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

  2. Fixed echo cancellation issues on some phones.

2.17.1 #

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.

    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.

    For related API, please refer to createEngineWithProfile, ZegoEngineProfile, loginRoom, ZegoRoomConfig

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.

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

2.16.3 #

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 ZegoPlayStreamQuality

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

  4. 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. Android SDK minimum supported OS version changed from Android 4.1 to Android 4.4.

    Starting from this version, the API level required by the Android SDK is not lower than 19, and the minimum supported OS version has changed from Android 4.1 to Android 4.4. If you need to support Android 4.1, please contact ZEGO technical support.

  2. Optimized the basic beauty function.

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

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

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

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

  4. Optimize NTP time error.

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

    For related API, please refer to getNetworkTimeInfo

Deleted #

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

    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

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. Fixed an issue where users could not receive room additional messages sent by other users in the room before logging into the room.

  3. Fix known issues.

2.15.0 #

New Features #

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

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

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

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

    For related API, please refer to enableSoundLevelMonitor, onMediaPlayerSoundLevelUpdate, enableFrequencySpectrumMonitor, onMediaPlayerFrequencySpectrumUpdate

  2. Support all-round virtual stereo.

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

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

    For related API, please refer to enableVirtualStereo

  3. Added local device exception callback [onLocalDeviceExceptionOccurred].

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

    For related API, please refer to onLocalDeviceExceptionOccurred

Enhancements #

  1. Mixed stream output supports advanced encoding parameter configuration.

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

    For related API, please refer to ZegoMixerOutputVideoConfig

  2. Added 1015032 error code.

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

  3. Added 1002066 error code.

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

  4. Added 1004072 error code.

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

Bug Fixes #

  1. Fixed the problem that the call to [startMixerTask] may crash

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 onDeviceError, onLocalDeviceExceptionOccurred

2.14.0 #

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

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

  3. 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 APIs, please refer to loadResourceWithPosition

  4. Support setting camera focus and exposure mode.

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

    After starting the local preview, you can call the [isCameraFocusSupported] interface to 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, setCameraFocusPointInPreview, setCameraFocusMode, setCameraExposureMode, setCameraExposurePointInPreview

  5. Added enable or disable pull flow alignment function.

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

    For related API, please refer to setPlayStreamsAlignmentProperty

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

Improved optimization #

  1. Nullable parameters are changed to optional parameters

    The nullable parameters of the interface before 2.14.0 need to be passed in null even when used for air conditioning.

    After 2.14.0, the nullable parameters of the interface are changed to optional parameters. When the value is empty, it can not be passed in. When the value is not empty, the parameter name must be brought into the parameter.

    For related API, please refer to ZegoEngineConfigZegoEngineProfileZegoPublisherConfigZegoCanvasZegoVideoConfigZegoPlayerConfigZegoMixerInput

  2. Optimize the structure of [ZegoMixerOutput]

    [ZegoMixerOutput]’s videoConfig is changed to an optional parameter, and the structure can not be transmitted when the videoConfig does not need to be configured separately.

    For related API, please refer to ZegoMixerOutput

2.13.0 #

New Features #

  1. Features are aligned with Native SDK 2.13.0 version.

    Support basic push and pull streaming, log in to multiple rooms, room real-time messaging, audio and video live broadcast, 3A processing, CDN direct push retweet, mixed streaming, media player, audio player, game voice, flow control, user control authority and other functions.

    It does not currently support defined video capture, custom video rendering, custom video pre-processing, and audio mixing functions.

Deleted #

  1. Deprecated the [createEngine] function, please use [createEngineWithProfile] instead.

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

2.8.3 #

  1. Add audio config parameter adaptation window.
  2. Upgrade native sdk 2.10.1

2.8.2 #

  1. Fix bugs on the window platform.

2.8.1 #

  1. Add the parameter channel in audio config interface.

2.8.0 #

  1. Add custom audio pre-processing related function.
  2. Fix the problem that onCapturedAudioSpectrumUpdate has no callback.

2.7.1 #

  1. Fix the bug for iOS that "startPublishingStream" not work after room mode is set to "MultiRoom"

2.7.0 #

  1. Add experimental api.
  2. Update deprecated api.
  3. Upgrade native sdk 2.10.0

2.6.0 #

  1. Add support for Windows platform. (Only support audio temporarily)
  2. Add support for new multi-room feature.
  3. Fix some bugs of mismatched parameters.

2.5.3 #

  1. Fix some bugs of mismatched parameters
  2. Update Native SDK to 2.9.3

2.5.2 #

  1. Fix the bug that the dart impl file gets zego-user error

2.5.1 #

  1. Fix a bug that List not convert to Iterable

2.5.0 #

  1. BREAKING CHANGES: Add null-safety feature. This requires developers to upgrade Flutter to 2.x.
  2. Update Native SDK to 2.8.0

2.2.5 #

  1. Fix a crash that may occur when multiple accesses to copyPixelBuffer at the same time

2.2.4 #

  1. Fix The adjust texture render size need to rebuild pixel buffer

2.2.3 #

  1. Fix android native sdk source

2.2.2 #

  1. Fix memory leak in iOS texture rendering
  2. Update native sdk to 2.7.0

2.2.1 #

Bug Fixes #

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

    For related API, please refer to setPublishWatermark

2.2.0 #

New Features #

  1. Add RoomSessionID information for audio and video calls.

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

  2. Added SEI callback for media player.

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

    For related API, please refer to onMediaPlayerRecvSEI

  3. Support setting advanced configuration when start mixer task.

    add [advancedConfig] into [ZegoMixerTask] to support advance config for mixer task. if you need to use it, please contact ZEGO technical support.

    For related API, please refer to ZegoMixerTask.advancedConfig

  4. Added prism related quality report.

    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 #

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 #

New Features #

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

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

    For related API, please refer to setPlayStreamBufferIntervalRange

  2. Enhance the function of setting publish watermark, add new adaptation to Flutter assets resources.

    Set the 'imageURL' parameter of the watermark object to the prefix of 'flutter-asset://' and append the relative path of the resource file declared in 'pubspec.yaml'.

    For related API, please refer to setPublishWatermark

Enhancements #

  1. Optimization and refactoring of the JNI layer.

Bug Fixes #

  1. Fix known problems

2.0.0 #

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 parameter type convert issue for [getVideoConfig] on iOS.

Deleted #

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

  2. Deleted [ZegoMediaPlayer.getVolume], please use [getPublishVolume], [getPlayVolume] instead.

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

    For related APIs, please refer to ZegoMediaPlayer.getPublishVolume, ZegoMediaPlayer.getPlayVolume

1.20.0 #

New Features #

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

  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 #

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 a crash when setting the media enhancement supplementary information type on Android.

    For related API, please refer to setSEIConfig

  3. Fixed the issue that switching rendering view does not take effect when playing the stream on Android.

    For related API, please refer to startPlayingStream

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

  5. Fixed the occasional issue of abnormality when switching from media volume to call volume on iOS.

1.19.0 #

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.

    For related API, please refer to setPlayStreamVideoLayer

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 APIs, please refer to ZegoMediaPlayer.loadResource

Deleted #

  1. Deprecated the videoLayer property in [ZegoPlayerConfig], please use [setPlayStreamVideoLayer] instead.

    For related API, please refer to setPlayStreamVideoLayer

1.18.0 #

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

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

    For related API, please refer to mutePlayStreamAudio, mutePlayStreamVideo

  3. Optimize the SEI sending logic to support normal sending of SEI information when the microphone is turned on and no audio data is sent.

    For related API, please refer to sendSEI

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

    For related API, please refer to ZegoMediaPlayer.getPlayVolume, ZegoMediaPlayer.getPublishVolume

  5. Fix the problem that setting viewMode does not work when using Texture to render on iOS.

    For related API, please refer to ZegoCanvas.viewMode

Deleted #

  1. Deprecate the original [setReverbParam] interface, and use [setReverbAdvancedParam] instead if necessary.

    For related API, please refer to setReverbAdvancedParam

  2. Deprecate the original [onRoomStreamUpdate] callback, please use the callback of the same name with additional [extendedData] parameter instead.

    For related API, please refer to onRoomStreamUpdate

1.17.5 #

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.

1.17.0 #

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

    Allows to set up to 7 echoes (delay), and supports to individually set the delay and decay of each echo, and overall input and output gain values.

    For related API, please refer to setReverbEchoParam

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

  4. Media Player added support for switching audio tracks.

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

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.

1.16.2 #

Enhancements #

  1. Optimize custom video capture API style. and add necessary notes.

1.16.1 #

Enhancements #

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

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

Bug Fixes #

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

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

1.16.0 #

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

  2. Fix the problem that an error occurs when calling SDK functions for the first time

  3. Fix the problem of no callback after two consecutive calls to createEngine

1.15.2 #

Bug Fixes #

  1. Fixed issue where media player 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

1.15.0 #

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 setPlayVolume, setPublishVolume, getPlayVolume, getPublishVolume of the ZegoMediaPlayer.

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

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

  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

  5. Add setEngineConfig API to set log path and size, and advanced special configuration

Deleted #

  1. Deprecated the getVolume interface in the mediaplayer, please use getPlayVolume and getPublishVolume instead

1.14.0 #

  1. Update native SDK to version 1.14.0

  2. Add loginMultiRoom, switchRoom, setRoomExtraInfo APIs and onRoomExtraInfoUpdate callback

  3. Optimize the callback log on the flutter native side

1.1.0 #

  1. Update native SDK to version 1.12.3

  2. Add setANSMode, setAudioEqualizerGain, setVoiceChangerParam, setReverbParam, enableVirtualStereo APIs

  3. Add Record module with startRecordingCapturedData, stopRecordingCapturedData, onCapturedDataRecordStateUpdate, onCapturedDataRecordProgressUpdate

  4. Add getVideoConfig implementation for Android

  5. Fix issue of stopMixerTask for Android

0.15.1 #

  • Fix the problem that the codecID parameter of setVideoConfig API does not take effect

0.15.0 #

  • Update native SDK to version 1.11.4

0.14.2 #

  • Fix the conversion issue of generic Map for some callbacks

0.14.1 #

  1. Fix enablePublishDirectToCDN API

  2. Fix updateTextureRendererSize API on Android

0.14.0 #

  1. Update native SDK to version 1.10.0

  2. Fix updateTextureRendererSize API on Android

  3. Fix onRoomOnlineUserCountUpdate callback

0.13.1 #

  • Fix mixer module issue

0.13.0 #

  • Update native SDK to version 1.9.2

0.12.2 #

  • Update native SDK to version 1.8.2

0.12.1 #

  • Fix onIMRecvCustomCommand callback on iOS

0.12.0 #

  1. Update native iOS SDK to version 1.8.0

  2. Update native Android SDK to version 1.8.1

  3. Fix some bugs in the IM module

0.11.1 #

  • Update native SDK to version 1.7.9

0.11.0 #

  1. Update native SDK to version 1.7.8

  2. Optimize native method handler and callback handler

0.10.0 #

  1. Add media player (audio only) module

  2. Update native SDK to version 1.7.0

  3. Add error code definition class

  4. Fix iOS callback bug

0.9.3 #

  • Fix type conversion issue in dart callback

0.9.2 #

  • Update native SDK version to 1.6.0

0.9.1 #

  1. Implement Android mixer API

  2. Fix iOS mixer bug

0.9.0 #

  • Initial release, with native SDK dependency version 1.5.5
40
likes
0
pub points
93%
popularity

Publisher

verified publisherzego.im

ZegoExpressEngine Flutter SDK is a flutter plugin wrapper based on ZEGO Express RTC SDK (Native & Web), providing live video and real-time audio/video services.

Homepage

License

unknown (LICENSE)

Dependencies

flutter, flutter_web_plugins, js

More

Packages that depend on zego_express_engine