diff --git a/dita/RTC-NG/API/api_irtcengine_pushaudioframe2.dita b/dita/RTC-NG/API/api_irtcengine_pushaudioframe2.dita index 7d0e0715619..93085bbaa09 100644 --- a/dita/RTC-NG/API/api_irtcengine_pushaudioframe2.dita +++ b/dita/RTC-NG/API/api_irtcengine_pushaudioframe2.dita @@ -34,7 +34,7 @@
调用时机 -

调用该方法推送外部音频数据前,请先进行以下操作:

    +

    调用该方法推送外部音频数据前,请先进行以下操作:

    1. 调用 创建音频轨道并获得音频轨道 ID。
    2. 调用 加入频道时,将 中的 publishCustomAudioTrackId 设置为你想要发布的音频轨道 ID,并将 publishCustomAudioTrack 设置为

    diff --git a/dita/RTC-NG/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita b/dita/RTC-NG/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita index 2a9c3e936b7..fc3ec2c385b 100644 --- a/dita/RTC-NG/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita +++ b/dita/RTC-NG/API/api_irtcengine_pushexternalaudioframesamplebuffer2.dita @@ -32,7 +32,7 @@
    v4.3.1
    - +

参数 diff --git a/dita/RTC-NG/API/class_externalvideoframe.dita b/dita/RTC-NG/API/class_externalvideoframe.dita index b6a7e96bd6c..bbe1d8f9ab2 100644 --- a/dita/RTC-NG/API/class_externalvideoframe.dita +++ b/dita/RTC-NG/API/class_externalvideoframe.dita @@ -99,13 +99,13 @@ eglContext(NULL), eglType(EGL_CONTEXT10), textureId(0), - metadata_buffer(NULL), - metadata_size(0), + metadataBuffer(NULL), + metadataSize(0), alphaBuffer(NULL), fillAlphaBuffer(false), alphaStitchMode(0), - d3d11_texture_2d(NULL), - texture_slice_index(0){} + d3d11Texture2d(NULL), + textureSliceIndex(0){} enum EGL_CONTEXT_TYPE { EGL_CONTEXT10 = 0, EGL_CONTEXT14 = 1, @@ -130,13 +130,13 @@ EGL_CONTEXT_TYPE eglType; int textureId; float matrix[16]; - uint8_t* metadata_buffer; - int metadata_size; + uint8_t* metadataBuffer; + int metadataSize; uint8_t* alphaBuffer; bool fillAlphaBuffer; int alphaStitchMode; - void *d3d11_texture_2d; - int texture_slice_index; + void *d3d11Texture2d; + int textureSliceIndex; }; export class ExternalVideoFrame { type?: VideoBufferType; @@ -408,13 +408,13 @@ class ExternalVideoFrame { 该参数仅适用于 Texture 格式的视频数据。为一个输入的 4x4 变换矩阵,典型值为一个单位矩阵。 - metadata_buffer - metadataBuffer + metadata_buffer + metadataBuffer 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的数据缓冲区,默认值为 NULL - metadata_size - metadataSize + metadata_size + metadataSize 该参数仅适用于 Texture 格式的视频数据。指 MetaData 的大小,默认值为 0 @@ -448,9 +448,13 @@ class ExternalVideoFrame { + + + + - texture_slice_index - textureSliceIndex + texture_slice_index + textureSliceIndex 该参数仅适用于 Windows Texture 格式的视频数据。表示在 ID3D11Texture2D 数组中,被视频帧使用的某一个 ID3D11Texture2D 纹理对象的索引。 diff --git a/dita/RTC-NG/API/class_videoencoderconfiguration.dita b/dita/RTC-NG/API/class_videoencoderconfiguration.dita index 8525f357782..485434e7bce 100644 --- a/dita/RTC-NG/API/class_videoencoderconfiguration.dita +++ b/dita/RTC-NG/API/class_videoencoderconfiguration.dita @@ -93,14 +93,17 @@ static public class AdvanceOptions { public ENCODING_PREFERENCE encodingPreference; public COMPRESSION_PREFERENCE compressionPreference; - public AdvanceOptions( - ENCODING_PREFERENCE encodingPreference, COMPRESSION_PREFERENCE compressionPreference) { + public boolean encodeAlpha; + public AdvanceOptions(ENCODING_PREFERENCE encodingPreference, + COMPRESSION_PREFERENCE compressionPreference, boolean encodeAlpha) { this.encodingPreference = encodingPreference; this.compressionPreference = compressionPreference; + this.encodeAlpha = encodeAlpha; } public AdvanceOptions() { this.encodingPreference = ENCODING_PREFERENCE.PREFER_AUTO; this.compressionPreference = COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY; + this.encodeAlpha = false; } } public enum DEGRADATION_PREFERENCE { @@ -187,8 +190,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode) { @@ -201,8 +204,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { @@ -215,8 +218,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = mirrorMode; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration( int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode) { @@ -229,8 +232,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { @@ -243,8 +246,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = mirrorMode; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } } export class VideoEncoderConfiguration{ @@ -300,7 +303,7 @@ orientationMode(m), degradationPreference(MAINTAIN_QUALITY), mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration(int width, int height, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_DISABLED) : codecType(VIDEO_CODEC_NONE), dimensions(width, height), @@ -310,7 +313,7 @@ orientationMode(m), degradationPreference(MAINTAIN_QUALITY), mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration(const VideoEncoderConfiguration& config) : codecType(config.codecType), dimensions(config.dimensions), @@ -330,7 +333,7 @@ orientationMode(ORIENTATION_MODE_ADAPTIVE), degradationPreference(MAINTAIN_QUALITY), mirrorMode(VIDEO_MIRROR_MODE_DISABLED), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration& operator=(const VideoEncoderConfiguration& rhs) { if (this == &rhs) return *this; codecType = rhs.codecType; diff --git a/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap b/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap index 9f6a627904d..4876d113d5b 100644 --- a/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap +++ b/dita/RTC-NG/config/keys-rtc-ng-api-java.ditamap @@ -2589,7 +2589,13 @@ - + + + + enableDualStreamMode + + + @@ -5286,6 +5292,13 @@ + + + + ScreenCaptureParameters + + + diff --git a/dita/RTC-NG/release/release_notes.dita b/dita/RTC-NG/release/release_notes.dita index 27e276c1fdd..b9439461a75 100644 --- a/dita/RTC-NG/release/release_notes.dita +++ b/dita/RTC-NG/release/release_notes.dita @@ -20,26 +20,33 @@ 现有回调 - onExtensionEvent + onExtensionEvent - onExtensionStarted + onExtensionStarted - onExtensionStopped + onExtensionStopped - onExtensionError + onExtensionError
  • 在 v4.4.0 之前,当你的用户角色为观众时,调用 将音频场景设为聊天室场景()会收到申请麦克风权限的弹窗提示。自 v4.4.0 起,SDK 通过 iOS 原生的 API 控制麦克风开关,因此观众角色在聊天室场景下不会再收到申请麦克风权限的弹窗。
  • -
  • 改版本将 receiveMetadata 回调改名为 ,并删除了回调中的 datatimeStamp 参数,你可以通过新增的 metadata 参数来获取 Metadata 的相关信息,包括 timeStamp(发送数据的时间戳)、uid(用户 ID)、channelId(源频道名称)等。
  • -
  • 改版本删除了 回调中的 bufferuidtimeStampMs 参数,你可以通过新增的 metadata 参数来获取 Metadata 的相关信息,包括 timeStampMs(发送数据的时间戳)、uid(用户 ID)、channelId(源频道名称)等。
  • +
  • 该版本将 receiveMetadata 回调改名为 ,并删除了回调中的 datatimeStamp 参数,你可以通过新增的 metadata 参数来获取 Metadata 的相关信息,包括 timeStamp(发送数据的时间戳)、uid(用户 ID)、channelId(源频道名称)等。
  • +
  • 该版本删除了 回调中的 bufferuidtimeStampMs 参数,你可以通过新增的 metadata 参数来获取 Metadata 的相关信息,包括 timeStampMs(发送数据的时间戳)、uid(用户 ID)、channelId(源频道名称)等。
  • +
  • 该版本修改了 中的以下成员名称: +
      +
    • d3d11_texture_2d 更名为 d3d11Texture2d
    • +
    • texture_slice_index 更名为 textureSliceIndex
    • +
    • metadata_buffer 更名为 metadataBuffer
    • +
    • metadata_size 更名为 metadataSize
    • +
  • @@ -53,6 +60,7 @@
  • Lite SDK 支持手动集成或三方仓库集成,详见
  • Lite SDK 包含的动态库信息详见
  • Lite SDK 支持的 API 清单详见 Lite SDK API 列表Lite SDK API 列表
  • +
  • 使用 Lite SDK 播放媒体文件时的限制和注意事项详见 RTC SDK 支持播放哪些格式的音频文件?
  • Alpha 透明特效

    该版本新增 Alpha 透明特效功能,支持在 SDK 采集和自定义采集视频的场景下,在发送端发布视频帧的 Alpha 通道、在接收端对 Alpha 通道进行渲染处理,实现透明礼物特效、接收端自定义主播背景等:

    @@ -64,13 +72,13 @@

    另外, 中新增成员 encodeAlpha,用于设置是否将 Alpha 信息编码并发送到远端。SDK 默认不对 Alpha 信息进行编码发送;如果需要对 Alpha 信息编码发送至远端(例如开启了虚拟背景功能),请显式调用 设置视频编码属性,并将 encodeAlpha 设置为

  • AI 调音器 -

    该版本新增 AI 调音器功能,可以实现类似物理声卡对音质和音色的提升。你可以通过调用 方法并传入 枚举中支持的音效类型来启用 AI 调音器功能,实现大叔音、萝莉音、烟嗓歌声等声音效果。

    +

    该版本新增 AI 调音器功能,可以实现类似物理声卡对音质和音色的提升。你可以通过调用 方法并传入 枚举中支持的音效类型来启用 AI 调音器功能,实现大叔音、萝莉音、烟嗓歌声等声音效果。

  • 版权音乐优化
      -
    • 该版本在 类下新增 方法,用于设置音乐资源的播放模式。在在线 K 歌房等场景下,你可以根据需求启用伴唱、原唱或导唱模式。
    • +
    • 该版本在 类下新增 方法,用于设置音乐资源的播放模式。在在线 K 歌房等场景下,你可以根据需求启用伴唱、原唱或导唱模式。
    • 该版本在 类下新增 方法,用于销毁音乐播放器并释放相应的资源。
    • -
    • 该版本废弃了 类下的 方法。如需销毁音乐播放器,请改用 类下新增 方法。
    • +
    • 该版本废弃了 类下的 方法。如需销毁音乐播放器,请改用 类下新增 方法。
  • @@ -97,9 +105,10 @@
  • 优化了共享窗口的视频链路,降低了 CPU 占用率。(macOS)
  • 优化了屏幕共享场景下的回声消除。
  • 该版本在 中新增 channelId 参数,用于获取发送 Metadata 的源频道名称。
  • -
  • 废弃了 中的冗余枚举值
  • +
  • 废弃了 中的冗余枚举值
  • +
  • 废弃了冗余枚举值
  • 优化了以下 API 的参数类型。此改进有助于提升代码的可读性,减少潜在的错误,并便于后续维护。
      -
    • 废弃了 option 参数为 int 类型的 ,新增了 option 参数为 类型的重载函数
    • +
    • 废弃了 option 参数为 int 类型的 ,新增了 option 参数为 类型的重载函数
    • 废弃了 streamType 参数为 int 类型的 ,新增了 streamType 参数为 类型的重载函数
  • @@ -114,7 +123,7 @@
  • 在实时互动过程中,当多个远端同时加入频道时 App 偶现崩溃。(iOS)
  • App 切后台一段时间、然后返回前台时,远端视频画面偶现卡住或花屏。(iOS)
  • 发送端调用 开始直接向 CDN 推流后,频繁开关或切换网络,偶现接收端黑屏但发送端未收到推流失败回调。(iOS)
  • -
  • 调用 推送外部音频数据,外部音频渲染的采样率如果不是 SDK 推荐的值时,比如 22050 Hz 和 11025 Hz,声音播放失败。
  • +
  • 调用 推送外部音频数据,外部音频渲染的采样率如果不是 SDK 推荐的值时,比如 22050 Hz 和 11025 Hz,声音播放失败。
  • diff --git a/en-US/dita/RTC-NG/API/class_externalvideoframe.dita b/en-US/dita/RTC-NG/API/class_externalvideoframe.dita index 01d1962015d..bbc7cb99781 100644 --- a/en-US/dita/RTC-NG/API/class_externalvideoframe.dita +++ b/en-US/dita/RTC-NG/API/class_externalvideoframe.dita @@ -99,13 +99,13 @@ eglContext(NULL), eglType(EGL_CONTEXT10), textureId(0), - metadata_buffer(NULL), - metadata_size(0), + metadataBuffer(NULL), + metadataSize(0), alphaBuffer(NULL), fillAlphaBuffer(false), alphaStitchMode(0), - d3d11_texture_2d(NULL), - texture_slice_index(0){} + d3d11Texture2d(NULL), + textureSliceIndex(0){} enum EGL_CONTEXT_TYPE { EGL_CONTEXT10 = 0, EGL_CONTEXT14 = 1, @@ -130,13 +130,13 @@ EGL_CONTEXT_TYPE eglType; int textureId; float matrix[16]; - uint8_t* metadata_buffer; - int metadata_size; + uint8_t* metadataBuffer; + int metadataSize; uint8_t* alphaBuffer; bool fillAlphaBuffer; int alphaStitchMode; - void *d3d11_texture_2d; - int texture_slice_index; + void *d3d11Texture2d; + int textureSliceIndex; };
    export class ExternalVideoFrame { type?: VideoBufferType; diff --git a/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita b/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita index a524f4c8bb7..3a454b3c374 100644 --- a/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita +++ b/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita @@ -93,14 +93,17 @@ static public class AdvanceOptions { public ENCODING_PREFERENCE encodingPreference; public COMPRESSION_PREFERENCE compressionPreference; - public AdvanceOptions( - ENCODING_PREFERENCE encodingPreference, COMPRESSION_PREFERENCE compressionPreference) { + public boolean encodeAlpha; + public AdvanceOptions(ENCODING_PREFERENCE encodingPreference, + COMPRESSION_PREFERENCE compressionPreference, boolean encodeAlpha) { this.encodingPreference = encodingPreference; this.compressionPreference = compressionPreference; + this.encodeAlpha = encodeAlpha; } public AdvanceOptions() { this.encodingPreference = ENCODING_PREFERENCE.PREFER_AUTO; this.compressionPreference = COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY; + this.encodeAlpha = false; } } public enum DEGRADATION_PREFERENCE { @@ -187,8 +190,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode) { @@ -201,8 +204,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { @@ -215,8 +218,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = mirrorMode; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration( int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode) { @@ -229,8 +232,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } public VideoEncoderConfiguration(int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { @@ -243,8 +246,8 @@ this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; this.mirrorMode = mirrorMode; this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H265; + ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY, false); + this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; } } export class VideoEncoderConfiguration{ @@ -300,7 +303,7 @@ orientationMode(m), degradationPreference(MAINTAIN_QUALITY), mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration(int width, int height, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_DISABLED) : codecType(VIDEO_CODEC_NONE), dimensions(width, height), @@ -310,7 +313,7 @@ orientationMode(m), degradationPreference(MAINTAIN_QUALITY), mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration(const VideoEncoderConfiguration& config) : codecType(config.codecType), dimensions(config.dimensions), @@ -330,7 +333,7 @@ orientationMode(ORIENTATION_MODE_ADAPTIVE), degradationPreference(MAINTAIN_QUALITY), mirrorMode(VIDEO_MIRROR_MODE_DISABLED), - advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY) {} + advanceOptions(PREFER_AUTO, PREFER_LOW_LATENCY, false) {} VideoEncoderConfiguration& operator=(const VideoEncoderConfiguration& rhs) { if (this == &rhs) return *this; codecType = rhs.codecType; 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 9f6a627904d..4876d113d5b 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 @@ -2589,7 +2589,13 @@ - + + + + enableDualStreamMode + + + @@ -5286,6 +5292,13 @@ + + + + ScreenCaptureParameters + + + diff --git a/en-US/dita/RTC-NG/release/release_notes.dita b/en-US/dita/RTC-NG/release/release_notes.dita index 2d78a84cc48..29999f34bbd 100644 --- a/en-US/dita/RTC-NG/release/release_notes.dita +++ b/en-US/dita/RTC-NG/release/release_notes.dita @@ -14,7 +14,7 @@ Starting from v4.4.0, the RTC SDK provides an API sunset notice, which includes information about deprecated and removed APIs in each version. See API Sunset NoticeAPI Sunset NoticeAPI Sunset NoticeAPI Sunset Notice.

      -
    1. To distinguish context information in different plugin callbacks, this version removes the original plugin-related callbacks and adds corresponding callbacks that can identify plugin context information (see the table below). You can learn the plugin name, user ID using the plugin, and the service provider name through the in each callback. +
    2. To distinguish context information in different extension callbacks, this version removes the original extension callbacks and adds corresponding callbacks that contain context information (see the table below). You can identify the extension name, the user ID, and the service provider name through in each callback. Original Callback @@ -41,6 +41,14 @@
    3. Before v4.4.0, when a user role was set to audience and called to set the audio scenario to chatroom (), the user would see a microphone permission request popup. As of v4.4.0, the SDK uses native iOS APIs to control the microphone, so audience members in a chatroom scenario will no longer receive the microphone permission request popup.
    4. This version renames the receiveMetadata callback to and removes the data and timeStamp parameters. You can get metadata-related information, including timeStamp (timestamp of the sent data), uid (user ID), and channelId (channel name) through the newly-added metadata parameter.
    5. This version removes the buffer, uid, and timeStampMs parameters of the callback. You can get metadata-related information, including timeStampMs (timestamp of the sent data), uid (user ID), and channelId (channel name) through the newly-added metadata parameter.
    6. +
    7. This version renames the following members in : +
        +
      • d3d11_texture_2d is renamed to d3d11Texture2d.
      • +
      • texture_slice_index is renamed to textureSliceIndex.
      • +
      • metadata_buffer is renamed to metadataBuffer.
      • +
      • metadata_size is renamed to metadataSize.
      • +
      +
    @@ -54,6 +62,7 @@
  • Lite SDK supports manual integration or third-party repository integration. For details, see and .
  • For information on dynamic libraries included in the Lite SDK, see .
  • For the list of APIs supported by the Lite SDK, see Lite SDK API ListLite SDK API List.
  • +
  • For the limitations and precautions when using the Lite SDK to play media files, please refer to Which audio file formats are supported by RTC SDK?
  • Alpha Transparency Effects

    This version introduces the Alpha transparency effects feature, supporting the transmission and rendering of Alpha channel data in video frames for SDK capture and custom capture scenarios, enabling transparent gift effects, custom backgrounds on the receiver end, etc.:

    @@ -64,8 +73,8 @@

    Additionally, adds a new member encodeAlpha, which is used to set whether to encode and send Alpha information to the remote end. By default, the SDK does not encode and send Alpha information; if you need to encode and send Alpha information to the remote end (for example, when virtual background is enabled), explicitly call to set the video encoding properties and set encodeAlpha to .

  • -
  • AI Voice Tuner -

    This version introduces the AI Voice Tuner feature, which can enhance the sound quality and tone, similar to a physical sound card. You can enable the AI Voice Tuner feature by calling the method and passing in the sound effect types supported in the enum to achieve effects like deep voice, cute voice, husky singing voice, etc.

    +
  • Voice AI Tuner +

    This version introduces the voice AI tuner feature, which can enhance the sound quality and tone, similar to a physical sound card. You can enable the voice AI tuner feature by calling the method and passing in the sound effect types supported in the enum to achieve effects like deep voice, cute voice, husky singing voice, etc.

  • @@ -75,28 +84,35 @@
    1. Adaptive Hardware Decoding Support (Android, Windows) -

      This release introduces adaptive hardware decoding support, enhancing rendering smoothness on low-end devices and significantly reducing system load.

      +

      This release introduces adaptive hardware decoding support, enhancing rendering smoothness on low-end devices and effectively reducing system load.

    2. Rendering Performance Enhancement (Windows)

      DirectX 11 renderer is now enabled by default on Windows devices, providing high-performance and high-quality graphics rendering capabilities.

    3. Facial Region Beautification -

      To avoid losing details in non-facial areas during heavy skin smoothing, this version improves the skin smoothing algorithm. It now recognizes various parts of the face, applying smoothing to facial skin areas excluding the mouth, eyes, and eyebrows, and supports smoothing up to two faces simultaneously.

      +

      To avoid losing details in non-facial areas during heavy skin smoothing, this version improves the skin smoothing algorithm. The SDK now recognizes various parts of the face, applying smoothing to facial skin areas excluding the mouth, eyes, and eyebrows. In addition, the SDK supports smoothing up to two faces simultaneously.

    4. Other Improvements

      This version also includes the following improvements:

        -
      • Optimized parameter types for the following APIs to enhance code readability, reduce potential errors, and facilitate future maintenance: -
          -
        • Deprecated option parameter of type int in , introduced overloaded function with option parameter of type .
        • -
        • Deprecated streamType parameter of type int in , , and , introduced overloaded functions , , and with streamType parameter of type .
        • -
      • -
      • Optimized transmission strategy: calling no longer impacts the security of the transmission link.
      • -
      • The enumerator is added in callback , indicating that the display used for screen capture has been disconnected. (Windows, macOS)
      • -
      • Optimized the video link for window sharing, reducing CPU usage. (macOS)
      • -
      • Improved echo cancellation for screen sharing scenarios.
      • -
      • Added the channelId parameter to , which is used to get the channel name from which the metadata is sent.
      • -
      • Deprecated redundant enumeration values and in .
      • +
      • Optimizes the parameter types of the following APIs. These improvements enhance code readability, reduce potential errors, and facilitate future maintenance. +
          +
        • Deprecates the option parameter of type int in , and adds an overloaded function with the option parameter of type .
        • +
        • Deprecates the streamType parameter of type int in , , and , and adds overloaded functions , , and with the streamType parameter of type .
      • +
      • Optimizes transmission strategy: calling no longer impacts the security of the transmission link.
      • +
      • The enumerator is Adds in callback , indicating that the display used for screen capture has been disconnected. (Windows, macOS)
      • +
      • Optimizes the video link for window sharing, reducing CPU usage. (macOS)
      • +
      • Improves echo cancellation for screen sharing scenarios.
      • +
      • Adds the channelId parameter to , which is used to get the channel name from which the metadata is sent.
      • +
      • Deprecates redundant enumeration values and in .
      • +
      • Deprecates redundant enumeration values and .
      • +
      • Optimizes transmission strategy: calling no longer impacts the security of the transmission link.
      • +
      • The enumerator is added in callback, indicating that the display used for screen capture has been disconnected. (Windows, macOS)
      • +
      • Optimizes the video link for window sharing, reducing CPU usage. (macOS)
      • +
      • Improves echo cancellation for screen sharing scenarios.
      • +
      • Adds the channelId parameter to , which is used to get the channel name from which the metadata is sent.
      • +
      • Deprecates redundant enumerations and in .
      • +
      • Deprecates redundant enumerations and .