Release Date: 2025-04-11
New Features
If you need to use this feature, please contact ZEGOCLOUD technical support.
The SDK has added support for the IPv6 protocol. You can specify whether network requests should prioritize the use of the IPv6 protocol or the IPv4 protocol. By default, the SDK prioritizes the IPv4 protocol.
If you need to use this feature, please contact ZEGOCLOUD technical support.
Single-stream transcoding refers to converting a single original stream into different encoding formats and resolutions in the cloud. In live streaming scenarios, viewers can choose different resolutions of the stream to watch based on their network quality and terminal devices, ensuring smooth playback. For more details, please refer to Single stream transcoding.
For related APIs, please refer to ZegoWebPlayOption > codecTemplateID
Improvement and Optimization
For mono scenarios, the power consumption of the balanced mode AI noise reduction is reduced by 50%.
For related APIs, please refer to setAiDenoiseMode and enableAiDenoise.
Error codes have been classified better, and the logic of some existing error codes has been modified as follows:
New Error Code | Original Error Code | Error Description |
---|---|---|
1002014 | 1100001 | The roomID input in the setRoomExtraInfo function is invalid. Please check the relevant parameters. |
1002015 | 1100001 | Room extra information key is too long. The length of the room extra information key input to the [setRoomExtraInfo] function is greater than or equal to 128 bytes. Please check the room extra information key input when calling the [setRoomExtraInfo] function to ensure its length is less than 128 bytes. |
1002016 | 1100001 | Room extra information value is too long. The length of the room extra information value input to the [setRoomExtraInfo] function is greater than or equal to 128 bytes. Please check the room extra information value input when calling the [setRoomExtraInfo] function to ensure its length is less than 128 bytes. |
1002037 | 1002001 | The total number of rooms logged in simultaneously exceeds the limit. The multi-room feature has a limit on the total number of rooms that can be logged in simultaneously. Please contact ZEGOCLOUD technical support. |
1003028 | 1103027 | Stream publishing failed, as there is already an identical stream in the room. Change to a new stream ID. Adjust the stream name generation strategy to ensure uniqueness. |
1003040 | 1000055 | Failed to update the CDN status for the relay. The relay address URL is incorrect. Check if the input URL is valid. |
1004025 | 1104039 | The stream playing is prohibited by the ZEGOCLOUD backend. Please contact ZEGOCLOUD technical support for resolution. |
1009005 | 1000002 | The target room for sending the message is inconsistent with the currently logged-in room. The target room for sending the message is inconsistent with the currently logged-in room. Send the message with the current logged-in room ID. |
1009015 | 1109001 | Failed to send room broadcast message. QPS exceeds the limit. Control the maximum QPS to 2. |
Bug Fixes
Release Date: 2025-02-12
New Features
A new configuration item ZegoWebPublishOption > trafficControlMinVideoMode has been added for streaming. When the user's network quality is poor and unable to smoothly transmit audio and video (by default, when ZegoWebPublishOption > trafficControlMinVideoBitrate is less than 50kbps, or a custom threshold can be set), the SDK will automatically switch to pure audio streaming mode to prioritize audio smoothness. Once the user's network quality improves, the SDK will automatically resume audio and video streaming. This feature is suitable for education and conference scenarios to ensure clear and smooth communication.
For related APIs, please refer to ZegoWebPublishOption > trafficControlMinVideoMode
Supports obtaining raw audio data captured by the microphone through the setCaptureAudioFrameCallback callback interface, with the data format being PCM.
For related APIs, please refer to setCaptureAudioFrameCallback
When custom Rendering of local audio and video is required, you can listen to changes in local audio and video tracks to promptly obtain the latest audio and video track objects. This is applicable for monitoring audio and video capture and preprocessing stages.
For related APIs, please refer to videoTrackChanged, audioTrackChanged, captureVideoTrackChanged, captureAudioTrackChanged
Supports getting the SDK version number before initializing the SDK to match the timing of business data reporting.
For related APIs, please refer to ZegoExpressEngine > version
If the current device is detected as not supporting the current encoding format or if there are any abnormalities during the encoding process, it supports automatic switching of encoding. Currently, H.264 encoding is supported by default, and when the device does not support H.264 encoding, it switches to VP8.
For related APIs, please refer to ZegoWebPublishOption > enableAutoSwitchVideoCodec, publisherVideoEncoderChanged
Improvement and Optimization
When using collection interfaces such as startCaptureCamera and startCaptureMicrophone without passing in audio and video related parameters, the SDK will use the configured audio and video configuration parameters in ZegoLocalStream (based on the last configured value). If no relevant parameters have been configured, the SDK's default configuration will be used.
Bug Fixes
Release Date: 2024-11-15
New Features
Added callback for updating audio track (playerAudioTrackUpdate) and video track (playerVideoTrackUpdate) of playing stream. Use this callback to obtain the audio and video tracks of the playing stream and perform audio and video rendering processing as needed.
If there is no special requirement for audio and video rendering, it is recommended to use ZegoStreamView for rendering in most scenarios.
Bug Fixes
video
tag to render media streams, and then switching off the camera (enableVideoCaptureDevice) or video (mutePublishStreamVideo) at the publishing end of the stream.Release Date: 2024-10-29
New Features
Supports quick and convenient room switching through the switchRoom interface.
Please refer to the related API for more information: switchRoom
Please contact ZEGOCloud technical support to use this feature.
Before publishing, you can enable traffic control by using ZegoWebPublishOption > enableTrafficControl to adapt to the current network environment and fluctuations, and achieve adaptive bitrate to ensure smooth audio and video streaming. You can also set the minimum video bitrate by using ZegoWebPublishOption > trafficControlMinVideoBitrate.
Please refer to the related API for more information: enableTrafficControl, trafficControlMinVideoBitrate
Please contact ZEGOCloud technical support to use this feature.
During RTC playback, you can enable ultra-low latency playback by setting the ZegoWebPlayOption > enableLowLatency parameter. When ultra-low latency playback is enabled, low latency is prioritized, but there may be buffering in weak network conditions.
Please refer to the related API for more information: ZegoWebPlayOption > enableLowLatency
In scenarios with poor network conditions, you can set the ZegoWebPlayOption > jitterBufferTarget parameter to set the audio and video playback delay buffer time for playback, reducing buffering.
true
.Please refer to the related API for more information: ZegoWebPlayOption > jitterBufferTarget
Supports setting different resource types for audience before and after going on stage, making the playback more flexible. For example, in a Live Broadcasting scenario with co-hosting, the audience can set the beforePublish
as L3 playback, publishing
as RTC playback, and afterPublish
as L3 playback through ZegoCustomPlayerResourceConfig when playing the stream. In this case, the audience will play the RTC stream when going on stage and automatically switch to L3 stream after going off stage.
Please refer to the related API for more information: startPlayingStream, ZegoWebPlayOption > customResourceConfig
Supports setting the log level before initializing the engine to reduce the logs printed in the browser console.
Please refer to the related API for more information: presetLogConfig
New error codes for authentication failure in playback (1104046) and publishing (1103019). If the ZegoWebPublishOption > streamParams parameter is set incorrectly when enabling publishing or playback authentication, the authentication will fail. For more details, please refer to the Error Code document.
Deprecated
The playoutDelayHint parameter is deprecated. Please use the ZegoWebPlayOption > jitterBufferTarget parameter to set the audio and video playback delay for playback.
Please refer to the related API for more information: ZegoWebPlayOption > jitterBufferTarget
Bug Fixes
Release Date: 2024-08-23
New Features
Note: To display image resources, make sure to provide a valid image URL in ZegoMixerImageInfo > url.
When setting image content for mixing streams, you can now set the display timing of the image using ZegoMixerImageInfo > displayMode. The displayMode
options are as follows:
For related APIs, please refer to ZegoMixerImageInfo > displayMode
Enhancements
Optimized internal code structure to reduce the size of the SDK package.
Deleted
The concept of "CDN Plus" has been discontinued, and the related interfaces for CDN Plus Live Broadcasting have been deprecated.
For related APIs, please refer to ZegoWebPlayOption > resourceMode
Release Date: 2024-06-17
New Features
When the audit service is enabled, by default, all streams in the room will be audited. If you need to control whether a specific stream is audited individually, you can call the startPublishStream interface on the client side to start the stream, and control whether this stream is audited by the audit flag parameter inspectFlag
(0: allowed, default; 1: not allowed).
Refer to the related API startPublishStream.
Note:
The SDK can specify the room for the ZEGO real-time audio and video server to automatically mix all audio streams in the room (currently only supports mixing audio streams), commonly used in chat rooms and chorus scenes. This feature can mix the streams of the anchors on the mic and then give them to the audience off the mic, thereby enhancing the viewing experience for the audience and saving data usage.
Refer to the related API startAutoMixerTask, stopAutoMixerTask.
Note: In the new version of the SDK, if the input stream is pure audio, the layout parameter must be set. The SDK no longer sets it automatically, otherwise, an error message will appear.
The mixing stream feature has added capabilities such as output video configuration and focus voice, as well as a status callback for the mixing stream to obtain the status of the mixed stream forwarding.
Refer to the related API startMixerTask.
Enhancements
Optimized the usability of the SDK in scenarios with network jitter and low network speeds.
Optimized the calling method for browsers to reduce security risks such as account and cookie leaks.
Bug Fixes
Release date: 2024-05-06
New Features
For related APIs, please refer to createZegoStream, startCaptureScreen, startCaptureScreenWithAudio
Note: Only supported integrating a functional module individually through npm
, and other methods are not supported.
mixing-audio
, mixing-stream
, CDN
, range voice
, and beauty
function modules according to business needs, and integrate them separately through npm. Unintroduced functions will be automatically removed during the build process to reduce the size of the SDK package.Release date: 2024-03-21
New Features
Note: The current official SDK does not include this function. If necessary, please contact ZEGOCLOUD technical support for special packaging.
Support balanced AI noise reduction mode. Compared with the original mode, under the premise of the same human voice fidelity effect, the noise suppression effect is significantly improved, and can reach the level of clean and noise-free or non-disturbing; but the performance Consumption increased slightly. Suitable for noisy (low signal-to-noise ratio) outdoor environments such as streets, roads, markets, etc..
For related APIs, please refer to setAiDenoiseMode、enableAiDenoise
Added muteAllPlayAudioStreams and muteAllPlayVideoStreams interfaces. Local users can control whether to receive audio and video data from all remote users when playing streams.
Developers can individually control whether to receive specified audio and video streams through the mutePlayStreamAudio and mutePlayStreamVideo interfaces.
For related APIs, please refer to muteAllPlayAudioStreams、muteAllPlayVideoStreams
Enhancements
After the user successfully logs in to a room, if he does not log out of the room, log in to the room again, or directly log in to another room, the operation will be invalid or the login will fail, and a 1002001 error code will be returned.
For related API, please refer to loginRoom
Bug Fixes
Release date: 2024-01-30
New Features
Note: Before using this feature, please contact ZEGOCLOUD technical support to obtain the unified access service domain name, logger domain name, and other information required for the proxy server.
Support developers to use their own deployed Nginx and coturn servers as intermediate stations for SDK data, proxy access to ZEGOCLOUD backend services.
After enabling the local proxy function:
For related APIs, please refer to setCloudProxyConfig、setTurnServer
Note: This API interface needs to be called after calling the startPlayingStream interface successfully. The PCM data retrieval will automatically stop after stopping play the stream. When replaying the stream, this interface needs to be called again to retrieve audio PCM data.
Support is provided for obtaining PCM data of audio through listening to audio data callbacks. Developers can process business logic based on the PCM data, such as integrating with third-party audio content filtering or generating subtitles.
For related API, please refer to setAudioFrameCallback
Note:
Before start mixing audios, it is possible to modify the audio data of media tags (<video> or <audio>) using the setAudioChangerParam interface. For example, in a KTV solo singing scenario, this feature can be used to raise or lower the pitch of the accompaniment while keeping the vocals unchanged.
For related API, please refer to setAudioChangerParam
In the mixed-stream function, the operation content in the whiteboard can be converted into real-time video, and the whiteboard configuration information can be set, for example, the whiteboard ID, the whiteboard aspect ratio, and whether dynamic PPT loading is supported.
For related APIs, please refer to startMixerTask、ZegoMixStreamConfig
Newly added useFrontCamera interface, which is used to switch between the front and rear cameras on mobile devices. Compared to the previous version's mode of switching cameras using facingMode, the interface call is simpler.
For related API, please refer to useFrontCamera
Enhancements
In previous SDK versions, when a media file fails to play and triggers the autoplayFailed
event callback, users need to call the ZegoStreamView.resume method to resume playback. Typically, this is done by prompting the user to click on a pop-up window on the webpage.
From this version, the ZegoStreamView stream rendering component has been optimized. When the media file fails to play and triggers the autoplayFailed
event callback, the user can automatically resume playback by clicking anywhere on the webpage.
For related API, please refer to ZegoStreamView.play
Release date: 2023-12-20
Bug Fixes
Release date: 2023-12-13
Bug Fixes
audioBitrate
and videoBitrate
parameters did not take effect, so the default bitrate being used when publish streams.Release date: 2023-12-01
New Features
Note: If you need to use this function, please contact ZEGOCLOUD technical support.
By setting the cloud proxy interface of the SDK, all the traffic corresponding to the SDK is transferred through the cloud proxy server to achieve communication with the RTC.
For related API, please refer to setCloudProxyConfig
Note: This feature is disabled by default and may affect audio quality when enabled. Please use it with caution.
Supports non-continuous transmission of DTX audio, which means that mute data (EnableMic, EnableMicDevice) is not sent during publishing streams. This reduces the audio bitrate during periods of silence and saves bandwidth to a certain extent.
For related API, please refer to startPublishingStream
Enhancements
New error codes have been added, which are thrown through the deviceError callback.
So, audio track collection abnormality 1106009, and microphone loosening or rapid plugging and unplugging 1106007, may be triggered successively; Same as 1106010 and 1106008.
For related APIs, please refer to sendSEI、playerRecvSEI
In some devices where "video coding" or "audio coding" is not supported, the older version of the SDK would fail to play stream directly. Starting from this version, the SDK has been optimized for compatibility in playing streams on different devices:
For related API, please refer to startPlayingStream
After the user successfully logs in on device A, device A loses network connection. Then, the user logs in successfully on device B using the same userID. If the network connection on device A is restored and a reconnection is attempted, it will fail and throw error code 1002050, indicating that the userID is already logged in another device.
Optimize server-side mix streaming and single-stream transcoding capabilities to improve encoding efficiency and achieve a 5% or more increase in subjective and objective video quality at the same bitrate.
Release date: 2023-10-27
Bug Fixes
Release date: 2023-10-19
New Features
New interfaces such as createZegoStream and updatePublishingStream have been added. Developers can use this interface to generate ZEGOCLOUD streamObjects, which have the ability to replace or add audio and video tracks, preview, and stop collection and so on. Optimize the streaming process, shorten access time, and improve access experience.
Compared with previous versions of the createStream interface, SDK versions 3.0.0 and above will directly manage localStream (MediaStream), reducing the risk of publish and play stream failures.
For related APIs, please refer to createZegoStream, updatePublishingStream, ZegoLocalStream
A new ZEGOCLOUD self-developed Web ZegoExpressPlayer plug-in is added. After integrating the plug-in, it supports playing CDN live streams in H.265 and H.264 formats, and also supports common player control functions.
For related APIs, please refer to ZegoExpressPlayer
stream-compositor
A new local stream-compositor
is added. Developers can use this plug-in to mix images and sounds locally, merge multiple audio and video streams or page elements into one audio and video stream and then push the stream.
It is suitable for scenarios such as online education, online meetings, live broadcasts, show live broadcasts, game live broadcasts, etc.
For related APIs, please refer to ZegoStreamCompositor, createStreamCompositor
Note:
stream-compositor
.It supports removing the background outside the characters on the streaming side, and cooperates with stream-compositor
to realize portrait picture-in-picture, speaker mode, and immersive live broadcast delivery.
For related APIs, please refer to setTransparentBackgroundOptions
Note: To use this feature, please contact ZEGOCLOUD technical support.
When mixing streams, it supports enabling the sound callback for the specified stream; after enabling it, the sound information of the specified stream can be monitored when mixing the streams.
For related APIs, please refer to startMixerTask, autoMixerSoundLevelUpdate, mixerSoundLevelUpdate
Added preset reverb, virtual stereo, and the ability to configure in-ear reverb effects. Based on this, developers can achieve some audio pre-processing effects.
For related APIs, please refer to setReverbPreset, enableVirtualStereo
Note: Reverb, virtual stereo, voice changing and other functions cannot be turned on at the same time, otherwise the effect may be abnormal.
Supports controlling the voice changing effect by passing in pitch parameters, which can be used to make interactions more interesting or protect user privacy.
The value range of pitch is [-12.0, 12.0]. The larger the value, the sharper the sound. When set to 0.0, it means turning off the voice changing effect.
For related API, please refer to setVoiceChangerParam
Supports obtaining the local NTP timestamp, which can be used to align the local time of multiple terminals. For example, it can be used to align song progress in a KTV chorus scene.
For related API, please refer to getNetworkTimeInfo
Enhancements
The fastest call frequency of the publish-play streaming quality data callback interface has been increased from 3 to 1 second/time to increase the supported call frequency.
For related APIs, please refer to getPublishingStreamQuality, getPlayingStreamQuality
Bug Fixes
Release date: 2023-08-18
New Features
Note:
To use this feature, please contact ZEGOCLOUD technical support.
Please configure geofencing information before creating the engine.
Restrict access to audio, video, and signaling data to a specific area to meet regional data privacy and security regulations, which restrict users' access to audio and video services in a specific area.
For related API, please refer to setGeoFence
Enhancements
For related API, please refer to soundLevelUpdate, capturedSoundLevelUpdate
Optimize the scene-based audio and video configuration, support the HighQualityChatroom
, which is suitable for music teaching and other language chat room scenes that require high sound quality.
For related API, please refer to setRoomScenario
Bug Fixes
Release date: 2023-07-17
Bug Fixes
Release date: 2023-07-03
New Features
Added audio track detection interface checkAudioTrackIsActive, video track detection interface checkVideoTrackIsActive, developers can check whether the current audio and video capture is normal.
For related APIs, please refer to checkAudioTrackIsActive、checkVideoTrackIsActive
Bug Fixes
Release date: 2023-06-15
Bug Fixes
Release date: 2023-06-08
New Features
Note: After this interface is called, other interfaces of the same instance cannot be called again. Developers are requested to leave this engine instance empty in time to avoid errors.
Added the interface destroyEngine to destroy the engine instance. This interface is called at the end of the SDK life cycle to reclaim the remaining internal resources of the engine and close redundant network connections.
For related APIs, please refer to destroyEngine
Enhancements
Starting from version 112 of Chrome, RTCMediaStreamTrackStats is deprecated, causing the information returned in publishQualityUpdate, playQualityUpdate callbacks in the SDK to be affected. Affected fields include: videoTransferFPS, frameHeight, frameWidth, audioLevel, audioSendLevel, audioSamplingRate and other local and remote media information fields.
SDK versions 2.25.0 and above are compatible with RTCMediaStreamTrackStats to ensure the correctness and completeness of the information returned by the callback.
For related APIs, please refer to publishQualityUpdate, playQualityUpdate
Bug Fixes
Release date: 2023-04-28
New Features
Note: If you need to use this function, please contact ZEGOCLOUD technical support.
Support to obtain copyright songs or accompaniment resources through the copyright music function, which can be used in chorus or background music scenes such as online KTV, Voice Chatroom, etc.
Release date: 2023-04-23
New Features
Notice:
Express Web SDK 2.24.0 and above provide background blur and virtual background functions, which can separate the subject in the Video screen from the original picture, and blur the area outside the subject or replace it with a custom picture.
For related APIs, please refer to initBackgroundModule, setBackgroundBlurOptions, setVirtualBackgroundOptions, enableBackgroundProcess
For related APIs, please refer to startMixerTask
Notice:
Scope Voice supports custom setting of the sounding mode and listening mode. Users can decide who can hear his voice by selecting the sounding mode, and who can listen to his voice by selecting the listening mode.
For related APIs, please refer to setRangeAudioCustomMode
ZegoRangeAudioMode Added the secret team mode SecretTeam
, in this mode, users in the same room, the listener can communicate with the same team, and can also hear all the players within the Audio receiving range, And it is the voice of the speaker in the world mode, such as the scene of the game Werewolf in Space.
For related APIs, please refer to setRangeAudioMode
For related APIs, please refer to networkQuality
Enhancements
When the startMixingAudio interface is called, after the src of the audio tag player that has been Audio Mixing is replaced, the SDK will automatically Audio Mixing without additional calls to the interface.
For related APIs, please refer to startMixingAudio, stopMixingAudio
For related APIs, please refer to setVoiceChangerPreset
For related APIs, please refer to enableAiDenoise
unregisterSEIFilter
attributeFor the SEI content whose payloadType is 5, when the SEIPass
parameter value of ZegoSEIConfig is set to true and unregisterSEIFilter
is not set, all SEI sending and receiving will be released. When the SEIPass
parameter value of ZegoSEIConfig is set to false (default value), only SEI content matching unregisterSEIFilter
will be sent and received.
For related APIs, please refer to setSEIConfig
When sending SEI binary data, it may be the same as the fragmentation start identifier of the NALU in H264, resulting in an error in the NALU slice. Therefore, ZegoSEIConfig adds the emulationPreventionByte
property to optimize the anti-competition code processing of the SEI switch, that is, to encode the content of the SEI data that is the same as the identifier, and then send it out, and decode it when the play streams receives it , which can effectively avoid this situation.
For related APIs, please refer to setSEIConfig
Bug Fixes
Release date: 2023-03-17
New Features
Notice:
When users have privacy protection needs, or want to improve the fun of voice gameplay, and want to be able to change the voice in real time, they can use the real-time Voice Changer function.
For related APIs, please refer to setVoiceChangerPreset
For related APIs, please refer to exceptionUpdate
Enhancements
Added canPlayVideo and canPlayAudio events to the on interface of the Web media streaming component ZegoStreamView, respectively for listening to playback The first frame of the Video and Audio of the controller is played.
For related APIs, please refer to canPlayVideo, canPlayAudio
Bug Fixes
Release date: 2023-01-06
New Features
Note: All audio and Video tracks cannot be removed, and the function of adding or deleting audio and Video tracks does not support the use of large and small streams.
Audio and Video support separate management. In the case of restricted (unauthorized) audio and Video permissions, after creating a stream with only audio or video tracks, you can add or remove audio and Video tracks in the stream according to subsequent permissions.
For example, initially there was only Microphone permission, so an Audio-only stream was created. However, during use, the user authorizes the Camera permission, so the user can add the Camera track to the existing stream, and the play streams end is not aware of this, and can smoothly switch from Audio rendering to audio and Video rendering.
For related APIs, please refer to addTrack, removeTrack
Range audio support obtains the list of users within the callback range through the enableAudioSourceUpdateChecker interface. When updating the listener or audio source location, the audioSourceWithinRangeUpdate callback can be triggered.
For related APIs, please refer to enableAudioSourceUpdateChecker, audioSourceWithinRangeUpdate
Enhancements
When the publish streams end stops pushing Video data, the Video screen support setting of the play streams end stays at the last frame. Developers can flexibly choose whether to stay at the last frame or display a black screen according to business needs.
For related APIs, please refer to play
When creating a Screen Sharing stream, you can enable 3A configuration through the ANS
, AGC
and AEC
parameters of the createStream interface. When creating Audio for a Screen Sharing stream, the default 3A configuration only has AEC turned on, and AGC and noise cancellation processing turned off.
For related APIs, please refer to createStream
Bug Fixes
resourceMode
parameter of the startPlayingStream interface is configured as CDN, the CDN URL is empty when playing a non-room stream.Release date: 2022-11-25
New Features
Note:
In order to facilitate developers' quick access and lower the developer's access threshold, the SDK provides a variety of Preset scenarios. Developers can select the corresponding room mode according to the required scene, and the SDK will automatically apply the audio and Encoding & Decoding, audio and Video parameters, flow control strategy and other configurations suitable for the scene, so as to quickly achieve the best effect in the scene.
Currently supported scenarios include Live Video Streaming, standard 1v1 audio and Video Calling, high-quality 1v1 audio and Video Calling, and standard Voice Chatroom.
For related APIs, please refer to setRoomScenario, createStream
Note:
The scope voice stream supports turning on the AI noise reduction function. In the call scene, all sounds except human voices are recognized as noise and eliminated. On the basis of eliminating steady-state noise, effectively eliminate unsteady-state noise and achieve high-fidelity human voice. The main noises include mouse, keyboard, knocking, air conditioner, kitchen dishes, noisy restaurant, ambient wind, coughing, blowing, etc. Non-human noise.
Related API please refer to ZegoExpressRangeAudio.enableAiDenoise
Note: The mobile web platform does not support enabling spatial AudioEffect due to compatibility issues, but the range Controller effect is still available. For related APIs, please refer to setStreamVocalRange, updateStreamPosition, setCustomSourceVocalRange, updateCustomSourcePosition
Bug Fixes
Release date: 2022-11-04
Enhancements
Bug Fixes
Release date: 2022-10-27
New Features
NOTE: To use this feature, please contact ZEGOCLOUD Technical Support.
Seamless integration of ultra-low latency L3 live broadcast and CDN, real-time diagnosis of viewers' Video stream quality problems and intelligent adjustment, to improve viewers' live broadcast viewing experience, weak network resistance is significantly better than CDN, this function can be enabled through SDK Controller, and at the same time The startPlayingStream interface adds the enumeration value of ZegoWebPlayOption.resourceMode to 3.
For related APIs, please refer to startPlayingStream
Note: Since there are some abnormal problems in the hardware encoding of a small number of devices, the SDK uses the software encoding method by default.
A new interface for enabling Video hardware encoding enableHardwareEncoder has been added. Developers can enable this configuration to improve encoding efficiency.
Developers can choose whether to enable this switch according to the support of the model, and can check the ZegoPublishVideoStats.isHardwareEncode logo through the publish streams quality interface publishQualityUpdate to confirm the current hardware encoding is enabled or off state.
If the hardware encoding is not publish streams after calling the interface for enabling Video hardware encoding, it means that the device does not support the hardware encoding function.
For related APIs, please refer to enableHardwareEncoder, ZegoPublishVideoStats.isHardwareEncode
When creating a media stream for Screen Sharing, the SDK will automatically select the corresponding optimal bit rate range and key frame interval according to the actual resolution, frame rate and other Video configurations, which can meet most scenarios. If the developer has a special scenario and wants to set it by himself, he can call the createStream interface to set the minimum bit rate minBitrate and the keyframe interval keyFrameInterval:
For related APIs, please refer to createStream, ZegoScreen.keyFrameInterval, ZegoScreen.minBitrate, ZegoCamera.keyFrameInterval, ZegoCamera.minBitrate
A new interface for enabling automatic switching devices enableAutoSwitchDevice is added. You can call this interface to enable the automatic switching device switch. When the current device is removed, the SDK will automatically switch to the first device according to the device list in the browser. equipment. Due to version compatibility, this switch is disabled by default, and it is recommended that users turn this switch on.
For related APIs, please refer to enableAutoSwitchDevice
Enhancements
Optimized the original sound wave callback implementation to improve the compatibility and performance of the sound wave callback function.
Bug Fixes
navigator.onLine
is incorrectly marked as false.Release date: 2022-09-09
New Features
Note:
ZEGO Express Web SDK provides AI noise reduction function, developers can perform noise reduction processing on the sound when using the microphone to collect sound. On the basis of traditional noise reduction to eliminate steady-state noise, synchronously processes non-steady-state noise (including mouse click, keyboard, percussion, air conditioner, kitchen dishes, restaurant noise, ambient wind, cough, non-human noises such as blowing sound), retain pure voice, and improve the user's call experience.
For related APIs, please refer to enableAiDenoise
In the process of using push-pull flow, after the collection device is pulled out, it can automatically switch to the first device in the current collection device list.
Note:Currently, only the Google Chrome browser on the PC side is supported.
Added ZegoExpressRangeAudio.selectSpeaker interface to specify the speaker device for range audio playback.
For related APIs, please refer to selectSpeaker
Added the ZegoExpressRangeAudio.setRangeAudioVolume interface, which is used to set the audio playback volume in the range. The settable range is [0,200], and the default value is 100.
For related APIs, please refer to ZegoExpressRangeAudio.setRangeAudioVolume
Enhancements
The setCaptureVolume interface supports volume gain based on the original captured volume. The gain interval is adjusted from [0,100] to [0,200]
For related APIs, please refer to setCaptureVolume
In the playerStateUpdate callback interface, supplement the indicator information related to the freeze. The fields are defined as follows:
For related APIs, please refer to playerStateUpdate
Range speech support sets how often the location is updated in real-time inside the SDK.
For related APIs, please refer to ZegoExpressRangeAudio.setPositionUpdateFrequency
Bug Fixes
Release date: 2022-08-05
New Features
Note: The streamType parameter of the startPlayingStream interface currently does not support modification during streaming.
In order to provide users with different network statuses with a better playback experience, the Express SDK supports the configuration of streams with different resolutions on the streaming end, which is suitable for multi-person calls, monitoring, and weak network scenarios. In a multi-person session, you can tile and view the small images of each user, or zoom in to view individual user images.
For related APIs, please refer toenableDualStream,setLowStreamParameter,startPlayingStream
Use the takeStreamSnapshot interface of the media streaming component to take Snapshot of the publish streams Preview and play streams rendering screen respectively.
For related APIs, please refer to takeStreamSnapshot
When the surrounding environment of the host is dark and affects the viewing experience of the audience, the publish streams end can set the low-light enhancement through the setLowlightEnhancement interface to improve the picture brightness of the publish streams Video. The Low Light Boost feature consists of two modes:
For related APIs, please refer to setLowlightEnhancement
Enhancements
Optimize the domain name connection strategy, when the default domain name connection fails, retry the alternate domain name.
Bug Fixes
Release date: 2022-07-12
Bug Fixes
Release date: 2022-07-08
New Features
The newly added MediaStream media stream playback component has the ability to play media and manage playback, simplifying the user access process and management process.
For related APIs, please refer to createLocalStreamView, createRemoteStreamView, ZegoStreamView
When using the range voice capability, you can specify a Microphone. Obtain the Microphone device through getMicrophones, and then call ZegoExpressRangeAudio.selectMicrophone to specify the Microphone device through deviceID.
For related APIs, please refer to selectMicrophone
The range voice supports the AEC function. When the user turns on the device to speak, the Microphone may pick up the sound of the far end, and the AEC function will eliminate the possible echo noise.
For related APIs, please refer to enableSpeaker
Note: When setting the constraint parameters for the resolution of the obtained media stream, it is not recommended to use too low parameters for constraint (the resolution setting is less than 100x100), otherwise the publish streams may fail or the stream cannot be pulled.
When selecting videoQuality as 4 and setting width, height and frameRate, you can set an optional constraint object, including four configuration items of exact, ideal, max and min, so as to set the configuration of width, height and frameRate of the media stream respectively:
For related APIs, please refer to createStream, setVideoConfig, ZegoPublishStreamConfig, ZegoCamera, ZegoScreen
Enhancements
Added the event callback for abnormal Beautify function, involving the following Error Codes:
For related APIs, please refer to beautyEffectError
Increase the frequency of judging whether the range voice function exceeds the listening range (currently 1 second), so that the developer can more sensitively judge whether there is sound after calling the interface to update the position.
Bug Fixes
Release date: 2022-06-10
Bug Fixes
Release date: 2022-05-11
New Features
SEI (Media Supplementary Enhancement Information) is the supplementary enhancement information (such as text information) in the H.264 encoded Video . It is used to transmit some information in the Video stream to the opposite end during a Video Calling , so that the picture and additional information can be accurately aligned. . Commonly used for live answering questions, lyrics synchronization and other scenarios.
After the developer publish streams successfully, he can call the sendSEI interface to send the SEI information, and the peer end will trigger the playerRecvSEI callback after receiving the SEI information sent by the publish streams end when play streams .
For related APIs, please refer to sendSEI, setSEIConfig, playerRecvSEI, startPublishingStream, startPlayingStream
When the connection state of the room changes, the roomStateChanged callback will be triggered, and the "ZegoRoomStateChangedReason" parameter will provide more detailed connection state and state change reasons.
In version 2.16.0 and above, it is recommended to use the roomStateChanged callback instead of the roomStateUpdate callback to monitor room state changes.
For related APIs, please refer to loginRoom, logoutRoom, roomStateChanged
Enhancements
Set the audio and Video configuration interfaces setVideoConfig and setAudioConfig to support calling in the Preview stage from version onwards, you can modify the resolution, frame rate, bit rate, Audio of the Video before the publish streams is successful 3A and other parameters.
The interfaces related to the Audio Mixing function startMixingAudio, stopMixingAudio and setMixingAudioVolume support calling in the Preview stage since version 1.
Audio Effect Player ZegoAudioEffectPlayer instance methods, such as start, stop, pause, etc., starting from this version, support in Called in the Preview phase.
The above interfaces in 2.15.0 and earlier versions only support calling after successful publish streams.
For related APIs, please refer to setVideoConfig, setAudioConfig, startMixingAudio, stopMixingAudio, setMixingAudioVolume, ZegoAudioEffectPlayer
Bug Fixes
Release date: 2022-04-08
New Features
Sound effects refer to short sound effects played to enhance the sense of realism or to enhance the atmosphere of the scene, such as applause, gift sound effects, prompt sounds, etc. during live broadcasts; in games, bullet sounds and collision sounds are played. ZegoExpress SDK provides a sound file player, which manages the sound effects on the media stream in a unified manner through ZegoAudioEffectPlayer, supports sound playback (multiple sound effects can be overlapped), playback control (such as pause playback, volume adjustment, set playback progress), preload sound effects and other functions.
For related APIs, please refer to createAudioEffectPlayer, loadAudioEffect, unloadAudioEffect
After creating the camera media stream, call the enableVideoCaptureDevice interface, and set the "enable" parameter to enable or disable the camera capture function. For example, when the host does not want the streaming end to see the camera picture during a certain period of time, and does not want the camera device to be occupied all the time, it can be set to off.
For related APIs, please refer to enableVideoCaptureDevice
Developers can actively obtain the quality of push and pull streams (including resolution, frame rate, bit rate, etc.) to understand the quality status of the current stream, so as to perform related business operations such as UI display. After the stream is pushed successfully, call the getPublishingStreamQuality interface to actively obtain the stream quality that is being pushed. After the stream is pulled successfully, call the getPlayingStreamQuality interface to actively obtain the stream quality of the stream being pulled.
For related APIs, please refer to getPublishingStreamQuality, getPlayingStreamQuality
After obtaining the list of audio output devices through the getSpeakers interface, call the useAudioOutputDevice interface, set the media label element (<audio> or <video>), and pass the Enter the deviceID (obtained through the getSpeakers interface), and use the corresponding speaker device to play.
For related APIs, please refer to useAudioOutputDevice
When the camera is turned off, it supports continuous push of still pictures in JPEG/JPG, PNG and other formats. For example, when the host exits the background, the camera will be automatically turned off. At this time, the audience side needs to display the picture of the host leaving temporarily. After initializing the SDK, set the path of the still image to be pushed through the setDummyCaptureImagePath interface before closing the camera. After the normal push is started, it will start when the camera is closed by calling the mutePublishStreamVideo interface. To push a still image, calling the mutePublishStreamVideo interface to open the camera will end pushing the still image.
For related APIs, please refer to setDummyCaptureImagePath, mutePublishStreamVideo
Enhancements
Supports the parallel operation of login and streaming, that is, after calling the loginRoom interface, the startPlayingStream interface can be called immediately (the stream ID needs to be specified), which is used to achieve faster pull-in Stream playback effect.
When the AppID is incorrect, an error code of 1001004 will be thrown, indicating that the authentication failed. At this point, you need to check whether the incoming AppID is consistent with the AppID in the ZEGOCLOUD console.
When the multi-room function is not enabled, calling the loginRoom interface will throw an error code of 1002036, indicating that the login fails. Please contact ZEGOCLOUD technical support to enable this function.
When getting the streaming media configuration fails, the error code 1101002 will be thrown, please contact ZEGOCLOUD technical support.
When the "streamID" passed in when calling startPlayingStream does not exist, the error code 1104039 will be thrown. Please confirm whether the "streamID" is correct.
When calling the setSoundLevelDelegate interface, the "options.enableInBackground" parameter can be used to set whether to keep the sound wave and callback sound wave when the page is hidden. When "options.enableInBackground" is set to "false", the SDK will turn off the acquisition of sound waves when the page is hidden to reduce performance consumption.
For related APIs, please refer to setSoundLevelDelegate
Call the setVideoConfig interface to dynamically modify the video quality level "videoQuality" of the push stream.
For related APIs, please refer to setVideoConfig
Bug Fixes
Release date: 2022-03-09
New Features
Added [getCameras] interface to get the list of Video input devices, [getMicrophones] to get the list of Audio input devices, and [getSpeakers] to get the list of Audio output devices. The difference from the [enumDevices] interface is that the above 3 newly added media device lists will pop up a prompt box for the corresponding device permission acquisition when the page does not grant device permissions, and there is no need to call [createStream] or [checkSystemRequirement] in advance. .
For related APIs, please refer to getCameras, getMicrophones, getSpeakers, enumDevices
Due to the browser's protection of security and privacy, the page needs to call the [getCameras], [getMicrophones], [getSpeakers] interfaces in a secure environment (https, localhost, 127.0.0.1). For the privacy protection protocol, please refer to Privacy and security.
In the case of no device permission granted to the page, calling the [getCameras] interface will temporarily open the Camera/[getMicrophones] interface will temporarily open the Microphone to trigger the browser's application for Camera and Microphone device permissions. On browsers such as Chrome 81+, Firefox, Safari, etc., accurate device information cannot be obtained without media device permissions.
Enhancements
Bug Fixes
Fixed an issue where the browser could not get the Audio -related quality parameter totalSamplesReceived when the play streams setting only pulled the Video but not the Audio , which caused the SDK to report an error.
Fixed a bug where the start of publish streams will be blocked and the Error Codes 1103073 will be thrown if the Beautify has not yet taken effect, indicating that the developer cannot publish streams during the Beautify activation process.
Fixed the problem that the Microphone status becomes true after pushing the pure Video stream after setCaptureVolume.
Fixed the issue that when the user server calls the RTC server API to send the room additional message, the sender triggers the callback of the room additional message sent by the user.
In version 2.13.0, before the Beautify on, the probability of calling the startPublishingStream publish streams interface will cause an unclear error report. On version 2.14.0, calling startPublishingStream before the Beautify is enabled will throw Error Codes 1103073, indicating that the timing of the publish streams timing of the API call is wrong.
After the SDK stops the push-pull stream, the log error message related to websocket will appear.
Release date: 2022-01-11
New Features
ZEGO provides basic Beautify functions to show users a good skin condition and create a natural Beautify effect. Developers can call the setEffectsBeauty interface to adjust the degree of Whiten, Polish, Sharpen, and ruddy after obtaining the media stream in createStream to achieve basic Beautify capabilities.
This function is often used in scenarios such as Video Calling and live broadcasts.
For related APIs, please refer to setEffectsBeauty
Bug Fixes
Fixed the issue of calling mutePublishStreamAudio, mutePublishStreamVideo, useVideoDevice or useAudioDevice after starting to publish streams until the publish streams is successful] When the interface is used, an error message will be thrown.
Fixed the problem that the page automatically refreshes when publish streams on the Safari browser of iOS 15.1, causing it to not work properly.
The SDK uses the canvas collection solution to avoid this problem, and the performance overhead of this avoidance solution is relatively larger. For performance reasons, it is recommended that the quality of the publish streams capture in iOS 15.1 should not be too high. This issue has been fixed in iOS 15.2.
Fixed the problem that the Audio will be automatically restored to open when the setAudioConfig interface is called to modify the publish streams Audio parameters after calling the mutePublishStreamAudio interface to close the Audio during the publish streams process.
Fixed the problem that the Token cannot be updated by calling the renewToken interface when the Token expiration management mechanism is not configured.
Release Date: 2021-12-06
Enhancements
Bug Fixes
Release Date: 2021-11-23
New Features
When developers need to distribute instructions such as remote Controller, cloud games, etc., through real time sequential data, they can obtain news from the publisher with low latency.
Added [createRealTimeSequentialDataManager] interface. After calling this interface, it returns a real time sequential data instance, which supports the functions of start broadcasting (startBroadcasting), stop broadcasting (stopBroadcasting), sending real time sequential data (sendRealTimeSequentialData), start subscribing (startSubscribing), and stop subscribing (stopSubscribing).
For related API, please refer to createRealTimeSequentialDataManager, startBroadcasting, stopBroadcasting, sendRealTimeSequentialData, startSubscribing, stopSubscribing
Bug Fixes
Release Date: 2021-11-18
Bug Fixes
Release Date: 2021-11-04
Bug Fixes
Release Date: 2021-11-02
Bug Fixes
Release Date: 2021-10-28
Bug Fixes
Release Date: 2021-10-15
New Features
When you have different requirements for Video experience in different scenarios, you can set different publish streams modes on the publish streams end as needed.
createStream The camera.videoOptimizationMode, screen.videoOptimizationMode, and custom.videoOptimizationMode parameters are added to the [createStream|_blank- interface, which are used to set the publish streams mode of the Camera, Screen Sharing, and custom captured Video , respectively. The three can be passed default, detail, and motion, which respectively represent default (that is, both clarity and fluency), clarity priority, and smoothness priority. The default value is default.
Select clarity first. In most cases, the SDK will not reduce the sending resolution, but it may reduce the frame rate.
Select smoothness first. In most cases, the SDK will not reduce the frame rate, but may reduce the sending resolution.
Choosing both at the same time may reduce the frame rate and resolution at the same time.
For related API, please refer to createStream
To use this function, you need to upgrade the SDK and contact ZEGOCLOUD technical support for configuration.
In different business scenarios, the time limit for the user's permission to log in to the room, publish streams, etc., can be implemented 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 publish streams. This mechanism can make user authority management more secure, and is often used in KTV and Voice Chatroom scenes.
For related API, please refer to renewToken, tokenWillExpire
When Stream Mixing streams, you can set the rendering mode for each stream. When the resolution ratio of the Stream Mixing stream input stream is inconsistent with the layout ratio of the corresponding input stream on the Stream Mixing stream output screen, different rendering modes can be selected according to different business scenarios.
You can set the rendering mode of the Stream Mixing stream input Video screen through the mixStreamConfig.inputList[].renderMode parameter of the startMixerTask interface. A value of 0 means filling mode, 1 means adaptation mode, and the default is filling mode.
For related API, please refer to startMixerTask
Enhancements
Through createStream, the audio and Video of the device cannot be captured. When an error occurs when creating a stream, the Error Codes 1103064, 1103065, and 1103066 are added to identify "no device permission", "device not used for capture", and " Device parameter error".
For related API, please refer to createStream
The stats parameter in the play streams quality callback interface playQualityUpdate adds peerToPeerPacketLostRate and peerToPeerDelay to identify the "end-to-end packet loss rate" and "end-to-end delay" respectively.
For related API, please refer to playQualityUpdate
Bug Fixes
Release Date: 2021-09-03
Bug fixed
Release Date: 2021-08-27
New features
The newly added range voice function module can provide range voice, 3D sound effects, team voice and other functions. It is suitable for eating chicken games and meta-universe scenes.
Range voice: It means that the listener in the room has a range limit on the audio receiving distance. If the distance between the speaker and himself exceeds this range, the sound cannot be heard. To ensure clear voice, the release date is exceeded nearby: When 20 people are speaking, only the 20 closest speakers can be heard.
3D sound effect: The sound has a sense of 3D space and is attenuated by distance.
Squad Voice: Players can choose to join a squad, and support freely switching between "world" mode and "squad only" mode in the room.
For related APIs, please refer to createRangeAudioInstance, ZegoExpressRangeAudio, setEventHandler, setAudioReceiveRange, updateSelfPosition, updateAudioSource, enableSpatializer, enableMicrophone, enableSpeaker, setRangeAudioMode, setTeamID
Enhancement
The internal retry logic of the SDK is optimized to improve user experience during network switching.
Bug fixed
Release date: 2021-08-12
Bug fixed
Release date: 2021-08-09
Enhancement
When calling the startMixerTask interface, if the inputList[].streamID parameter value is null or undefined, an error message will be displayed indicating that the input parameter is incorrect.
For related API, please refer to startMixerTask
SDK versions prior to 2.9.0, you can only publish streams or publish streams before a successful call replaceTrack interface will error before calling the publish streams does not complete and prompt does not support the call of the interface.
The 2.9.0 SDK version is optimized to call the replaceTrack interface to replace the audio and Video track before the publish streams is successful.
For related API, please refer to replaceTrack
In SDK versions prior to 2.9.0, when the publish streams screen on the publish streams end is closed, the streaming status signaling may be lost due to the network disconnection, which makes it impossible to notify the play streams end to restore the screen through signaling in a timely manner.
The 2.9.0 SDK version is optimized to use streaming data instead of relying on media signaling to restore the Video image, avoiding the problem that the Video image cannot be restored in a weak network situation.
Bug fixed
Fixed the problem of switching the external Camera or Microphone device through the useAudioDevice or useVideoDevice interface after publish streams , and it did not trigger when disconnecting from the external device at the hardware level deviceError callback problem
Fixed the problem that the setting of the start bit rate did not take effect after the custom.source parameter was passed to MediaStream when creating a third-party stream via createStream
Fixed the problem that the reported Camera status did not turn off when the device was unplugged when the external Microphone and Camera were used for publish streams .
Release date: 2021-07-09
New features
When the developer does not want the microphone to be heard by the streaming end, they can set whether to enable the microphone sound through the "enable" parameter of the muteMicrophone interface, "true" means to turn off the microphone (ie mute) , "False" means to turn on the microphone. This interface can turn on or turn off the sound of the media stream of all microphones created by the current engine instance without affecting other sounds (such as the playback of background music).
Call the isMicrophoneMuted interface to get the Microphone on/off status of the current engine instance.
For related API, please refer to muteMicrophone, isMicrophoneMuted
You need to contact ZEGOCLOUD technical support to enable this 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) publish streams, play streams, send real-time messages, and receive message callbacks. This function can isolate the messages and callbacks of multiple rooms, and realize more flexible mic- Co-hosting services. ZEGOCLOUD is recommended for super small class scenes with inter-room interconnection and online education.
After initializing the SDK, you need to call the enableMultiRoom interface to open the multi-room before logging in to the room, and then call the loginRoom interface to Multiple Rooms.
For related API, please refer to enableMultiRoom, loginRoom
Enhancement
mutePublishStreamVideo A new "retain" parameter is added to the interface, which is used to set whether to keep the Preview screen when closing the publish streams screen. When the value of the "retain" parameter is "true", it means to keep, and the default value is "false" .
For related API, please refer to mutePublishStreamVideo
When the App is not configured with the Low-Latency Live function but uses the low-latency mode to play streams, the SDK will throw an Error Codes 1104038, indicating that the current AppID does not support Low-Latency Live.
For related API, please refer to startPlayingStream
Bug fixed
Fixed an issue where an error would be reported when using the web-side publish streams when the network was disconnected, but the error message of the disconnection publish streams failed to be returned normally.
Fixed the problem that the rapid rate increase strategy when publish streams is only effective for H.264 encoding, but not for VP8 encoding.
Release date: 2021-06-10
New features
on interface added capturedSoundLevelUpdate callback event, the difference between this callback and push and pull stray sound callback soundLevelUpdate It is that capturedSoundLevelUpdate can obtain the locally collected audio sound waves immediately after the media stream is created, that is, the volume of the local microphone collection, which can be used to detect whether the microphone sound is normal.
For related API, please refer to capturedSoundLevelUpdate
createStream The "source.camera", "source.screen", and "source.custom" properties in the interface of createStream have added a "startBitrate" parameter to set the start bitrate increase strategy of the publish streams.
Due to the browser’s default policy, the start bit rate of the publish streams rises slowly from 300 kbps to the target bit rate by default, which results in the blurry picture initially received by the play streams end. By setting the value of the "startBitrate" parameter to "target", the developer can quickly increase the start bit rate of the publish streams to the set target bit rate. (When the set target bit rate is too high and the network status is poor, the streaming video may be stuck or blurred)
This feature is only effective in Chrome kernel browsers that have not turned on hardware acceleration.
For related API, please refer to createStream
Enhancement
A small number of mobile devices do not support turning on two Camera at the same time, causing the camera to fail to switch normally when the second Camera is turned on during the Camera Selection process. The SDK has added a new logic for retrying when switching Camera fails to avoid errors when opening two Camera at the same time.
After calling the Stream Mixing interface startMixerTask, the error thrown when the Stream Mixing server makes an error carries the prompt message "extendedData".
For related API, please refer to startMixerTask
When the publish streams operation is prohibited by the ZEGOCLOUD background, the 1003025 Error Codes will be thrown in the publish streams state callback, and the developer can use the Error Codes to provide corresponding business prompts.
For related API, please refer to publisherStateUpdate
publish streams end turns on the hardware acceleration to publish streams, the play streams end will have a blurry screen when the packet loss rate is high. The SDK optimizes this issue, and it only takes effect in the Chrome kernel browser.
Bug fixed
Fixed the problem that after switching Audio devices, the sound wave callback always returns 0 instead of the sound wave of the new device
Since the SDK did not reacquire the device sound wave after switching the Audio device, the sound wave was always 0. The current version has fixed this problem.
Fixed the problem that the "audioMuteState" in the play streams quality message did not change when the Microphone was turned off at the publish streams end
Release date: 2021-04-29
New features
Low-Latency live streaming focuses on providing stable and reliable live broadcast services. Compared with standard video live broadcast products, the audio and video delays are lower, the synchronization is stronger, and the weak network resistance is better, which can bring users a millisecond-level live broadcast experience. It is usually used in scenes such as large education classes, live shows, e-commerce live broadcasts, watch together, online auctions, etc.
When developers need to pull low-latency live streams, they can choose to pull low-latency live streams by setting the streaming parameter "resourceMode" to "2".
For related API, please refer to startPlayingStream
The current version of the SDK already supports this callback and interface, and it is expected to be officially available on 2021-06-10.
When the token is about to expire 30s before the SDK will actively trigger the tokenWillExpire callback. When receiving the callback, the developer needs to regenerate the token and call the renewToken interface update .
The renewToken interface is often used in the following scenarios:
a. When the token expires, update the token through this interface. b. When the developer needs to switch from the login permission to the push streaming (including login) permission, or from the push streaming (including login) permission to only the login permission, it can be implemented through this interface.
For related APIs, please refer to tokenWillExpire, renewToken
The current version of the SDK already supports this authentication function, but it is expected to be officially used on 2021-06-10.
The new version token is used to control whether you can log in and whether you can push the stream. If you want to use the new version token authentication function, please contact ZEGOCLOUD technical support to enable the corresponding configuration.
For related APIs, please refer to tokenWillExpire, renewToken
Enhancement
The first frame of the push-pull stream can be shortened by more than 150 ms on the original basis.
The algorithm of push-pull streaming network quality has been further optimized, and the accuracy of [videoQuality] and [audioQuality] monitoring in push-pull streaming quality callbacks has been improved.
If it detects that the current network quality is poor, it will trigger node detection, and the SDK will find a better quality push-pull stream node to switch, and further improve the ability to resist weak networks.
Bug fixed
Release date: 2021-04-15
Bug fixed
For related API, please refer to useVideoDevice
Release date: 2021-04-01
Enhancement
For related API, please refer to checkSystemRequirements
For related API, please refer to setLogConfig
For related API, please refer to createStream
Bug fixed
Release date: 2021-03-18
Enhancement
For related API, please refer to [startMixingAudio]
Bug fixed
Fixed the problem that an error occurred when the stream was stopped immediately after the stream was pulled
Fixed the problem that streaming stuck when the camera was turned off and then turned on
Release date: 2021-03-04
New features
Call the microphone collection volume interface, you can adjust the volume of the push end, so that the audience can feel the volume change.
For related API, please refer to [setCaptureVolume]
When a room member is kicked offline, the SDK needs to prompt the specific reason for being kicked offline based on additional information.
Bug fixed
Release date: 2021-01-28
Bug fixed
Fixed an issue where the video bitrate could not reach the expected value when hardware acceleration was turned on in the Chrome browser on Windows devices
Fixed the problem that the WeChat built-in browser on the PC reported an error after a period of time.
Release date: 2021-01-14
Enhancement
Release date: 2020-12-31
New features
After pulling the stream successfully, the developer can dynamically adjust whether to pull the audio stream or video stream as needed.
For related APIs, please refer to [mutePlayStreamVideo]
Bug fixed
For related API, please refer to destroyStream
Release date: 2020-12-17
New features
For related API, please refer to [roomStreamUpdate]
Supports dynamic adjustment of the volume of background music or sound effects mixed in during push streaming.
For related API, please refer to [setMixingAudioVolume]
Enhancement
Extends the waiting time of websocket connection timeout during the push-pull stream retry process, improves the connection success rate and the ability to resist weak networks.
Bug fixed
For related API, please refer to [setMixingAudioVolume]
Release date: 2020-12-03
Bug fixed
For related API, please refer to mutePublishStreamAudio
Please refer to stopPublishingStream, roomStreamUpdate for related API
For related API, please refer to loginRoom, roomUserUpdate
Release date: 2020-11-26
Bug fixed
Fixed the problem that some push-pull streams cannot be restored to normal use after the network reconnection is successful.
Fixed the problem that the status may not be synchronized when the streaming terminal receives the camera status change in a short time.
Release date: 2020-11-23
Bug fixed
Release date: 2020-11-19
New features
When creating a third-party stream, set the number of audio channels and bit rate of the current push stream audio according to the number of audio channels and bit rate in the video file to avoid possible sound quality loss.
For related APIs, please refer to createStream
After creating a stream and pushing it successfully, you can modify the audio parameters of the push stream as needed, including noise reduction, automatic gain, and echo cancellation.
For related API, please refer to [setAudioConfig]
When an audio and video device is added or removed from the system, it will trigger [audioDeviceStateChanged] or [videoDeviceStateChanged] callback. By monitoring this callback, users can use specific audio and video equipment for data collection as needed.
For related APIs, please refer to [audioDeviceStateChanged], [videoDeviceStateChanged]
Enhancement
Retry when adding and deleting the sending stream fails to increase the success rate of the push stream under weak network conditions.
Bug fixed
Release date: 2020-11-05
Enhancement
For related API, please refer to startMixingAudio
About one minute after leaving the room, the log websocket connection is disconnected, and the error level error message is no longer displayed.
Bug fixed
Fix the sendCustomCommand callback result, delete the messageID in the return value.
Fix the issue that roomStateUpdate is not triggered when the same user logs in on other platforms and the web platform is offline.
Fix the problem that other users in the room receive the roomUserUpdate callback when logging in to the room with the same user ID.
Release date: 2020-10-15
New features
The audio sending frame rate (audioFPS) is added to the push-pull stream quality callback to show the current audio fluency.
For related APIs, please refer to publishQualityUpdate, playQualityUpdate
If the videoQuality parameter passed in when creating a screen sharing stream is 4, the developer needs to pass the frame rate, bit rate, and resolution to the SDK.
For related API, please refer to createStream
Supports dynamic modification of the resolution (width and height), frame rate and bit rate of the audio and video stream through the [setVideoConfig] interface after the stream is successfully created and pushed.
For related API, please refer to [setVideoConfig]
Enhancement
Optimized and reconstructed the retry logic when abnormalities occur during audio and video calls, improved the SDK's ability to resist weak networks, and reduced business-focused retry.
Optimized to add and delete the retweet CDN interface, remove authentication, and improve ease of use.
For related API, please refer to addPublishCdnUrl, removePublishCdnUrl
Bug fixed
Fix the error code information duplication problem.
Fix other known issues.
Release date: 2020-09-24
New features
Support to replace the audio and video tracks in the local audio and video stream, for example, you can switch the video track between the camera, screen sharing or video, and switch the audio track between the microphone and mp3.
For related API, please refer to [replaceTrack]
When the SDK detects that the device is unavailable, it supports returning the corresponding error message to show the specific error reason.
For related API, please refer to [checkSystemRequirements]
Enhancement
Optimized the error code value returned when the request response timed out due to network problems during streaming.
Strictly judge the numeric parameters in the interface, and only allow integers to be passed in to avoid errors.
For related APIs, please refer to loginRoom, createStream, setSoundLevelDelegate, startMixerTask
Bug fixed
Fix the problem of missing roomid after logging in to the room and changing the log configuration.
Fix other known issues.
Release date: 2020-09-10
New features
This function can set an additional message in the unit of the room, 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. Currently, 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]
Enhancement
Simplified the parameter setting for exiting the room. The roomID is modified as an optional parameter. Developers need not set the roomID when exiting the room.
For related API, please refer to logoutRoom
After the stream is created and previewed, the camera and microphone devices can be switched before the stream is pushed.
For related APIs, please refer to useVideoDevice, useAudioDevice
Added the type judgment of the resolution, bit rate, frame rate and other parameters set when creating the stream. Only positive integers are allowed to be passed in to avoid unknown error messages.
For related API, please refer to createStream
If the developer has an unhandled business logic error in the callback event, the SDK will catch the error to avoid affecting the operation of the internal logic of the SDK.
For related API, please refer to on
Bug fixed
Fix the problem that an error may be reported when calling the exit room in the mixed flow stop callback.
Fix other known issues.
Release date: 2020-08-27
New features
After the user enters the room, the roomOnlineUserCountUpdate callback will be triggered regularly (30 seconds) to notify the current number of people in the room, and developers can directly obtain the number of people.
For related API, please refer to [roomOnlineUserCountUpdate]
Enhancement
Simplified the parameter settings of the mixed stream. When the mixed stream is pure audio, the layout and other related parameters will be set to default values, and the developer does not need to pay attention to how to set the parameters.
For related APIs, please refer to startMixerTask
When the user enters the room and there is a stream in the room with additional information, streamExtraInfoUpdate will be called back, so developers only need to pay attention to this callback to process the logic of the stream additional information.
For related APIs, please refer to [streamExtraInfoUpdate]
Bug fixed
Release date: 2020-08-13
New features
Provide the ability for dual channel. This interface has compatibility issues and is only supported under chrome browser.
Refered to the related API createStream
Enhancement
This optimization adds the type judgments for push stream encoding, stream additional information, and candidate parameters to avoid unknown error messages.
Refered to the related API startPublishingStream
This optimization aims to improve the stability of the connection. The interval at which the SDK sends heartbeats to the stream media server will be dynamically adjusted according to the parameters given by the heartbeat of the stream media server.
Add the parameter values of muted, paused, and volume to the log information, so as to locate the silent problem of push-pull streaming.
Bug fixed
Fix the problem that the push-pull stream state callback may not be trigger on after repeatedly receiving the retry error message.
Fix other issues.
Release date: 2020-07-30
Bug fixed
Fix the issue that the CDN address in the callback information of the subscription pull stream update is empty.
Fix other known issues.
Enhancement
Release date: 2020-07-20
Bug fixed
Release date: 2020-07-15
New features
Enhancement
Release date: 2020-06-30
New features
Enhancement
Bug fixed
Release date: 2020-06-15
Release date: 2020-06-15
Enhancement
Bug fixed
Release date: 2020-06-08
Bug fixed
Release date: 2020-06-02
Bug fixed
Release date: 2020-05-15
Enhancement
useVideoDevice
to be a Promise.Bug fixed
Release date: 2020-04-30
Release date: 2020-04-15
Release date: 2020-03-30
Added the callbacks [remoteCameraStatusUpdate] and [remoteMicStatusUpdate] for monitoring the stream publishing side camera/microphone stauts.
Added a retry mechanism for connecting the access node to improve the connection success rate and stability.
Added a new feature to the API [checkSystemRequirements] for checking the support for screen sharing.
Added the reporting of stream publishing device status, and optimized the logging.
Added the support for sending Barrage Messages to users in the same room.
Release date: 2019-11-28
Release date: 2019-10-31
The initial release of the SDK, which included the following modules: