Release date: 2023-03-17
1. Add real-time Voice Changer function
- The Voice Changer function only supports the use of web pages on the PC side, and does not support the use of web pages on the mobile side for the time being.
- To use this function, please contact ZEGO technical support.
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
2. Added exceptionUpdate callback to monitor collection, encoding, rendering exceptions and other issues
For related APIs, please refer to exceptionUpdate
1. Add the first frame playback event to the Web playback component
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
2. Optimized the internal strategy of the SDK, improved weak network and first frame performance.
- Fix the problem that when the setAudioMuted and play interfaces are used to turn off the Audio and play pure Video, it is still restricted by the browser's automatic playback, resulting in the failure to play.
- Fix the problem that the checkSystemRequirements interface cannot check whether the SDK uses HTTPS or localhost.
- Fix the problem that the roomStreamUpdate callback on the play streams side does not detect the new addition of the room stream when repeatedly logging in to a large room (the number of people in the room exceeds a certain size, for example, more than 500 people).
- Fix the problem that when Screen Sharing, some Safaris set the width and height parameters, resulting in an error in the collection.
Release date: 2023-01-06
1. Support the function of adding or deleting audio and Video tracks after creating a stream.
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
2. Scope voice supports getting the user list within the callback scope.
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
1. When the publish streams end stops pushing Video data, the support setting of the play streams end screen stays at the last frame.
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
2. When creating a Screen Sharing stream, you can enable 3A configuration through parameters.
When creating a Screen Sharing stream, you can enable 3A configuration through the
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
- Fix the problem that the Safari browser causes abnormal device status due to permission issues.
- Fix the problem that the range voice switching speaker device interface fails.
- Fix the problem that when the
resourceModeparameter of the startPlayingStream interface is configured as CDN, the CDN URL is empty when playing a non-room stream.
Release date: 2022-11-25
1. Added the function of setting room scene
- setRoomScenario needs to be called before logging into the room to take effect.
- The scene modified by setRoomScenario will not affect the generated stream, only the one generated by calling createStream after calling the setRoomScenario interface Stream takes effect.
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
2. Added AI noise reduction function to range voice stream
- If you want to use this function, please contact ZEGO technical support for special packaging.
- AI noise reduction requires a special package and is set through the ZegoExpressRangeAudio.enableAiDenoise interface. It is not set together with 3A and other Audio-related parameters and is independent of each other.
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
3. Range Voice supports custom play streams, and supports Audio files as the sound source, and supports setting the sound range and sound source position
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
1. After calling the mutePublishStreamVideo and mutePublishStreamAudio interfaces, when using the Safari browser to play streams, the play streams end page that must appear will flash for a while.
2. Fixed the problem that when the user uses the Chrome58 browser, the Express SDK calls the startPublishingStream method with a compatibility problem and an error occurs, resulting in the problem that the publish streams does not continue
3. Fixed the problem that the voice and ZegoStreamView media stream playback components were preempted by other software audio on the iOS Safari browser, and the playback was interrupted. After the preemption, the playback was not resumed.
Release date: 2022-11-04
1. The node retry logic and multi cluster minimum guarantee strategy of push and pull streams.
1. Fixed the problem that the SDK relies on the browser's network status ID during network detection, resulting in login failure.
Release date: 2022-10-27
1. Support live play streams using CDN Plus
NOTE: To use this feature, please contact ZEGO 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
2. Support to enable Video hardware encoding function
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
3. Screen Sharing supports custom setting of minimum bit rate minBitrate and keyframe interval keyFrameInterval when creating media stream
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:
- Minimum bitrate minBitrate, in kbps, when the network condition is poor, the minimum bitrate of acceptable Video quality degradation. If the network condition is poor:
- For developers who require high-quality Video without fluency, minBitrate can be set to a value close to the target bitrate.
- When developers do not have high requirements for Video quality, they can set minBitrate to a lower value.
- Keyframe interval keyFrameInterval, in seconds. Screen Sharing can reduce the performance pressure of Video encoding by increasing the interval of key frames, but it will affect the smoothness, so it is not recommended to adjust this parameter arbitrarily. The current default value: 2 seconds, the value range: [2, 6], the required value is an integer.
For related APIs, please refer to createStream, ZegoScreen.keyFrameInterval, ZegoScreen.minBitrate, ZegoCamera.keyFrameInterval, ZegoCamera.minBitrate
4. When the used device is removed, it supports automatic switching of available devices
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
1. Optimize the sound wave callback function
Optimized the original sound wave callback implementation to improve the compatibility and performance of the sound wave callback function.
- Fix the problem that the room attachment message cannot be received if the sender exits and immediately re-enters the room after the sender sends the room attachment message.
- Fixed the problem of repeated error reporting when the push-pull stream failed to retry.
- When the SDK implements the In-game Voice Chat function, there is no sound or noise in some devices or browsers when play streams and switching to the background.
- Fixed roomStreamUpdate] in some cases, the deletion information of the stream launched by the local end will be called back.
- Fix the problem that the SDK thinks the network is disconnected and prevents the room from being logged in because the browser's
navigator.onLineis incorrectly marked as false.
Release date: 2022-09-09
1. Added AI noise reduction function
- To use this function, please contact technical support for special programming.
- Before calling the enableAiDenoise interface, please call the createStream interface to create a media stream.
- The AI noise reduction function is only supported on the PC-side web platform, and the mobile-side web platform is not currently supported. Theoretically, the AI noise reduction function is supported on Google Chrome 66.0, Edge 79.0, FireFox 76.0 and Safari 14.1 and above, but to ensure the stability of the AI noise reduction function, it is recommended that you use the latest versions of Google Chrome and Edge browsers .
- The current AI noise reduction function only supports noise reduction for a single stream, and cannot perform noise reduction for multiple streams at the same time.
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
2. After the device is unplugged, it can automatically switch to other devices
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.
3. Range Voice Support Switching Speakers
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
4. Added a new interface for setting the playback volume of the range voice
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
1. Optimize the capture volume function of the setCaptureVolume interface
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
2. Push-pull streaming quality data increases the duration of the audio and video freezing rate
In the playerStateUpdate callback interface, supplement the indicator information related to the freeze. The fields are defined as follows:
- audioCumulativeDecodeTime：Accumulated audio decoding time, unit: ms.
- audioCumulativeBreakTime：Accumulated audio freeze duration, unit: ms.
- audioCumulativeBreakRate：Accumulated audio freeze rate, the value range is 0.0 ~ 1.0.
- videoCumulativeDecodeTime：Cumulative video decoding time, unit: ms.
- videoCumulativeBreakTime：Cumulative video freeze duration, unit: ms.
- videoCumulativeBreakRate：The cumulative video freeze rate, the value range is 0.0 ~ 1.0.
For related APIs, please refer to playerStateUpdate
3. Optimized range voice location update function
Range speech support sets how often the location is updated in real-time inside the SDK.
For related APIs, please refer to ZegoExpressRangeAudio.setPositionUpdateFrequency
- After the v2.17.0 version, the setVideoConfig interface part must be selected.
- Fix the problem that the screen sharing setting start bit rate does not take effect.
- Fixed the issue that the stream of the original room was not stopped when the range voice switched rooms.
Release date: 2022-08-05
1. Support large and small flow function
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.
- Publisher: Support to enable small and large streams and configure small stream resolution settings through the enableDualStream, setLowStreamParameter interfaces respectively.
- Player: Supports setting the streaming type through the streamType parameter of the startPlayingStream interface. You can use this interface to choose to pull large streams, small streams, or configure the automatic mode. In the automatic mode, when the downlink network of the streaming end is poor, the small stream is automatically pulled to ensure the smoothness of the user's playback.
For related APIs, please refer toenableDualStream,setLowStreamParameter,startPlayingStream
2. Support Snapshot function
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
3. Low Light Enhancement
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:
- 0: Disable low-light enhancement (default).
- 1: Turn on low light enhancement.
For related APIs, please refer to setLowlightEnhancement
1. Optimize the login success rate
Optimize the domain name connection strategy, when the default domain name connection fails, retry the alternate domain name.
- Fix the issue that occasional stream deletion events are lost.
- Fix the problem that different platforms use the same SteamID to publish streams abnormally.
- Fix the problem that the quality of push-pull flow is still excellent when the network is disconnected.
- Fixed the problem that the publish streams static image was abnormal when the Google Chrome browser was used to switch tabs.
- Fixed the problem that the resolution width and height obtained by the push-pull stream of the Firefox browser are 0.
- Fixed the problem that there is no sound in the range voice.
Release date: 2022-07-12
- Fix the lack of related dependencies when npm was introduced.
Release date: 2022-07-08
1. Add MediaStream media streaming component
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
2. The range voice function supports custom selection of Microphone
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
3. The range voice function supports AEC
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
4. Support creating Camera media stream related parameter constraints
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:
- exact: Strictly specify the final output value of the acquisition device. If the device does not support the specified value, the acquisition will fail.
- ideal: Expect the final output value of the collection device. If the device does not support the specified value, it will try to output the closest value.
- max: The upper limit of the final output value of the collection device.
- min: The lower limit of the final output value of the acquisition device.
For related APIs, please refer to createStream, setVideoConfig, ZegoPublishStreamConfig, ZegoCamera, ZegoScreen
1. Added abnormal event callback for Beautify function
Added the event callback for abnormal Beautify function, involving the following Error Codes:
- 1103072: The browser does not support WebGL, it may appear during startup or running, and the SDK will turn off the Beautify.
- 1103074: The current video track does not support enabling Beautify. When an error is reported during startup, the SDK will disable Beautify.
- 1103075: The Beautify function is overloaded. At this time, the screen will freeze, and the SDK will not turn off the Beautify function. The developer can decide whether to turn off the Beautify function.
For related APIs, please refer to beautyEffectError
2. Scope voice listening range judgment optimization
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.
- Fixed the problem that the frame rendering task is abnormal when the beauty leaves the screen and then returns to the page, resulting in an abnormal increase in the frame rate for a period of time.
- Fixed an issue where the range voice function may not receive the sound of the audio source after moving its position to the range of the audio source when the 3D AudioEffect is turned on.
- Fixed the problem that the return value of the resumeEffect interface of the Audio Effect Player function is incorrect, the parameter of the setEffectVolume interface to set the Volume size is incorrect, and the stopEffect interface may stop other AudioEffect by mistake.
Release date: 2022-06-10
- Fixed an issue where type verification errors may occur when importing SDK using TypeScript due to missing declaration files
Release date: 2022-05-11
1. Added send SEI function
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
2. Added room state change notification roomStateChanged
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
1. The methods of setting the audio and Video configuration interface, the interface related to the audio Audio Mixing function, and the instance of the Audio Effect Player ZegoAudioEffectPlayer are all supported to be called in the Preview stage before the publish streams is successful.
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
- Fixed the issue that calling the setAudioConfig interface would cause the Volume setting of the setCaptureVolume interface to fail.
- Fixed the problem that the roomStateUpdate state callback (the state should be "DISCONNECT" at this time) is not triggered when the Token passed in through the loginRoom interface is called incorrectly.
- Fixed the issue that when the Firefox browser publish streams calls mutePublishStreamVideo to close the video track, the last frame of the play streams end screen will be stuck, and the screen will be closed after 1s to 3s.
- Fixed an issue where the tokenWillExpire event callback would be triggered immediately after logging in with a token with a remaining validity period exceeding 2147483647ms.
Release date: 2022-04-08
1. Added audio file player function
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
2. Support to enable or disable the camera capture function
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
3. Support active access to push stream quality and pull stream quality
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
4. Support setting the specified speaker to play sound
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
5. Support to push still pictures when the camera is closed
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
1. Support login and pull stream parallel operation
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.
2. Added 1001004 error code
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 ZEGO console.
3. Added 1002036 error code
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 ZEGO technical support to enable this function.
4. Added 1101002 error code
When getting the streaming media configuration fails, the error code 1101002 will be thrown, please contact ZEGO technical support.
5. Added 1104039 error code
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.
6. Turn on the sound wave callback interface to stop getting the sound wave when the page is hidden
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
7. Support to modify the video quality level of the push stream
Call the setVideoConfig interface to dynamically modify the video quality level "videoQuality" of the push stream.
For related APIs, please refer to setVideoConfig
- Fixed the issue that when a pure camera video stream was created but the microphone was not captured, the callback for capturing sound waves would also be triggered.
- Fixed the issue that the value of "audio.AudioFPS" in the streaming quality packet was displayed as NaN when streaming using the Firefox browser.
Release date: 2022-03-09
1. Support to get the list of required media devices
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.
1. The loginRoom and renewToken interfaces support the use of "token04" version Tokens
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
1. Added basic Beautify function
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
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
1. In order to avoid the failure of push-pull streaming due to compatibility issues of lower version browsers, this version starts to disable the real-time orderly data transmission function by default.
- Fixed an issue where the user list might not be updated in a weak network scenario.
- Fixed other known issues in Firefox.
Release Date: 2021-11-23
1. Added real time sequential data function
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
- In version 2.11.0, an exception may occur when multiple instances of ZegoExpressEngine are used in one browser page. This version fixes this problem.
- Due to the limitation of the browser's automatic playback strategy, after play streams without page interaction, there is a sound after manually clicking to play, but the sound wave callback for getting the stream is still 0. This version fixes this problem. After the page is clicked, the sound wave callback for play streams can be obtained normally.
Release Date: 2021-11-18
- Fix known issues
Release Date: 2021-11-04
- Fixed the missing declaration file of version 2.11.0, which caused a type verification error when using TypeScript to import the SDK.
Release Date: 2021-11-02
- Fixed the situation where the code using ES6 syntax in version 2.11.0 caused compatibility issues with some packaging tool compression codes.
- Fixed the problem that remoteCameraStatusUpdate and remoteMicStatusUpdate callbacks were not triggered when the Video and Audio of the play streams were both turned on.
Release Date: 2021-10-28
- Fixed the issue that when calling the muteMicrophone interface, the wrong Camera status would be sent to the opposite end.
Release Date: 2021-10-15
1. Support setting clear priority and smooth priority by scene
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
2. Added Token expiration management mechanism
To use this function, you need to upgrade the SDK and contact ZEGO 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
3. Stream Mixing streaming supports setting the Video rendering mode
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
1. Added 1103064, 1103065 and 1103066 Error Codes
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
2. Newly added end-to-end delay and end-to-end packet loss rate data for play streams quality callback
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
- Fixed the issue that in multi-room mode, when a room is kicked out by the server, all rooms are triggered to exit
- Fixed the issue of freezing when retrying to play streams
Release Date: 2021-09-03
- Fix known issues
Release Date: 2021-08-27
1. Added range voice function module
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
1. Improve the anti-weak network performance of the SDK during network switching
The internal retry logic of the SDK is optimized to improve user experience during network switching.
- Fixed the issue that the useVideoDevice interface was called to switch other camera devices when the pusher side removed the external camera that was pushing, and then the device status was finalized in the remoteCameraStatusUpdate event Is "CLOSE", there is no problem of reverting to "OPEN"
Release date: 2021-08-12
- Fixed small portion does not support simultaneous opening of the two Camera when the switching device failure retry Microphone, can cause problems in the Video black screen
Release date: 2021-08-09
1. Added the verification of the inputList.streamID parameter value in the Stream Mixing stream interface
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
2. Support calling the replaceTrack interface to replace the audio and Video tracks of the media stream before the publish streams is successful
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
3. When the publish streams end closes the Video screen and then turns it back on, the play streams end no longer relies on media signaling to restore the image
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.
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
1. Support to turn on/off the Microphone sound, and get the Microphone on/off status
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
2. Newly added room functions
You need to contact ZEGO 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. ZEGO 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
1. When closing the publish streams screen, you can choose to keep the Preview screen
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
2. When the App is not configured with the Low-Latency Live function but uses the low-latency mode to play streams, an error message is added
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
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
1. Added the function of obtaining local sound waves
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
2. Support setting the start bit rate increase strategy of the publish streams(valid only for Chrome)
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
1. Optimized the logic of switching Camera during the publish streams process
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.
2. Optimized the error message prompt of the Stream Mixing streaming service interface startMixerTask
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
3. Added 1003025 Error Codes, indicating that publish streams is prohibited
When the publish streams operation is prohibited by the ZEGO 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
4. Optimized the problem of blurry screen when packet loss at the play streams end
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.
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
1. Added Low-Latency live streaming function
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
2. Added token expiration callback tokenWillExpire and token update interface renewToken
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
3. Token version upgrade, support token sub-function authentication
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 ZEGO technical support to enable the corresponding configuration.
For related APIs, please refer to tokenWillExpire, renewToken
1. Optimized the push-pull stream negotiation mode to reduce the time-consuming of the first frame of the push-pull stream
The first frame of the push-pull stream can be shortened by more than 150 ms on the original basis.
2. Optimized the push-pull network quality algorithm
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.
3. Add node quality detection
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.
- Fix known issues
Release date: 2021-04-15
- Fixed the issue that the original camera was not released when switching cameras
For related API, please refer to useVideoDevice
- Fix other known issues
Release date: 2021-04-01
1. Optimize the detection interface, improve the accuracy of video encoding detection, and support single detection
For related API, please refer to checkSystemRequirements
2. Modified the priority of the upload address when setting the log so that the priority is higher than the address issued in the background
For related API, please refer to setLogConfig
3. Optimized the video bit rate setting strategy, and solved the problem of low initial value of screen sharing bit rate
For related API, please refer to createStream
- Fixed the issue of weird sound quality when Safari uses some Bluetooth headsets to play sound effects
Release date: 2021-03-18
1. Optimized the push-pull streaming network quality rating logic to improve the evaluation accuracy
2. Support pure video stream mixing function
For related API, please refer to [startMixingAudio]
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
1. Added the function to modify the collection volume
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]
2. When the user is kicked out of the room, add detailed reasons for kicking out
When a room member is kicked offline, the SDK needs to prompt the specific reason for being kicked offline based on additional information.
- Fixed the problem that the room reset was not sensed when logging in to the room repeatedly, resulting in not receiving stream updates
Release date: 2021-01-28
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
1. Code refactoring to reduce coupling between different modules.
2. Log system reconstruction, optimized log structure, and improved problem location efficiency.
3. Retry logic reconstruction to further improve the SDK's ability to resist weak networks.
Release date: 2020-12-31
1. Added the ability to dynamically set whether to pull remote audio and video streams.
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]
- Fixed the problem of failure to destroy the stream after playing the audio and video files of the third-party stream.
For related API, please refer to destroyStream
Release date: 2020-12-17
1. Added extended information parameters to the stream update callback, for example: when the stream is deleted, the relevant reason information can be thrown.
For related API, please refer to [roomStreamUpdate]
2. Added the ability to adjust the mixing volume.
Supports dynamic adjustment of the volume of background music or sound effects mixed in during push streaming.
For related API, please refer to [setMixingAudioVolume]
1. Optimized the SDK streaming media websocket connection waiting time.
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.
- Fixed the problem that there is no sound when the Safari browser selects the automatic pull mode when the push stream is pure audio.
For related API, please refer to [setMixingAudioVolume]
Release date: 2020-12-03
- Fixed the problem that the microphone sound cannot be restored when the microphone is turned on again when mixing after muting.
For related API, please refer to mutePublishStreamAudio
- Fixed the problem that the peer failed to receive the stream deletion notification in time when the stop push interface was called during the push retry process.
Please refer to stopPublishingStream, roomStreamUpdate for related API
- Fixed the problem that the peer end may not receive the callback of the user entering and exiting the room when quickly re-entering the room after exiting the room.
For related API, please refer to loginRoom, roomUserUpdate
Release date: 2020-11-26
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
- Fixed the problem that the push-pull stream may fail to schedule in a weak network environment.
Release date: 2020-11-19
1. The third-party stream supports setting the number of audio channels and bit rate of the push stream.
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
2. Added support for dynamically modifying push audio parameters.
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]
3. Add device plug-in callback.
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]
1. Optimized the problem that the streaming end cannot receive the stream delete callback after stopping the streaming in the weak network situation.
Retry when adding and deleting the sending stream fails to increase the success rate of the push stream under weak network conditions.
2. Optimize the problem that the streaming terminal may not be able to pull the video when the camera is closed and then reopened.
- Fixed the problem that the page is refreshed after successful push on Firefox, and the stream cannot be pulled when the same room number is entered again.
Release date: 2020-11-05
1. Optimize the problem of poor sound quality collected by the microphone when the safari browser uses the audio mixing function.
For related API, please refer to startMixingAudio
2. Optimize the error message when the log connection is disconnected.
About one minute after leaving the room, the log websocket connection is disconnected, and the error level error message is no longer displayed.
3. Optimize the log of the device status reported by the SDK and add the corresponding stream ID.
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
1. Increase the audio sending frame rate in the push-pull stream quality callback.
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
2. Increase the push stream resolution setting of the screen sharing stream.
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
3. Add the function of dynamically modifying push streaming parameters.
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]
1. Retry logic optimization and reconstruction.
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.
2. No authentication required when retweeting CDN.
Optimized to add and delete the retweet CDN interface, remove authentication, and improve ease of use.
For related API, please refer to addPublishCdnUrl, removePublishCdnUrl
Fix the error code information duplication problem.
Fix other known issues.
Release date: 2020-09-24
1. Add and replace audio and video tracks.
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]
2. Newly added availability check error message return.
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]
1. Optimize the callback error code of push streaming status.
Optimized the error code value returned when the request response timed out due to network problems during streaming.
2. Increase the type judgment of the interface value parameter.
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
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
1. Added room additional message function.
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]
1. Optimize the exit room parameters.
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
2. Increase the timing of switching devices.
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
3. Add type judgment for creating stream attribute parameters.
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
4. Optimize callback registration event handling.
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
5. Add service connection nodes for push-pull stream related logs, which is convenient for querying logs to locate problems.
6. Log event reporting related fields distinguish between the formal environment and the test environment to facilitate statistical information.
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
1. Add a callback to the current number of people in the new room.
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]
1. When the mixed stream is pure audio, optimize the parameter settings.
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
2. Increase the trigger timing of streamExtraInfoUpdate.
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]
- Fix other known issues.
Release date: 2020-08-13
1. support for dual channel.
Provide the ability for dual channel. This interface has compatibility issues and is only supported under chrome browser.
Refered to the related API createStream
1. add the judgment for the type of publish stream attribute parameters.
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
2. Optimize the heartbeat of stream media server.
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.
3. The logs width push and pull stream add stream ID to make it easier to location problems by query log.
4. Push and pull streams to report information such as available bandwidth to facilitate the location of resolution drops problems.
5. Add packet loss information in the push stream quality callback to facilitate the location of network problems.
6. Push-pull stream quality callback adds monitoring of related parameters of label attributes.
Add the parameter values of muted, paused, and volume to the log information, so as to locate the silent problem of push-pull streaming.
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
Fix the issue that the CDN address in the callback information of the subscription pull stream update is empty.
Fix other known issues.
1. When creating a screen sharing stream, plug-ins are prioritized for screen sharing, and screen sharing in the form of plug-ins is more compatible.
2. Optimize the call to stop the push-pull stream interface, the corresponding stop interface can be successfully called at any time after the push-pull stream.
3. Push-pull flow scheduling logic optimization to reduce unnecessary code execution.
4. Optimize the error message processing logic for switching the camera microphone device interface, and the corresponding error message will be thrown through reject.
5. If the audio mixing function is used before calling the stop push, the SDK will stop the mixing of the corresponding stream when the stop push interface is called.
6. Optimize the SDK processing logic for abnormal browser shutdown, compatible with the monitoring of the browser beforeunload event.
Release date: 2020-07-20
- StartMixerTask parameter check and correction.
Release date: 2020-07-15
1. The server supports alternate domain names to improve the connection rate when the network environment is not good.
1. Unify the external error code and align the native end.
2. Fix the problem that the first quality report of push-pull stream is empty, and optimize the reported data information.
3. Start and stop push-pull stream increase state callback.
4. Fix the problem that some internal errors of the switching device did not call back.
5. Optimize internal heartbeat sending logic.
6. Fix the problem that the external camera is loose and the web terminal cannot pull the stream and continue to pull the audio stream.
7. Fix the problem that safari fails to pull the audio stream when the camera is closed during the push stream.
8. Fix other known issues.
Release date: 2020-06-30
1. Added the support for support audio mixing. Two new APIs [startMixingAudio] and [stopMixingAudio] were introduced.
2. Added a new API [setSoundLevelDelegate] to set up the sound level callback. Developers can use this API to set the frequency of the callback [soundLevelUpdate] as needed.
1. Use the user's setting to determine whether to pull the audio/video stream.
2. The screen sharing API now can be called multiple times.
3. Optimized audio processing to improve performance.
4. Changed the encoding/decoding parameters to be case insensitive to improve error tolerance.
- Fixed the issue that incorrect camera/microphone status is received on the stream viewing side when the camera/microphone is turned off by calling the corresponding APIs before publishing the stream.
- Fixed the issue that the pop-up window prompts multiple times after the user clicks the cancel button when using the screen share plug-in, and optimized the error message.
- Fixed other known issues.
Release date: 2020-06-15
Release date: 2020-06-15
1. Added the capability of audio/video bitrate monitoring to the API [createStream].
- Fixed the issue that stream publishing fails due to parameter out of bound.
- Fixed the issue that some parameters are missing out from the quality reporting on some browsers to improve quality reporting.
- Optimized the timing of monitoring to improve the accuracy of detection.
- Optimized the callbacks for publisher/player state updates to improve the accuracy of the state.
- Fixed the issue that room stream update callback is triggered even when there is no stream published to the room.
- Fixed other known issues.
Release date: 2020-06-08
- Corrected the parameters of the API [startMixerTask].
- Fixed the log reporting error that is caused by the log being too long.
Release date: 2020-06-02
- Corrected the parameters of the API [mutePublishStreamAudio].
Release date: 2020-05-15
1. Changed the API
useVideoDevice to be a Promise.
2. Optimized some error codes.
3. Optimized the program logic related to the status of stream playing devices.
4. Optimized some critical logs.
- Fixed some known issues.
Release date: 2020-04-30
- Optimized the program logic related to camera/microphone status.
- Optimized the strategy of pulling the room user list.
- Fixed some known issues.
Release date: 2020-04-15
- Added a new feature allow web client to control the maximum online user count of a room.
- Added the check for https connection for WebRTC.
- Optimized the node retry logic.
- Fixed some known issues.
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
- Added the stream mixing module.
- Added the instant messaging (IM) module.
- Aligned the APIs across all platforms, including API names, parameter names, and parameter values, etc.
Release date: 2019-10-31
The initial release of the SDK, which included the following modules:
- Stream Publishing
- Stream Playing
- 1 Version 2.23.0
- 2 Version 2.22.0
- 3 Version 2.21.0
- 4 Version 2.20.2
- 5 Version 2.20.1
- 6 Version 2.19.0
- 7 Version 2.18.0
- 8 Version 2.17.1
- 9 Version 2.17.0
- 10 Version 2.16.1
- 11 Version 2.16.0
- 12 Version 2.15.0
- 13 Version 2.14.0
- 14 Version 2.13.0
- 15 Version 2.12.3
- 16 Version 2.12.2
- 17 Version 2.12.1
- 18 Version 2.11.3
- 19 Version 2.11.2
- 20 Version 2.11.1
- 21 Version 2.11.0
- 22 Version 2.10.1
- 23 Version 2.10.0
- 24 Version 2.9.1
- 25 Version 2.9.0
- 26 Version 2.8.0
- 27 Version 2.7.1
- 28 Version 2.6.0
- 29 Version 2.5.0
- 30 Version 2.4.0
- 31 Version 2.3.0
- 32 Version 2.2.1
- 33 Version 2.1.0
- 34 Version 2.0.0
- 35 Version 1.19.0
- 36 Version 1.18.0
- 37 Version 1.17.1
- 38 Version 1.16.5
- 39 Version 1.16.1
- 40 Version 1.16.0
- 41 Version 1.15.0
- 42 Version 1.14.0
- 43 Version 1.13.0
- 44 Version 1.12.0
- 45 Version 1.11.0
- 46 Version 1.10.0
- 47 Version 1.9.0
- 48 Version 1.8.1
- 49 Version 1.8.0
- 50 Version 1.7.0
- 51 Version 1.6.0
- 52 Version 1.5.2
- 53 Version 1.5.1
- 54 Version 1.5.0
- 55 Version 1.4.0
- 56 Version 1.3.0
- 57 Version 1.2.1
- 58 Version 1.1.0
- 59 Version 1.0.0