diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita b/en-US/dita/RTC-NG/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita
index 859c689b126..c131628a9cf 100644
--- a/en-US/dita/RTC-NG/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita
+++ b/en-US/dita/RTC-NG/API/api_irtcengine_adjustcustomaudioplayoutvolume.dita
@@ -1,8 +1,8 @@
- adjustCustomAudioPlayoutVolume
-
+
+ Adjusts the volume of the custom audio track played locally.
@@ -29,16 +29,30 @@
{required int trackId, required int volume});
+
+ Details
+ Ensure you have called the method to create a custom audio track before calling this method.
+ If you want to change the volume of the audio to be played locally, you need to call this method again.
+
- Returns
+
+ When the method call succeeds, there is no return value; when fails, the exception is thrown; and you need to catch the exception and handle it accordingly. See for details and resolution suggestions.
+
+ - 0: Success.
+ - < 0: Failure. See for details and resolution suggestions.
+
\ No newline at end of file
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_enablecontentinspect.dita b/en-US/dita/RTC-NG/API/api_irtcengine_enablecontentinspect.dita
index f8a1090d37c..6fd48036542 100644
--- a/en-US/dita/RTC-NG/API/api_irtcengine_enablecontentinspect.dita
+++ b/en-US/dita/RTC-NG/API/api_irtcengine_enablecontentinspect.dita
@@ -46,7 +46,7 @@
config
- Configuration of video screenshot and upload. See .When the video moderation module is set to video moderation via Agora self-developed extension(), the video screenshot and upload dynamic library is required. Deleting this library disables the screenshot and upload feature.
+ Configuration of video screenshot and upload. See .When the video moderation module is set to video moderation via Agora self-developed extension(), the video screenshot and upload dynamic library is required. Deleting this library disables the screenshot and upload feature.
diff --git a/en-US/dita/RTC-NG/API/class_contentinspectmodule.dita b/en-US/dita/RTC-NG/API/class_contentinspectmodule.dita
index 8a60baa53b3..35ceab71c3d 100644
--- a/en-US/dita/RTC-NG/API/class_contentinspectmodule.dita
+++ b/en-US/dita/RTC-NG/API/class_contentinspectmodule.dita
@@ -73,7 +73,7 @@
Types of functional modules:
- (0): (Default) This module has no actual function. Do not set to this value.
- (1): Video content moderation. SDK takes screenshots, inspects video content of the video stream in the channel, and uploads the screenshots and moderation results.
- - (2): Video screenshot and upload via Agora self-developed extension. SDK takes screenshots of the video stream in the channel and uploads them.
+ - (2): Video screenshot and upload via Agora self-developed extension. SDK takes screenshots of the video stream in the channel and uploads them.
- (3): Video screenshot and upload via extensions from Agora Extensions Marketplace. SDK uses video moderation extensions from Agora Extensions Marketplace to take screenshots of the video stream in the channel and uploads them.
diff --git a/en-US/dita/RTC-NG/API/enum_contentinspecttype.dita b/en-US/dita/RTC-NG/API/enum_contentinspecttype.dita
index 159d1891155..eb05ec86158 100644
--- a/en-US/dita/RTC-NG/API/enum_contentinspecttype.dita
+++ b/en-US/dita/RTC-NG/API/enum_contentinspecttype.dita
@@ -16,7 +16,7 @@
1: Video content moderation. SDK takes screenshots, inspects video content of the video stream in the channel, and uploads the screenshots and moderation results.
-
+
2: Video screenshot and upload via Agora self-developed extension. SDK takes screenshots of the video stream in the channel and uploads them.
diff --git a/en-US/dita/RTC-NG/config/keys-rtc-ng-api-flutter.ditamap b/en-US/dita/RTC-NG/config/keys-rtc-ng-api-flutter.ditamap
index 7012ad02770..af25e423ad1 100644
--- a/en-US/dita/RTC-NG/config/keys-rtc-ng-api-flutter.ditamap
+++ b/en-US/dita/RTC-NG/config/keys-rtc-ng-api-flutter.ditamap
@@ -5801,7 +5801,7 @@
-
+
contentInspectSupervision
@@ -9301,6 +9301,13 @@
+
+
+
+ networkTypeMobile5g
+
+
+
diff --git a/en-US/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap b/en-US/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap
index 5dea698da17..bf21e6b0852 100644
--- a/en-US/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap
+++ b/en-US/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap
@@ -5901,7 +5901,7 @@
-
+
CONTENT_INSPECT_TYPE_SUPERVISE
diff --git a/en-US/dita/RTC-NG/release/release_ng_4.2.2.dita b/en-US/dita/RTC-NG/release/release_ng_4.2.2.dita
new file mode 100644
index 00000000000..0e634e3cc8e
--- /dev/null
+++ b/en-US/dita/RTC-NG/release/release_ng_4.2.2.dita
@@ -0,0 +1,123 @@
+
+
+
+ v4.2.2
+ v4.2.2 was released on July xx, 2023.
+
+
+
+ Compatibility changes
+
+ DRM-protected music
+ 该版本废弃了 类下的 方法并新增 方法。 如果你使用了 方法实现预加载音乐资源,请在升级到该版本后更新 app 代码。
+ 该版本删除了 类下的 方法中的 jsonOption 参数,请在升级到该版本后更新 app 代码。
+
+
+
+ New features
+
+
+ - Wildcard token
This release introduces wildcard tokens. Agora supports setting the channel name used for generating a token as a wildcard character. The token generated can be used to join any channel if you use the same user id. In scenarios involving multiple channels, such as switching between different channels, using a wildcard token can avoid repeated application of tokens every time users joining a new channel, which reduces the pressure on your token server. See .All 4.x SDKs support using wildcard tokens.
+
+ - Preloading channels
This release adds and methods, which allows a user whose role is set as audience to preload channels before joining one. Calling the method can help shortening the time of joining a channel, thus reducing the time it takes for audience members to hear and see the host.
+ When preloading more than one channels, Agora recommends that you use a wildcard token for preloading to avoid repeated application of tokens every time you joining a new channel, thus saving the time for switching between channels. See .
+
+ - Customized background color of video canvas
In this release, the backgroundColor member has been added to , which allows you to customize the background color of the video canvas when setting the properties of local or remote video display.
+
+ - Video source types for local preview
To allow users in selecting different types of video sources for local video preview, this release introduces and . You can call and specify the type of video source to be previewed by setting the sourceType parameter, and call to stop the video preview.
+ The video source type specified in this method must match the video source type set in the of the method.
+
+ Publishing video streams from different sources (Windows, macOS)
+ This release adds the following members in to allow you publish video streams captured from the third and fourth camera or screen:
- publishThirdCameraTrack: Publishing the video stream captured from the third camera.
+ - publishFourthCameraTrack: Publishing the video stream captured from the fourth camera.
+ - publishThirdScreenTrack: Publishing the video stream captured from the third screen.
+ - publishFourthScreenTrack: Publishing the video stream captured from the fourth screen.
+ For one , Agora supports publishing multiple audio streams and one video stream at the same time.
+
+ NO DOCS
+ 该版本新增 方法,如果你仅需要播放某一音乐资源的副歌片段,在播放前你需要调用该方法来为该副歌片段创建一个内部歌曲编号,作为该资源的唯一标识。 你可以查看了解更多 K 歌场景方案。
+
+
+
+
+
+ Improvements
+
+
+ Improved camera capture effect (Android, iOS)
+ This release has improved camera capture effect in the following aspects:
+ - Support for camera exposure adjustment
This release adds to query whether the device supports exposure adjustment and to set the exposure ratio of the camera.
+ Optimization of default camera selection (iOS)
+ Since this release, the default camera selection behavior of the SDK is aligned with that of the iOS system camera. If the device has multiple rear cameras, better shooting perspectives, zooming capabilities, low-light performance, and depth sensing can be achieved during video capture, thereby improving the quality of video capture.
+
+ Since this release, camera exposure adjustment is supported. This release adds to query whether the device supports exposure adjustment and to set the exposure ratio of the camera.
+
+ - Virtual Background Algorithm Upgrade
This version has upgraded the portrait segmentation algorithm of the virtual background, which comprehensively improves the accuracy of portrait segmentation, the smoothness of the portrait edge with the virtual background, and the fit of the edge when the person moves. In addition, it optimizes the precision of the person's edge in scenarios such as meetings, offices, homes, and under backlight or weak light conditions.
+
+ - Channel media relay
The number of target channels for media relay has been increased to 6. When calling and , you can specify up to 6 target channels.
+
+ - Enhancement in video codec query capability
To improve the video codec query capability, this release adds the codecLevels member in . After successfully calling , you can obtain the hardware and software decoding capability levels of the device for H.264 and H.265 video formats through codecLevels.
+
+
+ This release includes the following additional improvements:
+ To improve the switching experience between multiple audio routes, this release adds the method. This method can switch the audio route from a Bluetooth headphone to the earpiece, wired headphone or speaker in communication volume mode (). (Android)
+ - The SDK automacially adjusts the frame rate of the sending end based on the screen sharing scenario. Especially in document sharing scenarios, this feature avoids exceeding the expected video bitrate on the sending end to improve transmission efficiency and reduce network burden.
+ - To help users understand the reasons for more types of remote video state changes, the enumeration has been added to the callback, indicating that the local video decoder does not support decoding the received remote video stream.
+ NO DOCS (Android, iOS)
+
+
+
+
+ Issues fixed
+
+ This release fixed the following issues:
+ Occasionally, noise occurred when the local user listened to their own and remote audio after joining the channel. (macOS)
+ - Slow channel reconnection after the connection was interrupted due to network reasons.
+ - In screen sharing scenarios, the delay of seeing the shared screen was occasionally higher than expected on some devices.
+ - In custom video capturing scenarios, , , , and could not load extensions automatically.
+ In multi-device audio recording scenarios, after repeatedly plugging and unplugging or enabling/disabling the audio recording device, no sound could be heard occasionally when calling the to start an audio capturing device test. (Windows)
+
+
+
+
+
+ API changes
+
+ Added
+
+ Deprecated
+ Deleted
+ - 类下的 方法中的 jsonOption 参数 (Android, iOS)
+
+
+
+
+
diff --git a/en-US/dita/RTC-NG/release/release_notes.dita b/en-US/dita/RTC-NG/release/release_notes.dita
new file mode 100644
index 00000000000..c94ee273986
--- /dev/null
+++ b/en-US/dita/RTC-NG/release/release_notes.dita
@@ -0,0 +1,93 @@
+
+
+
+ v4.2.3
+
+ v4.2.3 was released on September xx, 2023.
+
+
+
+
+ New features
+
+
+ - Update video screenshot and upload
To facilitate the integration of third-party video moderation services from Agora Extensions Marketplace, this version has the following changes:
+ - The enumeration is added in which means using video moderation extensions from Agora Extensions Marketplace to take video screenshots and upload them.
+ - The enumeration is added in the type parameter of , which means using video moderation extensions from Agora Extensions Marketplace to take video screenshots and upload them.
+ - An optional parameter serverConfig is added in , which is for server-side configuration related to video screenshot and upload via extensions from Agora Extensions Marketplace. By configuring this parameter, you can integrate multiple third-party moderation extensions and achieve flexible control over extension switches and other features. For more details, please contact .
+
In addition, this version also introduces the method, which supports taking screenshots for multiple video streams and uploading them.
+
+ - ID3D11Texture2D Rendering
As of this release, the SDK supports video formats of type ID3D11Texture2D, improving the rendering effect of video frames in game scenarios. You can set format to VIDEO_TEXTURE_ID3D11TEXTURE2D when pushing external raw video frames to the SDK by calling . By setting the d3d11_texture_2d and texture_slice_index properties, you can determine the ID3D11Texture2D texture object to use.
+
+ - Local video status error code update
In order to help users understand the exact reasons for local video errors in screen sharing scenarios, the following sets of enumerations have been added to the callback:
+ - (23): Screen capture has been paused. Common scenarios for reporting this error code: The current screen may have been switched to a secure desktop, such as a UAC dialog box or Winlogon desktop.
+ - (24): Screen capture has resumed from the paused state.
+ - (25): The window being captured on the current screen is in a hidden state and is not visible on the current screen.
+ - (26): The window for screen capture has been restored from the hidden state.
+ - (27): The window for screen capture has been restored from the minimized state.
+
+
+
+
+
+
+ Improvements
+
+
+ - Optimize virtual background memory usage
This version has upgraded the virtual background algorithm, reducing the memory usage of the virtual background feature. Compared to the previous version, the memory consumption of the app during the use of the virtual background feature on low-end devices has been reduced by approximately 4% to 10% (specific values may vary depending on the device model and platform).
+
+ - Screen sharing scenario optimization
This release optimizes the performance and encoding efficiency in ultra-high-definition (4K, 60 fps) game sharing scenarios, effectively reducing the system resource usage during screen sharing.
+ This release also optimizes the video encoding configuration in screen sharing scenarios. When users customize the width and height properties of the video, the SDK rounds down the actual encoding resolution while maintaining the aspect ratio of the video and the screen, ensuring that the final encoding resolution does not exceed the user-defined encoding resolution, thereby improving the accuracy of billing for screen sharing streams.
+
+
+ Other Improvements
+ This release includes the following additional improvements:
+ - Optimizes the management method of Texture Buffer for SDK capture and custom video capture scenarios, effectively eliminating frame dropping and crash risks.
+ - Optimizes the logic of handling invalid parameters. When you call the method to set the playback speed of audio files, if you pass an invalid parameter, the SDK returns the error code -2, which means that you need to reset the parameter.
+ - Optimizes the logic of Token parsing, in order to prevent an app from crash when an invalid token is passed in.
+
+
+
+
+ Issues fixed
+
+ This release fixed the following issues:
+
+ - Occasional crashes and dropped frames occured in screen sharing scenarios.
+ - When using the H.265 encoding mode, when a Web client joined the interactivity, it caused a redundant callback on the native side: when the host called (true), the receiving end first received a callback (with enabled as false) before receiving a callback (with enabled as true).
+ Occasional crashes when joining a channel. (macOS)
+ - Occasional failure of joining a channel when the local system time was not set correctly.
+ - When calling the method to play two audio files using the same soundId, the first audio file was somtimes played repeatedly.
+ When the host called the method to play music, sometimes the host couldn't hear the music while the remote users could hear it. (Android)
+ In a chorus scenario, calling the method to load music sometimes failed. (Android, iOS)
+ Occasional crashes occured on certain Android devices. (Android)
+ Loading music lists failed when the local system time was not correct. (Android, iOS)
+ - Calling once receives the callback for multiple times.
+ In channels joined by calling exclusively, calling is unable to switch audio route from the speaker to the headphone. (Android)
+
+
+
+
+ API changes
+
+ Added
+ - The following enumerations in :
+ - d3d11_texture_2d and texture_slice_index members in .
+ - in .
+
+ - in .
+ - in type of .
+ - serverConfig in
+
+
+
+
+
+
+