diff --git a/dita/RTC-NG/API/api_imediaplayer_enableautoswitchagoracdn.dita b/dita/RTC-NG/API/api_imediaplayer_enableautoswitchagoracdn.dita index 22c34baf497..3908b285946 100644 --- a/dita/RTC-NG/API/api_imediaplayer_enableautoswitchagoracdn.dita +++ b/dita/RTC-NG/API/api_imediaplayer_enableautoswitchagoracdn.dita @@ -1,12 +1,12 @@ - + - <ph keyref="enableAutoSwitchAgoraCDN" /> + <ph keyref="enableAutoSwitchAgoraCDN"/> 开启/关闭自动切换媒体资源的 CDN 线路。 - + @@ -14,20 +14,27 @@

int enableAutoSwitchAgoraCDN(boolean enable); - + - (int)enableAutoSwitchAgoraCDN:(BOOL)enable; virtual int enableAutoSwitchAgoraCDN(bool enable) = 0; abstract enableAutoSwitchAgoraCDN(enable: boolean): number; public abstract int EnableAutoSwitchAgoraCDN(bool enable); abstract enableAutoSwitchAgoraCDN(enable: boolean): number; Future<void> enableAutoSwitchAgoraCDN(bool enable); -

+

详情 +
+ +
弃用:
+
该 API 自 v4.6.0 版本废弃。
+
该方法自 v4.6.0 版本废弃。
+
+

如果你想设置 SDK 根据网络情况自动切换媒体资源 CDN 线路,你可以调用该方法。

-

请在 前调用该方法。

+

请在 前调用该方法。

参数 @@ -37,17 +44,17 @@ 设置是否开启自动切换媒体资源的 CDN 线路:
    -
  • :开启自动切换媒体资源的 CDN 线路。
  • -
  • :(默认) 关闭自动切换媒体资源的 CDN 线路。
  • +
  • :开启自动切换媒体资源的 CDN 线路。
  • +
  • :(默认) 关闭自动切换媒体资源的 CDN 线路。
<ph keyref="return-section-title"/>

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

-
-
\ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_getagoracdnlinecount.dita b/dita/RTC-NG/API/api_imediaplayer_getagoracdnlinecount.dita index e382ba44c66..8676d608847 100644 --- a/dita/RTC-NG/API/api_imediaplayer_getagoracdnlinecount.dita +++ b/dita/RTC-NG/API/api_imediaplayer_getagoracdnlinecount.dita @@ -1,12 +1,12 @@ - + - <ph keyref="getAgoraCDNLineCount" /> + <ph keyref="getAgoraCDNLineCount"/> 获取媒体资源的 CDN 线路数量。 - + @@ -14,15 +14,24 @@

int getAgoraCDNLineCount(); - + - (int)getAgoraCDNLineCount; virtual int getAgoraCDNLineCount() = 0; abstract getAgoraCDNLineCount(): number; public abstract int GetAgoraCDNLineCount(); abstract getAgoraCDNLineCount(): number; Future<int> getAgoraCDNLineCount(); -

+

+
+ 详情 +
+ +
弃用:
+
该 API 自 v4.6.0 版本废弃。
+
+
+
返回值
-
\ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_getcurrentagoracdnindex.dita b/dita/RTC-NG/API/api_imediaplayer_getcurrentagoracdnindex.dita index a2345607b8d..ad58034c727 100644 --- a/dita/RTC-NG/API/api_imediaplayer_getcurrentagoracdnindex.dita +++ b/dita/RTC-NG/API/api_imediaplayer_getcurrentagoracdnindex.dita @@ -1,12 +1,12 @@ - + - <ph keyref="getCurrentAgoraCDNIndex" /> + <ph keyref="getCurrentAgoraCDNIndex"/> 获取当前使用的媒体资源的 CDN 线路索引。 - + @@ -14,20 +14,30 @@

int getCurrentAgoraCDNIndex(); - + - (int)getCurrentAgoraCDNIndex; virtual int getCurrentAgoraCDNIndex() = 0; abstract getCurrentAgoraCDNIndex(): number; public abstract int GetCurrentAgoraCDNIndex(); abstract getCurrentAgoraCDNIndex(): number; Future<int> getCurrentAgoraCDNIndex(); -

+

+
+ 详情 +
+ +
弃用:
+
该 API 自 v4.6.0 版本废弃。
+
该方法自 v4.6.0 版本废弃。
+
+
+
返回值
-
\ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_openwithagoracdnsrc.dita b/dita/RTC-NG/API/api_imediaplayer_openwithagoracdnsrc.dita index 811886b82ee..e0ba9862d41 100644 --- a/dita/RTC-NG/API/api_imediaplayer_openwithagoracdnsrc.dita +++ b/dita/RTC-NG/API/api_imediaplayer_openwithagoracdnsrc.dita @@ -1,12 +1,12 @@ - + - <ph keyref="openWithAgoraCDNSrc" /> + <ph keyref="openWithAgoraCDNSrc"/> 打开媒体资源,并通过自研调度中心请求媒体资源的所有 CDN 线路。 - + @@ -15,7 +15,7 @@

int openWithAgoraCDNSrc(String src, long startPos); - + - (int)openWithAgoraCDNSrc:(NSString *)src startPos:(NSInteger)startPos; virtual int openWithAgoraCDNSrc(const char* src, int64_t startPos) = 0; @@ -25,13 +25,20 @@ abstract openWithAgoraCDNSrc(src: string, startPos: number): number; Future<void> openWithAgoraCDNSrc( {required String src, required int startPos}); -

+

详情 - -

调用该方法后,声网会打开媒体资源并通过自研调度中心请求媒体资源的所有 CDN 线路。默认使用第一个线路,你也可以通过 自行切换线路。

-

如果你希望保障连接和播放媒体资源的安全性,你可以协商鉴权字段 (sign) 和鉴权过期时间 (ts)。确定字段后,请将其作为 URL 的 query parameter 以更新媒体资源的网路路径。例如: +

+ +
弃用:
+
该方法自 v4.6.0 版本废弃。
+
该 API 自 v4.6.0 版本废弃。
+
+
+ +

调用该方法后,声网会打开媒体资源并通过自研调度中心请求媒体资源的所有 CDN 线路。默认使用第一个线路,你也可以通过 自行切换线路。

+

如果你希望保障连接和播放媒体资源的安全性,你可以协商鉴权字段 (sign) 和鉴权过期时间 (ts)。确定字段后,请将其作为 URL 的 query parameter 以更新媒体资源的网路路径。例如:

  • 媒体资源网络路径为 rtmp://$domain/$appName/$streamName
  • 通过鉴权信息更新过的媒体资源网络路径为 rtmp://$domain/$appName/$streamName?ts=$ts&sign=$sign
  • @@ -39,7 +46,7 @@

    鉴权信息说明:

      -
    • sign : 通过 authKey + appName + streamName + ts 进行 md5 算法加密得出的鉴权字段。你需要咨询你的 authKey 字段内容。
    • +
    • sign : 通过 authKey + appName + streamName + ts 进行 md5 算法加密得出的鉴权字段。你需要咨询你的 authKey 字段内容。
    • ts : 鉴权过期时间。你可以指定再过多久鉴权过期。例如, 24h1h30m20s

    @@ -59,9 +66,9 @@
    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
      +
      • 0: 方法调用成功。
      • < 0: 方法调用失败。详见了解详情和解决建议。
    - \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_renewagoracdnsrctoken.dita b/dita/RTC-NG/API/api_imediaplayer_renewagoracdnsrctoken.dita index 69b874e3511..aebca85222b 100644 --- a/dita/RTC-NG/API/api_imediaplayer_renewagoracdnsrctoken.dita +++ b/dita/RTC-NG/API/api_imediaplayer_renewagoracdnsrctoken.dita @@ -1,12 +1,12 @@ - + - <ph keyref="renewAgoraCDNSrcToken" /> + <ph keyref="renewAgoraCDNSrcToken"/> 更新媒体资源网络路径的鉴权信息。 - + @@ -15,7 +15,7 @@

    int renewAgoraCDNSrcToken(String token, long ts); - + - (int)renewAgoraCDNSrcToken:(NSString *)token ts:(NSInteger)ts; virtual int renewAgoraCDNSrcToken(const char* token, int64_t ts) = 0; @@ -24,14 +24,20 @@ public abstract int RenewAgoraCDNSrcToken(string token, Int64 ts); abstract renewAgoraCDNSrcToken(token: string, ts: number): number; Future<void> renewAgoraCDNSrcToken({required String token, required int ts}); -

    +

详情 -

当鉴权信息过期(超出 ts 时间)时,你可以调用 重新打开或切换媒体资源,并传入带新鉴权信息(如更新 ts 字段内容)的媒体资源网络路径。

-

如果你在切换媒体资源线路 () 时遇到鉴权信息过期,你需要调用该方法并传入新的鉴权信息,以更新该媒体资源网络路径的鉴权信息。更新鉴权信息后,你还需调用 才能完成线路切换。

+
+ +
弃用:
+
该方法自 v4.6.0 版本废弃。
+
+
+

当鉴权信息过期(超出 ts 时间)时,你可以调用 重新打开或切换媒体资源,并传入带新鉴权信息(如更新 ts 字段内容)的媒体资源网络路径。

+

如果你在切换媒体资源线路 () 时遇到鉴权信息过期,你需要调用该方法并传入新的鉴权信息,以更新该媒体资源网络路径的鉴权信息。更新鉴权信息后,你还需调用 才能完成线路切换。

-

为避免鉴权信息频繁过期,请务必根据场景需求设置合适的 ts 字段内容或

+

为避免鉴权信息频繁过期,请务必根据场景需求设置合适的 ts 字段内容或

参数 @@ -48,9 +54,9 @@
<ph keyref="return-section-title"/>

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

-
    +
    • 0: 方法调用成功。
    • < 0: 方法调用失败。详见了解详情和解决建议。
- \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_switchagoracdnlinebyindex.dita b/dita/RTC-NG/API/api_imediaplayer_switchagoracdnlinebyindex.dita index 17a7e68afa2..349cdd51c6a 100644 --- a/dita/RTC-NG/API/api_imediaplayer_switchagoracdnlinebyindex.dita +++ b/dita/RTC-NG/API/api_imediaplayer_switchagoracdnlinebyindex.dita @@ -1,12 +1,12 @@ - + - <ph keyref="switchAgoraCDNLineByIndex" /> + <ph keyref="switchAgoraCDNLineByIndex"/> 切换媒体资源的 CDN 线路。 - + @@ -15,7 +15,7 @@

int switchAgoraCDNLineByIndex(int index); - + - (int)switchAgoraCDNLineByIndex:(int)index; virtual int switchAgoraCDNLineByIndex(int index) = 0; @@ -24,18 +24,25 @@ public abstract int SwitchAgoraCDNLineByIndex(int index); abstract switchAgoraCDNLineByIndex(index: number): number; Future<void> switchAgoraCDNLineByIndex(int index); -

+

详情 -

通过 打开媒体资源后,如果你想切换媒体资源 CDN 线路,你可以调用该方法。 +

+ +
弃用:
+
该 API 自 v4.6.0 版本废弃。
+
该方法自 v4.6.0 版本废弃。
+
+
+

通过 打开媒体资源后,如果你想切换媒体资源 CDN 线路,你可以调用该方法。

    -
  • 请在 后调用该方法。
  • -
  • 该方法在 前后均可调用。如果你在 前调用该方法,切换不会立即生效。SDK 会等待播放完成后再切换媒体资源的 CDN 线路。
  • +
  • 请在 后调用该方法。
  • +
  • 该方法在 前后均可调用。如果你在 前调用该方法,切换不会立即生效。SDK 会等待播放完成后再切换媒体资源的 CDN 线路。

@@ -49,9 +56,9 @@
<ph keyref="return-section-title"/>

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

-
    +
    • 0: 方法调用成功。
    • < 0: 方法调用失败。详见了解详情和解决建议。
- \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_imediaplayer_switchagoracdnsrc.dita b/dita/RTC-NG/API/api_imediaplayer_switchagoracdnsrc.dita index e04933332c1..0e8c7db9e88 100644 --- a/dita/RTC-NG/API/api_imediaplayer_switchagoracdnsrc.dita +++ b/dita/RTC-NG/API/api_imediaplayer_switchagoracdnsrc.dita @@ -1,12 +1,12 @@ - + - <ph keyref="switchAgoraCDNSrc" /> + <ph keyref="switchAgoraCDNSrc"/> 切换媒体资源。 - + @@ -15,7 +15,7 @@

int switchAgoraCDNSrc(String src, boolean syncPts); - + - (int)switchAgoraCDNSrc:(NSString *)src syncPts:(BOOL)syncPts; virtual int switchAgoraCDNSrc(const char* src, bool syncPts = false) = 0; @@ -24,19 +24,25 @@ public abstract int SwitchAgoraCDNSrc(string src, bool syncPts = false); abstract switchAgoraCDNSrc(src: string, syncPts?: boolean): number; Future<void> switchAgoraCDNSrc({required String src, bool syncPts = false}); -

+

详情 -

如果用户需要自定义播放线路,你可以调用该方法实现媒体资源切换。声网会通过自研调度中心支持调度线路,提升观看用户体验。如果用户不需要自定义播放线路,你可以调用 实现媒体资源切换。 +

+ +
弃用:
+
该方法自 v4.6.0 版本废弃。
+
+
+

如果用户需要自定义播放线路,你可以调用该方法实现媒体资源切换。声网会通过自研调度中心支持调度线路,提升观看用户体验。如果用户不需要自定义播放线路,你可以调用 实现媒体资源切换。

    -
  • 请在 后调用该方法。
  • -
  • 该方法在 前后均可调用。如果你在 前调用该方法,SDK 会等你调用 后再完成线路切换。 +
  • 请在 后调用该方法。
  • +
  • 该方法在 前后均可调用。如果你在 前调用该方法,SDK 会等你调用 后再完成线路切换。
-

+

参数 @@ -51,19 +57,19 @@
    -
  • :同步。
  • -
  • :(默认) 不同步。
  • +
  • :同步。
  • +
  • :(默认) 不同步。
-

如果媒体资源为直播流,你只能将该参数设置为 ,否则 SDK 切换媒体资源会失败。如果媒体资源为点播流,你可以根据场景需求对该参数赋值。

+

如果媒体资源为直播流,你只能将该参数设置为 ,否则 SDK 切换媒体资源会失败。如果媒体资源为点播流,你可以根据场景需求对该参数赋值。

<ph keyref="return-section-title"/>

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

-
    +
    • 0: 方法调用成功。
    • < 0: 方法调用失败。详见了解详情和解决建议。
-
\ No newline at end of file + diff --git a/dita/RTC-NG/API/api_irtcengine_addvideowatermark2.dita b/dita/RTC-NG/API/api_irtcengine_addvideowatermark2.dita index 1aa82f57a35..a02ba0786d0 100644 --- a/dita/RTC-NG/API/api_irtcengine_addvideowatermark2.dita +++ b/dita/RTC-NG/API/api_irtcengine_addvideowatermark2.dita @@ -1,4 +1,4 @@ - + <ph keyref="addVideoWatermark2"/> @@ -14,10 +14,10 @@

public abstract int addVideoWatermark(String watermarkUrl, WatermarkOptions options); - + - (int)addVideoWatermark:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options; virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") + UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") int AddVideoWatermark(const FString& watermarkUrl, const FWatermarkOptions& options); abstract addVideoWatermark( watermarkUrl: string, @@ -30,10 +30,18 @@ ): number; Future<void> addVideoWatermark( {required String watermarkUrl, required WatermarkOptions options}); -

+

详情 +
+ +
弃用:
+
该方法已废弃,请改用 `addVideoWatermark`。
+
该方法自版本废弃,请改用 `addVideoWatermarkWithConfig`。
+
该方法自 v4.6.0 版本废弃,请改用 `addVideoWatermark`。
+
+

该方法将一张 PNG 图片作为水印添加到本地发布的直播视频流上,同一直播频道中的用户、旁路直播观众和采集设备都能看到或采集到该水印图片。当前只支持在直播视频流中添加一个水印,后添加的水印会替换掉之前添加的水印。

水印坐标和 方法中的设置有依赖关系: @@ -90,8 +98,8 @@ 参数 - watermarkUrl - url + watermarkUrl + url 待添加的水印图片的本地路径。该方法支持从本地绝对/相对路径添加水印图片。 @@ -102,7 +110,7 @@

<ph keyref="return-section-title"/>

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

-
    +
    • 0: 方法调用成功。
    • < 0: 方法调用失败。详见了解详情和解决建议。
diff --git a/dita/RTC-NG/API/api_irtcengine_addvideowatermark3.dita b/dita/RTC-NG/API/api_irtcengine_addvideowatermark3.dita new file mode 100644 index 00000000000..38b6dd2882f --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_addvideowatermark3.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="addVideoWatermark3"/> + 向本地视频添加水印图像。 + + + + + + + + +
+

+ public abstract int addVideoWatermark(WatermarkConfig config); + + - (int)addVideoWatermarkWithConfig:(WatermarkConfig* _Nonnull)config NS_SWIFT_NAME(addVideoWatermark(_:)); + virtual int addVideoWatermark(const WatermarkConfig& configs) = 0; + + + + +

+
+
+
+ +
自从:
+
自 v4.6.0 版本新增。
+
+
+

你可以使用该方法在本地视频流中叠加水印图像,并通过 配置水印的位置、大小和在预览中的可见性。

+
+
+ 调用限制 +

无。

+
+
+ 参数 + + + configs + config + 水印配置。详见 + 水印图像的配置。详见 + +
+
+ <ph keyref="return-section-title"/> +

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

+
    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。详见了解详情和解决建议。
  • +
+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。
  • +
+

+
+
+
diff --git a/dita/RTC-NG/API/api_irtcengine_createvideoeffectobject.dita b/dita/RTC-NG/API/api_irtcengine_createvideoeffectobject.dita new file mode 100644 index 00000000000..641080d8916 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_createvideoeffectobject.dita @@ -0,0 +1,75 @@ + + + + <ph keyref="createVideoEffectObject"/> + 创建一个视频特效对象。 + + + + + + + + +
+

+ public abstract IVideoEffectObject createVideoEffectObject(String bundlePath, Constants.MediaSourceType sourceType); + + - (id<AgoraVideoEffectObject> _Nullable)createVideoEffectObjectWithBundlePath:(NSString * _Nonnull)bundlePath sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(createVideoEffectObject(bundlePath:sourceType:)); + virtual agora_refptr<IVideoEffectObject> createVideoEffectObject(const char* bundlePath, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; + + + + +

+
+
+
+ +
自从:
+
自 v4.6.0 版本新增。
+
+
+

创建一个 IVideoEffectObject 视频特效对象并返回其指针。

+ 调用该方法前需先调用 方法。该方法适用于 Android 4.4 或更高版本。 +
+
+ 调用限制 +

无。

+
+
+ 参数 + + + bundlePath + bundlePath + 视频特效资源包的路径。 + 视频特效 bundle 的路径。 + + + sourceType + sourceType + type + 媒体源类型,例如 。详见 + 媒体源类型,例如 。详见 + 媒体源类型,详见 + +
+
+ <ph keyref="return-section-title"/> +

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

+
    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。详见了解详情和解决建议。
  • +
+

    +
  • 方法调用成功,返回 IVideoEffectObject 对象指针。
  • +
  • 方法调用失败,返回空指针。
  • +
+

+

方法调用成功,返回 AgoraVideoEffectObject 对象。方法调用失败,返回空指针。

+

方法调用成功,返回 IVideoEffectObject 对象。 +方法调用失败,返回 null。

+
+
+
diff --git a/dita/RTC-NG/API/api_irtcengine_destroyvideoeffectobject.dita b/dita/RTC-NG/API/api_irtcengine_destroyvideoeffectobject.dita new file mode 100644 index 00000000000..fd3aa9d58c4 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_destroyvideoeffectobject.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="destroyVideoEffectObject"/> + 销毁一个视频特效对象。 + + + + + + + + +
+

+ public abstract int destroyVideoEffectObject(IVideoEffectObject videoEffectObject); + + - (int)destroyVideoEffectObject:(id<AgoraVideoEffectObject> _Nullable)videoEffectObject NS_SWIFT_NAME(destroyVideoEffectObject(_:)); + virtual int destroyVideoEffectObject(agora_refptr<IVideoEffectObject> videoEffectObject) = 0; + + + + +

+
+
+
+ +
自从:
+
自 v4.6.0 版本新增。
+
+
+

+ 调用该方法前需先调用 方法。该方法适用于 Android 4.4 或更高版本。 +
+
+ 调用限制 +

无。

+
+
+ 参数 + + + videoEffectObject + 要销毁的视频特效对象。详见 IVideoEffectObject + 要销毁的 AgoraVideoEffectObject 实例的指针。详见 AgoraVideoEffectObject + 待销毁的视频特效对象。详见 IVideoEffectObject + +
+
+ <ph keyref="return-section-title"/> +

方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

+
    +
  • 0: 方法调用成功。
  • +
  • < 0: 方法调用失败。详见了解详情和解决建议。
  • +
+

    +
  • 0:方法调用成功。
  • +
  • < 0:方法调用失败。
  • +
+

+
+
+
diff --git a/dita/RTC-NG/API/api_irtcengine_release.dita b/dita/RTC-NG/API/api_irtcengine_release.dita index 330da408384..49d191d3860 100644 --- a/dita/RTC-NG/API/api_irtcengine_release.dita +++ b/dita/RTC-NG/API/api_irtcengine_release.dita @@ -1,8 +1,8 @@ - + <ph keyref="release"/> - 销毁 对象。 + 释放声网 SDK 使用的所有资源。 @@ -13,46 +13,66 @@

- public static synchronized void destroy() { - if (mInstance == null) - return; - mInstance.doDestroy(); - mInstance = null; - System.gc(); - } - - public static destroy(): Promise<void> { - return RtcEngineImpl.destroyEngine(); - }; - + (void)destroy; - virtual void release(bool sync = false) = 0; - static void Release(bool sync = false); - abstract release(sync?: boolean): void; - public abstract void Dispose(bool sync = false); - abstract release(sync?: boolean): void; - Future<void> release({bool sync = false}); -

+ public static synchronized void destroy(@Nullable IRtcEngineReleaseCallback callback) + + + (void)destroy:(void (^ _Nullable)(void))engineReleasedBlock NS_SWIFT_NAME(destroy(_:)); + AGORA_CPP_API static void release(RtcEngineReleaseCallback callback = nullptr); + + + + +

-
- 详情 -

该方法释放 SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。

-

调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能, 你必须依次重新调用 方法创建一个新的 对象。

-

调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须依次重新调用 方法创建一个新的 对象。

-
    -
  • 该方法为同步调用。需要等待 资源释放后才能执行其他操作(例如:创建一个新的 对象),因此建议在子线程中调用该方法,避免主线程阻塞。
  • -
  • 不建议在 SDK 的回调中调用 ,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。
-
+
+
+ +
自从:
+
自 v4.6.0 版本新增。
+
+
+

该方法适用于偶尔进行语音通话或视频通话的应用程序,在不通话时释放资源以供其他操作使用。一旦调用该方法销毁已创建的引擎实例,SDK 中的其他方法将无法使用,也不会再触发任何回调。若需重新开始通信,请调用 sharedEngineWithAppId 方法重新创建实例。

+ 如果你希望在销毁当前 实例后创建新的实例,请确保等待 方法执行完成。 + 不要在 SDK 生成的任何回调中调用此方法,否则可能导致死锁。 +
+
+ 调用限制 +

无。

+
+
参数 - - sync - -

该方法是否为同步调用:

+ + callback + 可选的回调实例。用于决定该方法是否为同步调用: +
    +
  • 非 null:该方法为异步调用。即使 对象资源尚未释放,方法也会立即返回,并在引擎资源释放后触发 回调。
  • +
  • null:该方法为同步调用,方法返回时 对象资源已释放。请勿在 SDK 生成的任何回调中调用该方法,否则可能导致死锁。详见 IRtcEngineReleaseCallback
  • +
+
+ 用于确定该方法是否为同步调用。 +
    +
  • 非空指针:该方法为异步调用,调用结果会立即返回,即使 对象资源尚未释放。当引擎释放时会触发 回调。
  • +
  • 空指针:该方法为同步调用,调用结果在 对象资源释放后返回。不要在 SDK 生成的任何回调中调用该方法,否则可能导致死锁。
  • +
+
+
+ + engineReleasedBlock + 被销毁时触发的回调 block。该参数决定该方法是同步调用还是异步调用。
    -
  • :该方法为同步调用。
  • -
  • :该方法为异步调用。目前该方法仅支持同步调用,请不要将该参数设置为该值。
  • -
+
  • 非空:该方法为异步调用,即使 实例的资源尚未释放,该方法也会立即返回,并在资源释放后触发 engineReleasedBlock
  • +
  • 空:该方法为同步调用,即该方法在 实例资源释放后才返回。
  • + +
    - +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    + diff --git a/dita/RTC-NG/API/api_irtcengine_removevideowatermark.dita b/dita/RTC-NG/API/api_irtcengine_removevideowatermark.dita new file mode 100644 index 00000000000..5db29f268ce --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_removevideowatermark.dita @@ -0,0 +1,63 @@ + + + + <ph keyref="removeVideoWatermark"/> + 从本地视频中移除水印图像。 + + + + + + + + +
    +

    + public abstract int removeVideoWatermark(String id); + + - (int)removeVideoWatermark:(NSString* _Nonnull)id NS_SWIFT_NAME(removeVideoWatermark(_:)); + virtual int removeVideoWatermark(const char* id) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该方法通过指定的唯一 ID,从本地视频流中移除之前添加的水印图像。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + id + 要移除的水印图像的 ID。 + 要移除的水印的标识符。 + 要移除的水印 ID。该值应与添加水印时使用的 ID 保持一致。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita b/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita index 3cec0b74a6c..559e75fd6af 100644 --- a/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita +++ b/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingaudioconfiguration.dita @@ -1,12 +1,12 @@ - + - <ph keyref="setDirectCdnStreamingAudioConfiguration" /> + <ph keyref="setDirectCdnStreamingAudioConfiguration"/> 设置主播端直接向 CDN 推流时的音频编码属性。 - + @@ -14,10 +14,10 @@

    public abstract int setDirectCdnStreamingAudioConfiguration(int profile); - + - (int)setDirectCdnStreamingAudioConfiguration:(AgoraAudioProfile)profile; virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") + UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") int SetDirectCdnStreamingAudioConfiguration(EAUDIO_PROFILE_TYPE profile); abstract setDirectCdnStreamingAudioConfiguration( profile: AudioProfileType @@ -28,27 +28,34 @@ ): number; Future<void> setDirectCdnStreamingAudioConfiguration( AudioProfileType profile); -

    -
    -
    -

    该方法仅对麦克风采集或自采集的音频有效,即对在 中设置 publishMicrophoneTrackpublishCustomAudioTrack 时所采集的音频有效。

    +

    +
    +

    该方法仅对麦克风采集或自采集的音频有效,即对在 中设置 publishMicrophoneTrackpublishCustomAudioTrack 时所采集的音频有效。

    +
    + +
    弃用:
    +
    该 API 自 v4.6.0 版本废弃。
    +
    该方法自 v4.6.0 版本废弃。
    +
    +
    +
    参数 profile -

    +

    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
      +
      • 0: 方法调用成功。
      • < 0: 方法调用失败。详见了解详情和解决建议。
    -
    \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita b/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita index 897bd47451c..a5715573883 100644 --- a/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita +++ b/dita/RTC-NG/API/api_irtcengine_setdirectcdnstreamingvideoconfiguration.dita @@ -1,4 +1,4 @@ - + <ph keyref="setDirectCdnStreamingVideoConfiguration"/> @@ -14,12 +14,12 @@

    public abstract int setDirectCdnStreamingVideoConfiguration(VideoEncoderConfiguration config); - + - (int)setDirectCdnStreamingVideoConfiguration:(AgoraVideoEncoderConfiguration * _Nonnull)config; virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") + UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") int SetDirectCdnStreamingVideoConfiguration(const FVideoEncoderConfiguration& config); abstract setDirectCdnStreamingVideoConfiguration( config: VideoEncoderConfiguration @@ -28,12 +28,20 @@ abstract setDirectCdnStreamingVideoConfiguration( config: VideoEncoderConfiguration ): number; - Future<void> setDirectCdnStreamingVideoConfiguration( + Future<void> setDirectCdnStreamingVideoConfiguration( VideoEncoderConfiguration config); -

    +

    详情 +
    + +
    弃用:
    +
    该 API 自 v4.6.0 版本废弃。
    +
    该方法自 v4.6.0 版本废弃,请改用其他替代方案。
    +
    该方法自 v4.6.0 版本废弃。
    +
    +

    该方法仅对摄像头采集、屏幕共享或自采集的视频有效。即对在 中设置 publishCameraTrackpublishCustomVideoTrack 时所采集的视频有效。

    如果你设置的视频分辨率超出你的摄像头设备支持的范围,SDK 会根据你的设置进行自适应,取最接近、且长宽比与你设置的分辨率一致的值进行采集、编码、推流。你可以通过 回调了解推送的视频流的实际分辨率。

    @@ -49,7 +57,7 @@
    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
      +
      • 0: 方法调用成功。
      • < 0: 方法调用失败。详见了解详情和解决建议。
      diff --git a/dita/RTC-NG/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita b/dita/RTC-NG/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita new file mode 100644 index 00000000000..d3046d4095a --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_setplaybackaudioframebeforemixingparameters1.dita @@ -0,0 +1,95 @@ + + + + <ph keyref="setPlaybackAudioFrameBeforeMixingParameters1"/> + 设置 回调中音频数据的播放格式。 + + + + + + + + +
      +

      + public abstract int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall); + + - (int)setPlaybackAudioFrameBeforeMixingParametersWithSampleRate:(NSInteger)sampleRate channel:(NSInteger)channel samplesPerCall:(NSInteger)samplesPerCall NS_SWIFT_NAME(setPlaybackAudioFrameBeforeMixingParametersWithSampleRate(_:channel:samplesPerCall:)); + virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall) = 0; + + + + +

      +
      +
      +

      用于设置 回调中返回的音频数据的采样率、声道数和每次回调的采样点数。

      +
      +
      + 调用限制 +

      无。

      +
      +
      + 参数 + + + sampleRate + sampleRate + 设置 回调中返回的采样率(samplesPerSec)。可设置为以下值: +
        +
      • 8000。
      • +
      • 16000。
      • +
      • 32000。
      • +
      • 44100。
      • +
      • 48000(单位:Hz)。
      • +
      +
      + 输入参数,在 回调中包含的采样率(Hz)。你可以设置为 8000、16000、32000、44100 或 48000。 + 回调中返回的音频数据采样率(Hz)。可设置为 8000、16000、32000、44100 或 48000。 +
      + + channel + channel + 设置 回调中返回的音频数据的声道数。可设置为: +
        +
      • 1:单声道。
      • +
      • 2:立体声。
      • +
      +
      + 输入参数,在 回调中包含的声道数。 +
        +
      • 1:单声道。
      • +
      • 2:立体声。
      • +
      +
      + 回调中返回的音频数据声道数。可设置为: +
        +
      • 1:单声道。
      • +
      • 2:立体声。
      • +
      +
      +
      + + samplesPerCall + samplesPerCall + 设置 回调返回的采样点数。在 RTMP 推流场景中,建议设置为 1024。 + 输入参数,在 回调中返回的数据中的采样点数。例如,对于推流场景,通常设置为 1024。 + 回调中每次返回的采样点数。例如,推流时通常设置为 1024。 + +
      +
      + <ph keyref="return-section-title"/> +

      方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

      +
        +
      • 0: 方法调用成功。
      • +
      • < 0: 方法调用失败。详见了解详情和解决建议。
      • +
      +

        +
      • 0:方法调用成功。
      • +
      • < 0:方法调用失败。
      • +
      +

      +
      +
      +
      diff --git a/dita/RTC-NG/API/api_irtcengine_setsimulcastconfig.dita b/dita/RTC-NG/API/api_irtcengine_setsimulcastconfig.dita new file mode 100644 index 00000000000..c3b1fc9a942 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengine_setsimulcastconfig.dita @@ -0,0 +1,68 @@ + + + + <ph keyref="setSimulcastConfig"/> + 设置多质量层级视频流配置。 + + + + + + + + +
      +

      + public abstract int setSimulcastConfig(SimulcastConfig simulcastConfig); + + - (int)setSimulcastConfig:(AgoraSimulcastConfig* _Nonnull)simulcastConfig NS_SWIFT_NAME(setSimulcastConfig(_:)); + virtual int setSimulcastConfig(const SimulcastConfig& simulcastConfig) = 0; + + + + +

      +
      +
      +
      + +
      自从:
      +
      自 v4.6.0 版本新增。
      +
      +
      +

      你可以调用该方法为同一个用户 ID 设置多路不同分辨率的视频流。 + +配置多质量层级视频流后,订阅端可以调用 选择接收对应层级的视频流。 + +该方法支持主播同时发送最多四个层级的视频流:一个主流(最高分辨率)和三个额外的不同质量层级的视频流。

      +
      +
      + 调用限制 +

      无。

      +
      +
      + 参数 + + + simulcastConfig + simulcastConfig + 不同质量层级的视频流配置。详见 + 多质量层级视频流的配置。该配置包含七个层级,从 ,最多可同时启用三个层级。详见 + 多质量层级视频流配置,包含从 的七个层级,最多可同时启用三个层级。详见 + +
      +
      + <ph keyref="return-section-title"/> +

      方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

      +
        +
      • 0: 方法调用成功。
      • +
      • < 0: 方法调用失败。详见了解详情和解决建议。
      • +
      +

        +
      • 0:方法调用成功。
      • +
      • < 0:方法调用失败。
      • +
      +

      +
      +
      +
      diff --git a/dita/RTC-NG/API/api_irtcengine_startdirectcdnstreaming.dita b/dita/RTC-NG/API/api_irtcengine_startdirectcdnstreaming.dita index 6b1b206cc09..839e264f746 100644 --- a/dita/RTC-NG/API/api_irtcengine_startdirectcdnstreaming.dita +++ b/dita/RTC-NG/API/api_irtcengine_startdirectcdnstreaming.dita @@ -1,12 +1,12 @@ - + - <ph keyref="startDirectCdnStreaming" /> + <ph keyref="startDirectCdnStreaming"/> 设置主播端开始直接向 CDN 推流。 - + @@ -14,11 +14,11 @@

      public abstract int startDirectCdnStreaming(IDirectCdnStreamingEventHandler eventHandler, String publishUrl, DirectCdnStreamingMediaOptions options); - + - (int)startDirectCdnStreaming:(id<AgoraDirectCdnStreamingEventDelegate> _Nonnull)delegate publishUrl:(NSString * _Nonnull)publishUrl mediaOptions:(AgoraDirectCdnStreamingMediaOptions * _Nonnull)options; virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler, const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy") + UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy") int StartDirectCdnStreaming(UIDirectCdnStreamingEventHandler* eventHandler, FString publishUrl, FDirectCdnStreamingMediaOptions& options); abstract startDirectCdnStreaming( eventHandler: IDirectCdnStreamingEventHandler, @@ -31,34 +31,40 @@ publishUrl: string, options: DirectCdnStreamingMediaOptions ): number; - Future<void> startDirectCdnStreaming( + Future<void> startDirectCdnStreaming( {required DirectCdnStreamingEventHandler eventHandler, required String publishUrl, required DirectCdnStreamingMediaOptions options}); -

    +

    详情 +
    + +
    弃用:
    +
    该方法自 v4.6.0 版本废弃。
    +
    +

    SDK 不支持同一时间向同一个 URL 重复推流。

    媒体选项说明

    -

    SDK 不支持 publishCameraTrackpublishCustomVideoTrack 同时为 ,也不支持 publishMicrophoneTrackpublishCustomAudioTrack 同时为 。你可以根据场景需求设置媒体选项 ()。示例如下:

    +

    SDK 不支持 publishCameraTrackpublishCustomVideoTrack 同时为 ,也不支持 publishMicrophoneTrackpublishCustomAudioTrack 同时为 。你可以根据场景需求设置媒体选项 ()。示例如下:

    如果你想推送主播端自定义采集的音视频流,请将媒体选项进行如下设置:

      -
    • publishCustomAudioTrack 设为 并调用
    • -
    • publishCustomAudioTrack 设为 并调用
    • -
    • publishCustomVideoTrack 设为 并调用
    • -
    • 确保 publishCameraTrack (默认值)
    • -
    • 确保 publishMicrophoneTrack (默认值)
    • +
    • publishCustomAudioTrack 设为 并调用
    • +
    • publishCustomAudioTrack 设为 并调用
    • +
    • publishCustomVideoTrack 设为 并调用
    • +
    • 确保 publishCameraTrack (默认值)
    • +
    • 确保 publishMicrophoneTrack (默认值)
    -

    自 v4.2.0 起,SDK 支持推送纯音频流。你可以在 中将 publishCustomAudioTrack 或者 publishMicrophoneTrack 设为 ,并调用 即可推送纯音频流。 +

    自 v4.2.0 起,SDK 支持推送纯音频流。你可以在 中将 publishCustomAudioTrack 或者 publishMicrophoneTrack 设为 ,并调用 即可推送纯音频流。 自 v4.2.0 起,SDK 支持推送纯音频流。你可以在 中将 publishCustomAudioTrack 或者 publishMicrophoneTrack 设为 ,并调用 即可推送纯音频流。 在向 CDN 直接推流时,SDK 目前仅支持推送一路音频流及视频流,或一路纯音频流。

    参数 - - eventHandler - delegate - 详见 + + eventHandler + delegate + 详见 publishUrl @@ -66,13 +72,13 @@ options - 主播端的媒体选项。详见 + 主播端的媒体选项。详见
    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
      +
      • 0: 方法调用成功。
      • < 0: 方法调用失败。详见了解详情和解决建议。
    diff --git a/dita/RTC-NG/API/api_irtcengine_stopdirectcdnstreaming.dita b/dita/RTC-NG/API/api_irtcengine_stopdirectcdnstreaming.dita index a5ef6450675..9fea7511553 100644 --- a/dita/RTC-NG/API/api_irtcengine_stopdirectcdnstreaming.dita +++ b/dita/RTC-NG/API/api_irtcengine_stopdirectcdnstreaming.dita @@ -1,33 +1,44 @@ - + - <ph keyref="stopDirectCdnStreaming" /> + <ph keyref="stopDirectCdnStreaming"/> 设置主播端停止直接向 CDN 推流。 - +
    public abstract int stopDirectCdnStreaming(); - + - (int)stopDirectCdnStreaming; virtual int stopDirectCdnStreaming() = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy") + UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy") int StopDirectCdnStreaming(); abstract stopDirectCdnStreaming(): number; public abstract int StopDirectCdnStreaming(); abstract stopDirectCdnStreaming(): number; Future<void> stopDirectCdnStreaming();
    +
    + 详情 +
    + +
    弃用:
    +
    该 API 自 v4.6.0 版本废弃。
    +
    该 API 自 v4.6.0 版本废弃,请改用其他方法。
    +
    该方法自 v4.6.0 版本废弃。
    +
    +
    +
    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
      +
      • 0: 方法调用成功。
      • < 0: 方法调用失败。详见了解详情和解决建议。
    -
    \ No newline at end of file +
    diff --git a/dita/RTC-NG/API/api_irtcengine_updatedirectcdnstreamingmediaoptions.dita b/dita/RTC-NG/API/api_irtcengine_updatedirectcdnstreamingmediaoptions.dita index 410f3e60c44..6630dece4b3 100644 --- a/dita/RTC-NG/API/api_irtcengine_updatedirectcdnstreamingmediaoptions.dita +++ b/dita/RTC-NG/API/api_irtcengine_updatedirectcdnstreamingmediaoptions.dita @@ -1,42 +1,50 @@ - + updateDirectCdnStreamingMediaOptions - + - +

    - - - - - - - + + + + + + + There are no corresponding names available -

    +

    详情 -

    +

    + +
    弃用:
    +
    该方法自 v4.6.0 起废弃。
    +
    该方法自 v4.6.0 版本废弃。
    +
    该 API 自 v4.6.0 版本废弃。
    +
    +
    +

    参数 - - + +
    返回值
    -
    \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex.dita b/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex.dita index 73d487fea84..f38fbcf51d7 100644 --- a/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex.dita +++ b/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex.dita @@ -1,12 +1,12 @@ - + - <ph keyref="addVideoWatermarkEx" /> + <ph keyref="addVideoWatermarkEx"/> 添加本地视频水印。 - + @@ -15,14 +15,14 @@

    public abstract int addVideoWatermarkEx( String watermarkUrl, WatermarkOptions options, RtcConnection connection); - + - (int)addVideoWatermarkEx:(NSURL* _Nonnull)url options:(WatermarkOptions* _Nonnull)options connection:(AgoraRtcConnection * _Nonnull)connection; virtual int addVideoWatermarkEx(const char* watermarkUrl, const WatermarkOptions& options, const RtcConnection& connection) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") + UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") int AddVideoWatermarkEx(const FString& watermarkUrl, const FWatermarkOptions& options, const FRtcConnection& connection); abstract addVideoWatermarkEx( watermarkUrl: string, @@ -39,51 +39,59 @@ {required String watermarkUrl, required WatermarkOptions options, required RtcConnection connection}); -

    +

    详情 -

    -

    水印坐标和 方法中的设置有依赖关系: +

    + +
    弃用:
    +
    该方法自 v4.6.0 版本废弃,请改用 `addVideoWatermarkEx`。
    +
    该方法已废弃,请改用 `addVideoWatermarkWithConfig`。
    +
    该方法自 v4.6.0 版本废弃,请改用 `addVideoWatermark`。
    +
    +
    +

    +

    水印坐标和 方法中的设置有依赖关系:

      -
    • 你需要在调用 方法之后再调用本方法。
    • +
    • 你需要在调用 方法之后再调用本方法。
    • 待添加水印图片必须是 PNG 格式。本方法支持所有像素格式的 PNG 图片:RGBA、RGB、Palette、Gray 和 Alpha_gray。
    • 如果待添加的 PNG 图片的尺寸与你在本方法中设置的尺寸不一致,SDK 会对 PNG 图片进行缩放或裁剪,以与设置相符。
    • -
    • 如果你已经使用 方法开启本地视频预览,那么本方法的 visibleInPreview 可设置水印在预览时是否可见。
    • +
    • 如果你已经使用 方法开启本地视频预览,那么本方法的 visibleInPreview 可设置水印在预览时是否可见。
    • 如果你已设置本地视频为镜像模式,那么此处的本地水印也为镜像。为避免本地用户看本地视频时的水印也被镜像,建议你不要对本地视频同时使用镜像和水印功能,请在应用层实现本地水印功能。
    参数 - - + + - - + + - - + +
    <ph keyref="return-section-title"/>

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    -
    -
    \ No newline at end of file + diff --git a/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex1.dita b/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex1.dita new file mode 100644 index 00000000000..7b7bae47a04 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengineex_addvideowatermarkex1.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="addVideoWatermarkEx1"/> + 向本地视频添加水印图像。 + + + + + + + + +
    +

    + public abstract int addVideoWatermarkEx(WatermarkConfig config, RtcConnection connection); + + - (int)addVideoWatermarkEx:(WatermarkConfig* _Nonnull)configs connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(addVideoWatermarkEx(_:connection:)); + virtual int addVideoWatermarkEx(const WatermarkConfig& config, const RtcConnection& connection) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该方法适用于多频道场景。

    +
    +
    + 适用场景 +

    该方法适用于多频道场景。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + config + configs + 水印配置。详见 + + + connection + 用于控制不同连接实例。详见 + 连接信息,包括频道 ID 和用户 ID。详见 + 对象。详见 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcengineex_playeffectex.dita b/dita/RTC-NG/API/api_irtcengineex_playeffectex.dita new file mode 100644 index 00000000000..be35a11dcda --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengineex_playeffectex.dita @@ -0,0 +1,163 @@ + + + + <ph keyref="playEffectEx"/> + 播放指定音效文件。 + + + + + + + + +
    +

    + public int playEffectEx(RtcConnection connection, int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish); + + - (int)playEffectEx:(AgoraRtcConnection* _Nonnull)connection soundId:(int)soundId filePath:(NSString* _Nonnull)filePath loopCount:(NSInteger)loopCount pitch:(double)pitch pan:(double)pan gain:(NSInteger)gain startPos:(int)startPos NS_SWIFT_NAME(playEffectEx(_:soundId:filePath:loopCount:pitch:pan:gain:startPos:)); + virtual int playEffectEx(const RtcConnection& connection, int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    调用 预加载音效后,可以调用该方法将指定音效播放给频道内的所有用户。每次调用该方法只能播放一个音效。如需同时播放多个音效,请多次调用该方法。

    + 该方法适用于多频道场景。如果你通过 方法将音效文件预加载到内存中,请确保 soundId 的值与 中设置的值一致。 +
      +
    • 该方法适用于多频道场景。
    • +
    • 声网建议同时播放的音效不超过三个。
    • +
    • 此方法中的音效 ID 和文件路径必须与调用 时保持一致。
    • +
    +
    +
    +
    + 适用场景 +

    该方法适用于多频道场景。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + connection + 连接信息。详见 + 连接对象。详见 + 连接对象。详见 + + + soundId + 音效的 ID。 + 音效 ID。 + + + filePath + 本地音效文件的绝对路径或在线音效文件的 URL。支持的音频格式包括 mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + 音效文件的路径。 + + + loopCount + 音效的循环播放次数: +
      +
    • -1:无限循环播放,直到调用
    • +
    • 0:播放一次。
    • +
    • 1:播放两次。
    • +
    +
    + 设置音效的循环次数。 +
      +
    • 0:音效播放一次。
    • +
    • 1:音效播放两次。
    • +
    • -1:音效无限循环,直到你调用 方法停止播放。
    • +
    +
    +
    + + pitch + 音效的音调。取值范围为 0.5 到 2.0,默认值为 1.0(原始音调)。值越小,音调越低。 + 设置音效的音调。取值范围为 0.5 到 2,默认值为 1(不变调)。值越小,音调越低。 + + + pan + 音效的空间位置。取值范围为 -1.0 到 1.0: +
      +
    • -1.0:音效出现在左侧。
    • +
    • 0.0:音效出现在正前方。
    • +
    • 1.0:音效出现在右侧。
    • +
    +
    + 设置音效的空间位置。取值范围为 -1.0 到 1.0。 +
      +
    • 0.0:音效位于前方。
    • +
    • 1.0:音效位于右侧。
    • +
    • -1.0:音效位于左侧。
    • +
    +
    + 音效的空间位置。取值范围为 -1.0 到 1.0: +
      +
    • -1.0:定位在左侧。
    • +
    • 0.0:定位在正前方。
    • +
    • 1.0:定位在右侧。
    • +
    +
    +
    + + gain + 音效的音量。取值范围为 0.0 到 100.0,默认值为 100(原始音量)。值越小,音量越低。 + 设置音效的音量。取值范围为 0 到 100,默认值为 100。值越小,音量越低。 + 音效的音量。取值范围为 0 到 100,默认值为 100(原始音量)。值越小,音量越低。 + + + publish + publish + 是否在频道中发布该音效: +
      +
    • :在频道中发布音效,远端用户可以听到。
    • +
    • :不在频道中发布音效。
    • +
    +
    + 是否在频道中发布该音效: +
      +
    • :在频道中发布音效,远端用户可以听到。
    • +
    • :不在频道中发布音效。
    • +
    +
    + 是否在频道中发布该音效: +
      +
    • :在频道中发布,远端用户可以听到。
    • +
    • :(默认)不在频道中发布。
    • +
    +
    +
    + + startPos + 音效文件的播放起始位置,单位为毫秒。 + 音效文件的播放起始位置(单位为毫秒)。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcengineex_preloadeffectex.dita b/dita/RTC-NG/API/api_irtcengineex_preloadeffectex.dita new file mode 100644 index 00000000000..e5a57656709 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengineex_preloadeffectex.dita @@ -0,0 +1,86 @@ + + + + <ph keyref="preloadEffectEx"/> + 预加载指定音效到指定频道。 + + + + + + + + +
    +

    + public int preloadEffectEx(RtcConnection connection, int soundId, String filePath); + + - (int)preloadEffectEx:(AgoraRtcConnection* _Nonnull)connection soundId:(int)soundId filePath:(NSString* _Nonnull)filePath NS_SWIFT_NAME(preloadEffectEx(_:soundId:filePath:)); + virtual int preloadEffectEx(const RtcConnection& connection, int soundId, const char* filePath, int startPos = 0) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该方法每次调用仅将一个指定音效预加载到内存中。若需预加载多个音效,请多次调用该方法。 + +预加载完成后,你可以调用 播放已预加载的音效,或调用 播放所有已预加载的音效。

    +
    +
    + 适用场景 +

    该方法适用于多频道场景。

    +
    +
    + 调用时机 +

    建议在加入频道前调用该方法。

    +
    +
    + 调用限制 +

    为确保通信流畅,请限制音效文件的大小。

    +
    +
    + 参数 + + + connection + 连接信息。详见 + 连接对象。详见 + 对象。详见 + + + soundId + 音效的 ID。 + + + filePath + 本地音效文件的绝对路径或在线音效文件的 URL。支持的音频格式包括:mp3、mp4、m4a、aac、3gp、mkv 和 wav。 + + + startPos + 音效文件的播放起始位置(单位为毫秒)。 + 音效文件的播放起始位置(毫秒)。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcengineex_removevideowatermarkex.dita b/dita/RTC-NG/API/api_irtcengineex_removevideowatermarkex.dita new file mode 100644 index 00000000000..9d2259c0d19 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengineex_removevideowatermarkex.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="removeVideoWatermarkEx"/> + 从本地或远端视频流中移除指定的水印图像。 + + + + + + + + +
    +

    + public abstract int removeVideoWatermarkEx(String id, RtcConnection connection); + + - (int)removeVideoWatermarkEx:(NSString* _Nonnull)id connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(removeVideoWatermarkEx(_:connection:)); + virtual int removeVideoWatermarkEx(const char* id, const RtcConnection& connection) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 适用场景 +

    该方法适用于多频道场景。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + id + 要移除的水印图像的 ID。 + 要移除的水印的标识符。 + 水印 ID。 + + + connection + 用于控制不同连接实例的参数。详见 + 连接信息,包括频道 ID 和用户 ID。详见 + 对象。详见 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcengineex_setsimulcastconfigex.dita b/dita/RTC-NG/API/api_irtcengineex_setsimulcastconfigex.dita new file mode 100644 index 00000000000..09eb96b24e4 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcengineex_setsimulcastconfigex.dita @@ -0,0 +1,73 @@ + + + + <ph keyref="setSimulcastConfigEx"/> + 设置多质量层级视频流配置。 + + + + + + + + +
    +

    + public abstract int setSimulcastConfigEx(SimulcastConfig simulcastConfig, RtcConnection connection); + + - (int)setSimulcastConfigEx:(AgoraSimulcastConfig*)simulcastConfig connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(setDualStreamModeEx(_:connection:)); + virtual int setSimulcastConfigEx(const SimulcastConfig& simulcastConfig, const RtcConnection& connection) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该方法适用于多频道场景。如果你希望同一个用户 ID 同时发送多路不同分辨率的视频流,可以调用 实现。配置多质量层级视频流后,订阅端可以调用 选择接收对应层级的视频流。该方法允许主播同时发送多路不同分辨率的视频流,最多支持启用四个层级:一个主流(最高分辨率)和三个额外的不同质量层级的视频流。

    +
    +
    + 适用场景 +

    该方法适用于多频道场景。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + simulcastConfig + simulcastConfig + 多质量层级视频流的配置,包含从 的七个层级,最多可同时启用三个层级。详见 + 多质量层级视频流的配置。该配置包含七个层级,从 ,最多可同时启用三个层级。详见 + + + connection + connection + 连接信息。详见 + 对象。详见 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_irtcenginereleasecallback_onenginereleased.dita b/dita/RTC-NG/API/api_irtcenginereleasecallback_onenginereleased.dita new file mode 100644 index 00000000000..ff090ad8965 --- /dev/null +++ b/dita/RTC-NG/API/api_irtcenginereleasecallback_onenginereleased.dita @@ -0,0 +1,42 @@ + + + + <ph keyref="onEngineReleased"/> + 被释放时触发的回调。 + + + + + + + + +
    +

    + @CalledByNative void onEngineReleased(); + + + + + + + +

    +
    +
    +

    该回调在调用 方法以异步释放 对象时被触发。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_addorupdatevideoeffect.dita b/dita/RTC-NG/API/api_ivideoeffectobject_addorupdatevideoeffect.dita new file mode 100644 index 00000000000..a9447fec128 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_addorupdatevideoeffect.dita @@ -0,0 +1,106 @@ + + + + <ph keyref="addOrUpdateVideoEffect"/> + 添加或更新指定节点 ID 和模板的视频特效。 + + + + + + + + +
    +

    + int addOrUpdateVideoEffect(int nodeId, String templateName); + + - (int)addOrUpdateVideoEffectWithNodeId:(NSUInteger)nodeId + templateName:(NSString *)templateName + virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char* templateName) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    + 优先级规则: +
      +
    • VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 节点优先于 VIDEO_EFFECT_NODE_ID::FILTER 参数。
    • +
    • 若需应用 VIDEO_EFFECT_NODE_ID::FILTER 参数,需先移除 VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP 节点: ``cpp removeVideoEffect(VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP); addOrUpdateVideoEffect(VIDEO_EFFECT_NODE_ID::FILTER, "template name"); ``
    • +
    +
    + 优先级规则: +
      +
    • 节点优先于 参数。
    • +
    • 若要应用 参数,需先移除 节点: ``objc [self removeVideoEffectWithNodeId:VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP]; [self addOrUpdateVideoEffectWithNodeId:VIDEO_EFFECT_NODE_ID::FILTER templateName:@"template name"]; ``
    • +
    +
    + 优先级规则: +
      +
    • 节点优先于 参数。
    • +
    • 若需应用 参数,需先移除 节点: ``java removeVideoEffect(STYLE_MAKEUP); addOrUpdateVideoEffect(FILTER, "template name"); ``
    • +
    +
    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + nodeId + nodeId + 视频特效节点的唯一标识符或组合。详见 + 视频特效节点的唯一标识符或组合。示例: +
      +
    • 单个特效:VIDEO_EFFECT_NODE_ID::BEAUTY
    • +
    • 组合特效:VIDEO_EFFECT_NODE_ID::BEAUTY | VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
    • +
    +
    + 视频特效节点的唯一标识符或组合。详见 。 +示例: +
      +
    • 单个特效:VIDEO_EFFECT_NODE_ID::BEAUTY
    • +
    • 组合特效:VIDEO_EFFECT_NODE_ID::BEAUTY | VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
    • +
    +
    +
    + + templateName + templateName + 特效模板名称。如果设置为 null 或空字符串,SDK 会从资源包中加载默认参数配置。 + 特效模板的名称。如果设置为 null 或空字符串,SDK 会自动从资源包中加载默认参数配置。 + 特效模板名称。如果设置为 null 或空字符串,SDK 会从资源包中加载默认配置。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。详见 AgoraBaseConstants 中的错误码。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectboolparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectboolparam.dita new file mode 100644 index 00000000000..60e025442fb --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectboolparam.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="getVideoEffectBoolParam"/> + 获取视频特效中的布尔参数。 + + + + + + + + +
    +

    + boolean getVideoEffectBoolParam(String option, String key); + + - (BOOL)getVideoEffectBoolParamWithOption:(NSString *)option key:(NSString *)key NS_SWIFT_NAME(getVideoEffectBoolParam(option:key:)); + virtual bool getVideoEffectBoolParam(const char* option, const char* key) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + 参数类别的标识符。 + 参数的类别标识符。 + 参数所属的选项类别。 + + + key + 参数的键名。 + 参数的键值。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • :参数已启用。
    • +
    • :参数未启用或不存在。
    • +
    +

    +

      +
    • :参数已启用。
    • +
    • :参数未启用或不存在。
    • +
    +

    +

      +
    • :获取参数成功。
    • +
    • :获取参数失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita new file mode 100644 index 00000000000..fec9d9bf161 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectfloatparam.dita @@ -0,0 +1,78 @@ + + + + <ph keyref="getVideoEffectFloatParam"/> + 获取视频特效中的 float 类型参数。 + + + + + + + + +
    +

    + float getVideoEffectFloatParam(String option, String key); + + - (float)getVideoEffectFloatParamWithOption:(NSString *)option key:(NSString *)key NS_SWIFT_NAME(getVideoEffectFloatParam(option:key:)); + virtual float getVideoEffectFloatParam(const char* option, const char* key) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取视频特效中指定选项和键名对应的 float 类型参数值。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + option + 参数类别的标识符。 + 参数选项的类别。 + 参数所属的选项类别。 + + + key + 参数的键名。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 参数存在时,返回对应的 float 类型值。
    • +
    • 参数不存在或发生错误时,返回 0.0f。
    • +
    +

    +

      +
    • 参数存在时,返回对应的浮点型参数值。
    • +
    • 参数不存在或发生错误时,返回 0.0f。
    • +
    +

    +

      +
    • 方法调用成功,返回当前参数值。
    • +
    • 方法调用失败,返回 0.0f。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectintparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectintparam.dita new file mode 100644 index 00000000000..4b2ab463240 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_getvideoeffectintparam.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="getVideoEffectIntParam"/> + 获取视频特效中的整数参数。 + + + + + + + + +
    +

    + int getVideoEffectIntParam(String option, String key); + + - (int)getVideoEffectIntParamWithOption:(NSString *)option key:(NSString *)key NS_SWIFT_NAME(getVideoEffectIntParam(option:key:)); + virtual int getVideoEffectIntParam(const char* option, const char* key) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取视频特效中的整数类型参数。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + option + 参数类别的标识符。 + 参数的类别标识符。 + 参数的选项类别。 + + + key + key + 参数的键名。 + 参数的键值。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 参数存在时,返回对应的整数值。
    • +
    • 参数不存在或发生错误时,返回 0。
    • +
    +

    +

      +
    • 方法调用成功,返回对应参数的整数值。
    • +
    • 方法调用失败或参数不存在时,返回 0。
    • +
    +

    +

      +
    • 方法调用成功,返回当前参数值。
    • +
    • 方法调用失败,返回 0。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_performvideoeffectaction.dita b/dita/RTC-NG/API/api_ivideoeffectobject_performvideoeffectaction.dita new file mode 100644 index 00000000000..039d1ebbd14 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_performvideoeffectaction.dita @@ -0,0 +1,69 @@ + + + + <ph keyref="performVideoEffectAction"/> + 对指定的视频特效节点执行操作。 + + + + + + + + +
    +

    + int performVideoEffectAction(int nodeId, VIDEO_EFFECT_ACTION actionId); + + - (int)performVideoEffectActionWithNodeId:(NSUInteger)nodeId actionId:(AgoraVideoEffectAction)actionId NS_SWIFT_NAME(performVideoEffectAction(nodeId:actionId:)); + virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + nodeId + nodeId + 视频特效节点的唯一标识符。 + + + actionId + actionId + 要在视频特效节点上执行的操作,详见 + 要在视频特效上执行的操作。详见 + 要执行的操作,详见 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_removevideoeffect.dita b/dita/RTC-NG/API/api_ivideoeffectobject_removevideoeffect.dita new file mode 100644 index 00000000000..45ffcc50b73 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_removevideoeffect.dita @@ -0,0 +1,64 @@ + + + + <ph keyref="removeVideoEffect"/> + 移除指定节点 ID 的视频特效。 + + + + + + + + +
    +

    + int removeVideoEffect(int nodeId); + + - (int)removeVideoEffectWithNodeId:(NSUInteger)nodeId + virtual int removeVideoEffect(uint32_t nodeId) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + nodeId + nodeId + 要移除的视频特效节点的唯一标识符。 + 要移除的视频特效节点的唯一标识符,详见 + 要移除的视频特效节点的唯一标识符,详见 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectboolparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectboolparam.dita new file mode 100644 index 00000000000..a06648a52ac --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectboolparam.dita @@ -0,0 +1,90 @@ + + + + <ph keyref="setVideoEffectBoolParam"/> + 设置视频特效的布尔参数。 + + + + + + + + +
    +

    + int setVideoEffectBoolParam(String option, String key, boolean value); + + - (int)setVideoEffectBoolParamWithOption:(NSString *)option key:(NSString *)key boolValue:(BOOL)boolValue NS_SWIFT_NAME(setVideoEffectBoolParam(option:key:boolValue:)); + virtual int setVideoEffectBoolParam(const char* option, const char* key, bool param) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + option + 参数类别的标识符。 + 参数选项的类别。 + 参数所属的选项类别。 + + + key + 参数的键名。 + + + param + 要设置的布尔值。 +
      +
    • :启用该选项。
    • +
    • :禁用该选项。
    • +
    +
    +
    + + boolValue + 要设置的布尔值。 +
      +
    • :设置为开启状态。
    • +
    • :设置为关闭状态。
    • +
    +
    +
    + + value + 要设置的布尔值。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita new file mode 100644 index 00000000000..2bfe26ebeb1 --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectfloatparam.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="setVideoEffectFloatParam"/> + 设置视频特效的浮点参数。 + + + + + + + + +
    +

    + int setVideoEffectFloatParam(String option, String key, float value); + + - (int)setVideoEffectFloatParamWithOption:(NSString *)option key:(NSString *)key floatValue:(float)floatValue NS_SWIFT_NAME(setVideoEffectFloatParam(option:key:floatValue:)); + virtual int setVideoEffectFloatParam(const char* option, const char* key, float param) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + option + 参数类别的标识符。 + 参数选项的类别。 + 参数的选项类别。 + + + key + 参数的键名。 + + + param + 要设置的浮点值。 + + + floatValue + 要设置的浮点值。 + + + value + 要设置的浮点型参数值。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectintparam.dita b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectintparam.dita new file mode 100644 index 00000000000..018a716a2ee --- /dev/null +++ b/dita/RTC-NG/API/api_ivideoeffectobject_setvideoeffectintparam.dita @@ -0,0 +1,80 @@ + + + + <ph keyref="setVideoEffectIntParam"/> + 设置视频特效的整数参数。 + + + + + + + + +
    +

    + int setVideoEffectIntParam(String option, String key, int value); + + - (int)setVideoEffectIntParamWithOption:(NSString *)option key:(NSString *)key intValue:(int)intValue NS_SWIFT_NAME(setVideoEffectIntParam(option:key:intValue:)); + virtual int setVideoEffectIntParam(const char* option, const char* key, int param) = 0; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + option + option + 参数类别的标识符。 + 参数选项的类别。 + 参数所属的选项类别。 + + + key + 参数的键名。 + + + param + 要设置的整数参数值。 + + + intValue + 要设置的整数值。 + + + value + 要设置的整数值。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • 0:方法调用成功。
    • +
    • < 0:方法调用失败。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkbuffer_getbuffer.dita b/dita/RTC-NG/API/api_watermarkbuffer_getbuffer.dita new file mode 100644 index 00000000000..1f181f6d536 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkbuffer_getbuffer.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getBuffer"/> + 获取水印图像的缓冲区。 + + + + + + + + +
    +

    + public ByteBuffer getBuffer() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该方法用于获取水印图像的缓冲区或水印图像数据缓冲区。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功时,返回包含水印图像数据的 ByteBuffer 对象。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkbuffer_getformat.dita b/dita/RTC-NG/API/api_watermarkbuffer_getformat.dita new file mode 100644 index 00000000000..6f72a2e0702 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkbuffer_getformat.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getFormat"/> + 获取水印图像的格式。 + + + + + + + + +
    +

    + public int getFormat() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取水印图像的格式。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回水印图像缓冲区的格式。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkbuffer_getheight.dita b/dita/RTC-NG/API/api_watermarkbuffer_getheight.dita new file mode 100644 index 00000000000..797877e78b3 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkbuffer_getheight.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getHeight"/> + 获取水印图像的高度。 + + + + + + + + +
    +

    + public int getHeight() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取水印图像的高度。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回水印图像的高度,单位为像素。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkbuffer_getid.dita b/dita/RTC-NG/API/api_watermarkbuffer_getid.dita new file mode 100644 index 00000000000..8fc79e7b929 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkbuffer_getid.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getId"/> + 获取水印的唯一 ID。 + + + + + + + + +
    +

    + public String getId() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于从 实例中获取水印的唯一标识符。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功时,返回水印的唯一 ID。方法调用失败时,返回空字符串。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkbuffer_getwidth.dita b/dita/RTC-NG/API/api_watermarkbuffer_getwidth.dita new file mode 100644 index 00000000000..4b64cd996f3 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkbuffer_getwidth.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getWidth"/> + 获取水印图像的宽度。 + + + + + + + + +
    +

    + public int getWidth() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取水印图像的宽度。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回水印图像的宽度,单位为像素。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkconfig_getimageurl.dita b/dita/RTC-NG/API/api_watermarkconfig_getimageurl.dita new file mode 100644 index 00000000000..defe6e0a99b --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkconfig_getimageurl.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getImageUrl"/> + 获取水印图像的 URL。 + + + + + + + + +
    +

    + public String getImageUrl() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功时,返回水印图像的 URL。方法调用失败时,返回空字符串。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkconfig_getoptions.dita b/dita/RTC-NG/API/api_watermarkconfig_getoptions.dita new file mode 100644 index 00000000000..98923004df5 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkconfig_getoptions.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getOptions"/> + 获取水印显示选项。 + + + + + + + + +
    +

    + public WatermarkOptions getOptions() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取当前配置的水印显示选项。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回 对象。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkconfig_gettype.dita b/dita/RTC-NG/API/api_watermarkconfig_gettype.dita new file mode 100644 index 00000000000..daa58c8e27d --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkconfig_gettype.dita @@ -0,0 +1,54 @@ + + + + <ph keyref="getType"/> + 获取水印的类型。 + + + + + + + + +
    +

    + public int getType() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取当前水印配置中的类型信息。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回水印类型。 +

      +
    • WATERMARK_TYPE_IMAGE:图片类型水印。
    • +
    • WATERMARK_TYPE_BUFFER:缓冲区类型水印。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkoptions_getpositioninlandscapemode.dita b/dita/RTC-NG/API/api_watermarkoptions_getpositioninlandscapemode.dita new file mode 100644 index 00000000000..ea4eccf34ee --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkoptions_getpositioninlandscapemode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getPositionInLandscapeMode"/> + 获取横屏模式下水印的位置。 + + + + + + + + +
    +

    + public int[] getPositionInLandscapeMode() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    获取横屏模式下水印的位置。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回一个包含四个元素的整数数组,表示水印矩形的 x、y、宽度和高度。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkoptions_getpositioninportraitmode.dita b/dita/RTC-NG/API/api_watermarkoptions_getpositioninportraitmode.dita new file mode 100644 index 00000000000..8786665a127 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkoptions_getpositioninportraitmode.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getPositionInPortraitMode"/> + 获取竖屏模式下水印的位置。 + + + + + + + + +
    +

    + public int[] getPositionInPortraitMode() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    获取竖屏模式下水印的位置。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回一个包含四个元素的整数数组,表示水印矩形的 x、y、宽度和高度。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkoptions_getzorder.dita b/dita/RTC-NG/API/api_watermarkoptions_getzorder.dita new file mode 100644 index 00000000000..5c32ce29a47 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkoptions_getzorder.dita @@ -0,0 +1,49 @@ + + + + <ph keyref="getzOrder"/> + 获取水印图像的 Z 轴顺序索引。 + + + + + + + + +
    +

    + public int getzOrder() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于获取水印图像在 Z 轴上的绘制顺序索引。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

    方法调用成功,返回水印图像的 Z 轴顺序索引。

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkoptions_isvisibleinpreview.dita b/dita/RTC-NG/API/api_watermarkoptions_isvisibleinpreview.dita new file mode 100644 index 00000000000..1351d5fa53b --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkoptions_isvisibleinpreview.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="isVisibleInPreview"/> + 检查水印在本地视频预览中是否可见。 + + + + + + + + +
    +

    + public boolean isVisibleInPreview() + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    检查水印在本地视频预览中是否可见。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +

      +
    • :水印在本地视频预览中可见。
    • +
    • :水印在本地视频预览中不可见。
    • +
    +

    +
    +
    +
    diff --git a/dita/RTC-NG/API/api_watermarkoptions_zorder.dita b/dita/RTC-NG/API/api_watermarkoptions_zorder.dita new file mode 100644 index 00000000000..e817d6bcf50 --- /dev/null +++ b/dita/RTC-NG/API/api_watermarkoptions_zorder.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="zOrder"/> + 水印图像在视频中相对于其他叠加层的堆叠顺序。 + + + + + + + + +
    +

    + public int zOrder = 0; + + + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    水印图像在视频中相对于其他叠加层的堆叠顺序。

    +
    +
    + 调用限制 +

    无。

    +
    +
    + 参数 + + + zOrder + 水印图像在视频中相对于其他叠加层的堆叠顺序。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。详见了解详情和解决建议。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onmultipathstats.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onmultipathstats.dita new file mode 100644 index 00000000000..3eec26938f1 --- /dev/null +++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onmultipathstats.dita @@ -0,0 +1,71 @@ + + + + <ph keyref="onMultipathStats"/> + 多路径传输统计信息的回调。 + + + + + + + + +
    +

    + public void onMultipathStats(MultipathStats stats) {} + + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine multiPathStats:(AgoraMultipathStats * _Nonnull)stats NS_SWIFT_NAME(rtcEngine(_:multiPathStats:)); + virtual void onMultipathStats(const MultipathStats& stats) + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该回调在你将 enableMultipath 设置为 以启用多路径传输后触发。

    +
    +
    + 触发时机 +

    在你将 enableMultipath 设置为 以启用多路径传输后触发该回调。

    +
    +
    + 使用限制 +

    无。

    +
    +
    + 参数 + + + stats + stats + 多路径传输统计信息。详见 + 多路径传输统计数据,详见 + + + connection + 对象。详见 + + + engine + 实例。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_onrenewtokenresult.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_onrenewtokenresult.dita new file mode 100644 index 00000000000..93dda636663 --- /dev/null +++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_onrenewtokenresult.dita @@ -0,0 +1,72 @@ + + + + <ph keyref="onRenewTokenResult"/> + 调用结果回调。 + + + + + + + + +
    +

    + public void onRenewTokenResult(String token, Constants.RenewTokenErrorCode code) {} + + - (void)rtcEngine:(AgoraRtcEngineKit * _Nonnull)engine renewTokenResult:(NSString *_Nonnull)token code:(AgoraRenewTokenErrorCode)code NS_SWIFT_NAME(rtcEngine(_:renewTokenResult:code:)); + virtual void onRenewTokenResult(const char* token, RENEW_TOKEN_ERROR_CODE code) + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该回调在用户调用 方法更新 Token 后触发,用于通知应用调用结果。

    +
    +
    + 使用限制 +

    无。

    +
    +
    + 参数 + + + token + 用于鉴权的 Token。 + Token。 + + + code + 错误码,详见 + 错误码,详见 AgoraRenewTokenErrorCode。 + 错误码,详见 + + + connection + 连接信息。详见 RtcConnection。 + + + engine + 声网引擎对象。详见 AgoraRtcEngineKit。 + +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/callback_irtcengineeventhandler_rtcenginereleasecallback.dita b/dita/RTC-NG/API/callback_irtcengineeventhandler_rtcenginereleasecallback.dita new file mode 100644 index 00000000000..cba78da6caf --- /dev/null +++ b/dita/RTC-NG/API/callback_irtcengineeventhandler_rtcenginereleasecallback.dita @@ -0,0 +1,53 @@ + + + + <ph keyref="RtcEngineReleaseCallback"/> + 被释放时触发的回调。 + + + + + + + + +
    +

    + @CalledByNative void onEngineReleased(); + + + using RtcEngineReleaseCallback = void(*)(); + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    该回调在调用 方法以异步释放 对象时被触发。

    +
    +
    + 触发时机 +

    调用 方法以异步释放 对象时触发该回调。

    +
    +
    + 使用限制 +

    无。

    +
    +
    + <ph keyref="return-section-title"/> +

    方法成功调用时,无返回值;方法调用失败时,会抛出 异常,你需要捕获异常并进行处理。

    +
      +
    • 0: 方法调用成功。
    • +
    • < 0: 方法调用失败。详见了解详情和解决建议。
    • +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/class_channelmediaoptions.dita b/dita/RTC-NG/API/class_channelmediaoptions.dita index 7a971fa5cd9..34404c003de 100644 --- a/dita/RTC-NG/API/class_channelmediaoptions.dita +++ b/dita/RTC-NG/API/class_channelmediaoptions.dita @@ -1,8 +1,8 @@ - + <ph keyref="ChannelMediaOptions"/> - 频道媒体设置选项。 + 配置频道媒体选项。

    @@ -22,6 +22,7 @@ public Boolean publishMediaPlayerVideoTrack; public Boolean publishTranscodedVideoTrack; public Boolean publishMixedAudioTrack; + public Boolean publishLipSyncTrack; public Boolean autoSubscribeAudio; public Boolean autoSubscribeVideo; public Boolean enableAudioRecordingOrPlayout; @@ -30,6 +31,7 @@ public Integer audienceLatencyLevel; public Integer defaultVideoStreamType; public Integer channelProfile; + public Integer audioDelayMs; public Integer mediaPlayerAudioDelayMs; public String token; public Boolean enableBuiltInMediaEncryption; @@ -37,7 +39,13 @@ public Boolean isInteractiveAudience; public Integer customVideoTrackId; public Boolean isAudioFilterable; - } + public Boolean startPreview; + public String parameters; + public Boolean enableMultipath; + public Integer uplinkMultipathMode; + public Integer downlinkMultipathMode; + public Integer preferMultipathType; +} export class ChannelMediaOptions { public publishCameraTrack?:boolean; @@ -106,26 +114,23 @@ @property(assign, nonatomic) BOOL publishCameraTrack; @property(assign, nonatomic) BOOL publishSecondaryCameraTrack; @property(assign, nonatomic) BOOL publishMicrophoneTrack; -#if TARGET_OS_IPHONE @property(assign, nonatomic) BOOL publishScreenCaptureVideo; @property(assign, nonatomic) BOOL publishScreenCaptureAudio; -#elif TARGET_OS_MAC @property(assign, nonatomic) BOOL publishThirdCameraTrack; @property(assign, nonatomic) BOOL publishFourthCameraTrack; @property(assign, nonatomic) BOOL publishScreenTrack; @property(assign, nonatomic) BOOL publishSecondaryScreenTrack; @property(assign, nonatomic) BOOL publishThirdScreenTrack; @property(assign, nonatomic) BOOL publishFourthScreenTrack; -#endif @property(assign, nonatomic) BOOL publishCustomAudioTrack; @property(assign, nonatomic) NSInteger publishCustomAudioTrackId; - @property(assign, nonatomic) BOOL publishCustomVideoTrack; @property(assign, nonatomic) BOOL publishEncodedVideoTrack; @property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack; @property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack; @property(assign, nonatomic) BOOL publishTranscodedVideoTrack; @property(assign, nonatomic) BOOL publishMixedAudioTrack; +@property(assign, nonatomic) BOOL publishLipSyncTrack; @property(assign, nonatomic) BOOL autoSubscribeAudio; @property(assign, nonatomic) BOOL autoSubscribeVideo; @property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout; @@ -134,34 +139,35 @@ @property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; @property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType; @property(assign, nonatomic) AgoraChannelProfile channelProfile; +@property(assign, nonatomic) NSInteger audioDelayMs; +@property(assign, nonatomic) NSInteger mediaPlayerAudioDelayMs; @property(copy, nonatomic) NSString * _Nullable token; @property(assign, nonatomic) BOOL enableBuiltInMediaEncryption; - @property(assign, nonatomic) BOOL publishRhythmPlayerTrack; @property(assign, nonatomic) BOOL isInteractiveAudience; - @property(assign, nonatomic) NSInteger customVideoTrackId; - @property(assign, nonatomic) BOOL isAudioFilterable; - +@property(copy, nonatomic) NSString * _Nullable parameters; +@property(assign, nonatomic) BOOL enableMultipath; +@property(assign, nonatomic) AgoraMultipathMode uplinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathMode downlinkMultipathMode; +@property(assign, nonatomic) AgoraMultipathType preferMultipathType; @end struct ChannelMediaOptions { Optional<bool> publishCameraTrack; Optional<bool> publishSecondaryCameraTrack; - Optional<bool> publishThirdCameraTrack; - Optional<bool> publishFourthCameraTrack; + Optional<bool> publishThirdCameraTrack; + Optional<bool> publishFourthCameraTrack; Optional<bool> publishMicrophoneTrack; - - #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) +#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__) Optional<bool> publishScreenCaptureVideo; Optional<bool> publishScreenCaptureAudio; - #else +#else Optional<bool> publishScreenTrack; Optional<bool> publishSecondaryScreenTrack; - Optional<bool> publishThirdScreenTrack; - Optional<bool> publishFourthScreenTrack; - #endif - + Optional<bool> publishThirdScreenTrack; + Optional<bool> publishFourthScreenTrack; +#endif Optional<bool> publishCustomAudioTrack; Optional<int> publishCustomAudioTrackId; Optional<bool> publishCustomVideoTrack; @@ -170,6 +176,7 @@ Optional<bool> publishMediaPlayerVideoTrack; Optional<bool> publishTranscodedVideoTrack; Optional<bool> publishMixedAudioTrack; + Optional<bool> publishLipSyncTrack; Optional<bool> autoSubscribeAudio; Optional<bool> autoSubscribeVideo; Optional<bool> enableAudioRecordingOrPlayout; @@ -178,114 +185,116 @@ Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel; Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType; Optional<CHANNEL_PROFILE_TYPE> channelProfile; + Optional<int> audioDelayMs; + Optional<int> mediaPlayerAudioDelayMs; Optional<const char*> token; Optional<bool> enableBuiltInMediaEncryption; Optional<bool> publishRhythmPlayerTrack; Optional<bool> isInteractiveAudience; - Optional<video_track_id_t> customVideoTrackId; - Optional<bool> isAudioFilterable; - - ChannelMediaOptions() {} - ~ChannelMediaOptions() {} - } + Optional<const char*> parameters; + Optional<bool> enableMultipath; + Optional<MultipathMode> uplinkMultipathMode; + Optional<MultipathMode> downlinkMultipathMode; + Optional<MultipathType> preferMultipathType; +}; USTRUCT(BlueprintType) struct FChannelMediaOptions { GENERATED_BODY() public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishSecondaryCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishThirdCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishFourthCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMicrophoneTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenCaptureVideo = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenCaptureAudio = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishSecondaryScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishThirdScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishFourthScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCustomAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool publishCustomAudioTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int publishCustomAudioTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCustomVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishEncodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMediaPlayerAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMediaPlayerVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishTranscodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMixedAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishLipSyncTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional autoSubscribeAudio = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional autoSubscribeVideo = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional enableAudioRecordingOrPlayout = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool publishMediaPlayerId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int publishMediaPlayerId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool clientRoleType_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") ECLIENT_ROLE_TYPE clientRoleType = ECLIENT_ROLE_TYPE::CLIENT_ROLE_BROADCASTER; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool audienceLatencyLevel_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAUDIENCE_LATENCY_LEVEL_TYPE audienceLatencyLevel = EAUDIENCE_LATENCY_LEVEL_TYPE::AUDIENCE_LATENCY_LEVEL_LOW_LATENCY; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool defaultVideoStreamType_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EVIDEO_STREAM_TYPE defaultVideoStreamType = EVIDEO_STREAM_TYPE::VIDEO_STREAM_HIGH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool channelProfile_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") ECHANNEL_PROFILE_TYPE channelProfile = ECHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool audioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int audioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool mediaPlayerAudioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int mediaPlayerAudioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool token_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - FString token = ""; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + FString token = ""; + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional enableBuiltInMediaEncryption = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishRhythmPlayerTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional isInteractiveAudience = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool customVideoTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int64 customVideoTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional isAudioFilterable = EAgoraOptional::AGORA_NULL_VALUE; FChannelMediaOptions(){} @@ -447,38 +456,38 @@ public: } public class ChannelMediaOptions : OptionalJsonParse { - public Optional<bool> publishCameraTrack = new Optional<bool>(); - public Optional<bool> publishSecondaryCameraTrack = new Optional<bool>(); - public Optional<bool> publishThirdCameraTrack = new Optional<bool>(); - public Optional<bool> publishFourthCameraTrack = new Optional<bool>(); - public Optional<bool> publishMicrophoneTrack = new Optional<bool>(); - public Optional<bool> publishScreenCaptureVideo = new Optional<bool>(); - public Optional<bool> publishScreenCaptureAudio = new Optional<bool>(); - public Optional<bool> publishScreenTrack = new Optional<bool>(); - public Optional<bool> publishSecondaryScreenTrack = new Optional<bool>(); - public Optional<bool> publishThirdScreenTrack = new Optional<bool>(); - public Optional<bool> publishFourthScreenTrack = new Optional<bool>(); - public Optional<bool> publishCustomAudioTrack = new Optional<bool>(); - public Optional<int> publishCustomAudioTrackId = new Optional<int>(); - public Optional<bool> publishCustomVideoTrack = new Optional<bool>(); - public Optional<bool> publishEncodedVideoTrack = new Optional<bool>(); - public Optional<bool> publishMediaPlayerAudioTrack = new Optional<bool>(); - public Optional<bool> publishMediaPlayerVideoTrack = new Optional<bool>(); - public Optional<bool> publishTranscodedVideoTrack = new Optional<bool>(); - public Optional<bool> publishLipSyncTrack = new Optional<bool>(); - public Optional<bool> autoSubscribeAudio = new Optional<bool>(); - public Optional<bool> autoSubscribeVideo = new Optional<bool>(); - public Optional<bool> enableAudioRecordingOrPlayout = new Optional<bool>(); - public Optional<int> publishMediaPlayerId = new Optional<int>(); - public Optional<CLIENT_ROLE_TYPE> clientRoleType = new Optional<CLIENT_ROLE_TYPE>(); - public Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel = new Optional<AUDIENCE_LATENCY_LEVEL_TYPE>(); - public Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType = new Optional<VIDEO_STREAM_TYPE>(); - public Optional<CHANNEL_PROFILE_TYPE> channelProfile = new Optional<CHANNEL_PROFILE_TYPE>(); - public Optional<string> token = new Optional<string>(); - public Optional<bool> publishRhythmPlayerTrack = new Optional<bool>(); - public Optional<bool> isInteractiveAudience = new Optional<bool>(); - public Optional<video_track_id_t> customVideoTrackId = new Optional<video_track_id_t>(); - public Optional<bool> isAudioFilterable = new Optional<bool>(); + public Optional<bool> publishCameraTrack = new Optional<bool>(); + public Optional<bool> publishSecondaryCameraTrack = new Optional<bool>(); + public Optional<bool> publishThirdCameraTrack = new Optional<bool>(); + public Optional<bool> publishFourthCameraTrack = new Optional<bool>(); + public Optional<bool> publishMicrophoneTrack = new Optional<bool>(); + public Optional<bool> publishScreenCaptureVideo = new Optional<bool>(); + public Optional<bool> publishScreenCaptureAudio = new Optional<bool>(); + public Optional<bool> publishScreenTrack = new Optional<bool>(); + public Optional<bool> publishSecondaryScreenTrack = new Optional<bool>(); + public Optional<bool> publishThirdScreenTrack = new Optional<bool>(); + public Optional<bool> publishFourthScreenTrack = new Optional<bool>(); + public Optional<bool> publishCustomAudioTrack = new Optional<bool>(); + public Optional<int> publishCustomAudioTrackId = new Optional<int>(); + public Optional<bool> publishCustomVideoTrack = new Optional<bool>(); + public Optional<bool> publishEncodedVideoTrack = new Optional<bool>(); + public Optional<bool> publishMediaPlayerAudioTrack = new Optional<bool>(); + public Optional<bool> publishMediaPlayerVideoTrack = new Optional<bool>(); + public Optional<bool> publishTranscodedVideoTrack = new Optional<bool>(); + public Optional<bool> publishLipSyncTrack = new Optional<bool>(); + public Optional<bool> autoSubscribeAudio = new Optional<bool>(); + public Optional<bool> autoSubscribeVideo = new Optional<bool>(); + public Optional<bool> enableAudioRecordingOrPlayout = new Optional<bool>(); + public Optional<int> publishMediaPlayerId = new Optional<int>(); + public Optional<CLIENT_ROLE_TYPE> clientRoleType = new Optional<CLIENT_ROLE_TYPE>(); + public Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel = new Optional<AUDIENCE_LATENCY_LEVEL_TYPE>(); + public Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType = new Optional<VIDEO_STREAM_TYPE>(); + public Optional<CHANNEL_PROFILE_TYPE> channelProfile = new Optional<CHANNEL_PROFILE_TYPE>(); + public Optional<string> token = new Optional<string>(); + public Optional<bool> publishRhythmPlayerTrack = new Optional<bool>(); + public Optional<bool> isInteractiveAudience = new Optional<bool>(); + public Optional<video_track_id_t> customVideoTrackId = new Optional<video_track_id_t>(); + public Optional<bool> isAudioFilterable = new Optional<bool>(); } export class ChannelMediaOptions { @@ -588,112 +597,112 @@ class ChannelMediaOptions { this.isAudioFilterable, this.parameters}); - @JsonKey(name: 'publishCameraTrack') + @JsonKey(name: 'publishCameraTrack') final bool? publishCameraTrack; - @JsonKey(name: 'publishSecondaryCameraTrack') + @JsonKey(name: 'publishSecondaryCameraTrack') final bool? publishSecondaryCameraTrack; - @JsonKey(name: 'publishThirdCameraTrack') + @JsonKey(name: 'publishThirdCameraTrack') final bool? publishThirdCameraTrack; - @JsonKey(name: 'publishFourthCameraTrack') + @JsonKey(name: 'publishFourthCameraTrack') final bool? publishFourthCameraTrack; - @JsonKey(name: 'publishMicrophoneTrack') + @JsonKey(name: 'publishMicrophoneTrack') final bool? publishMicrophoneTrack; - @JsonKey(name: 'publishScreenCaptureVideo') + @JsonKey(name: 'publishScreenCaptureVideo') final bool? publishScreenCaptureVideo; - @JsonKey(name: 'publishScreenCaptureAudio') + @JsonKey(name: 'publishScreenCaptureAudio') final bool? publishScreenCaptureAudio; - @JsonKey(name: 'publishScreenTrack') + @JsonKey(name: 'publishScreenTrack') final bool? publishScreenTrack; - @JsonKey(name: 'publishSecondaryScreenTrack') + @JsonKey(name: 'publishSecondaryScreenTrack') final bool? publishSecondaryScreenTrack; - @JsonKey(name: 'publishThirdScreenTrack') + @JsonKey(name: 'publishThirdScreenTrack') final bool? publishThirdScreenTrack; - @JsonKey(name: 'publishFourthScreenTrack') + @JsonKey(name: 'publishFourthScreenTrack') final bool? publishFourthScreenTrack; - @JsonKey(name: 'publishCustomAudioTrack') + @JsonKey(name: 'publishCustomAudioTrack') final bool? publishCustomAudioTrack; - @JsonKey(name: 'publishCustomAudioTrackId') + @JsonKey(name: 'publishCustomAudioTrackId') final int? publishCustomAudioTrackId; - @JsonKey(name: 'publishCustomVideoTrack') + @JsonKey(name: 'publishCustomVideoTrack') final bool? publishCustomVideoTrack; - @JsonKey(name: 'publishEncodedVideoTrack') + @JsonKey(name: 'publishEncodedVideoTrack') final bool? publishEncodedVideoTrack; - @JsonKey(name: 'publishMediaPlayerAudioTrack') + @JsonKey(name: 'publishMediaPlayerAudioTrack') final bool? publishMediaPlayerAudioTrack; - @JsonKey(name: 'publishMediaPlayerVideoTrack') + @JsonKey(name: 'publishMediaPlayerVideoTrack') final bool? publishMediaPlayerVideoTrack; - @JsonKey(name: 'publishTranscodedVideoTrack') + @JsonKey(name: 'publishTranscodedVideoTrack') final bool? publishTranscodedVideoTrack; - @JsonKey(name: 'publishMixedAudioTrack') + @JsonKey(name: 'publishMixedAudioTrack') final bool? publishMixedAudioTrack; - @JsonKey(name: 'autoSubscribeAudio') + @JsonKey(name: 'autoSubscribeAudio') final bool? autoSubscribeAudio; - @JsonKey(name: 'autoSubscribeVideo') + @JsonKey(name: 'autoSubscribeVideo') final bool? autoSubscribeVideo; - @JsonKey(name: 'enableAudioRecordingOrPlayout') + @JsonKey(name: 'enableAudioRecordingOrPlayout') final bool? enableAudioRecordingOrPlayout; - @JsonKey(name: 'publishMediaPlayerId') + @JsonKey(name: 'publishMediaPlayerId') final int? publishMediaPlayerId; - @JsonKey(name: 'clientRoleType') + @JsonKey(name: 'clientRoleType') final ClientRoleType? clientRoleType; - @JsonKey(name: 'audienceLatencyLevel') + @JsonKey(name: 'audienceLatencyLevel') final AudienceLatencyLevelType? audienceLatencyLevel; - @JsonKey(name: 'defaultVideoStreamType') + @JsonKey(name: 'defaultVideoStreamType') final VideoStreamType? defaultVideoStreamType; - @JsonKey(name: 'channelProfile') + @JsonKey(name: 'channelProfile') final ChannelProfileType? channelProfile; - @JsonKey(name: 'audioDelayMs') + @JsonKey(name: 'audioDelayMs') final int? audioDelayMs; - @JsonKey(name: 'mediaPlayerAudioDelayMs') + @JsonKey(name: 'mediaPlayerAudioDelayMs') final int? mediaPlayerAudioDelayMs; - @JsonKey(name: 'token') + @JsonKey(name: 'token') final String? token; - @JsonKey(name: 'enableBuiltInMediaEncryption') + @JsonKey(name: 'enableBuiltInMediaEncryption') final bool? enableBuiltInMediaEncryption; - @JsonKey(name: 'publishRhythmPlayerTrack') + @JsonKey(name: 'publishRhythmPlayerTrack') final bool? publishRhythmPlayerTrack; - @JsonKey(name: 'isInteractiveAudience') + @JsonKey(name: 'isInteractiveAudience') final bool? isInteractiveAudience; - @JsonKey(name: 'customVideoTrackId') + @JsonKey(name: 'customVideoTrackId') final int? customVideoTrackId; - @JsonKey(name: 'isAudioFilterable') + @JsonKey(name: 'isAudioFilterable') final bool? isAudioFilterable; - @JsonKey(name: 'parameters') + @JsonKey(name: 'parameters') final String? parameters; factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) => @@ -701,7 +710,7 @@ class ChannelMediaOptions { Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this); } -

    +

    public class ChannelMediaOptions { public Boolean publishCameraTrack; @@ -845,8 +854,8 @@ class ChannelMediaOptions { struct ChannelMediaOptions { Optional<bool> publishCameraTrack; Optional<bool> publishSecondaryCameraTrack; - Optional<bool> publishThirdCameraTrack; - Optional<bool> publishFourthCameraTrack; + Optional<bool> publishThirdCameraTrack; + Optional<bool> publishFourthCameraTrack; Optional<bool> publishMicrophoneTrack; #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) @@ -855,8 +864,8 @@ class ChannelMediaOptions { #else Optional<bool> publishScreenTrack; Optional<bool> publishSecondaryScreenTrack; - Optional<bool> publishThirdScreenTrack; - Optional<bool> publishFourthScreenTrack; + Optional<bool> publishThirdScreenTrack; + Optional<bool> publishFourthScreenTrack; #endif Optional<bool> publishCustomAudioTrack; @@ -892,97 +901,97 @@ struct FChannelMediaOptions { GENERATED_BODY() public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishSecondaryCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishThirdCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishFourthCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMicrophoneTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenCaptureVideo = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenCaptureAudio = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishSecondaryScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishThirdScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishFourthScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCustomAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool publishCustomAudioTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int publishCustomAudioTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishCustomVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishEncodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMediaPlayerAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMediaPlayerVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishTranscodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishMixedAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishLipSyncTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional autoSubscribeAudio = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional autoSubscribeVideo = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional enableAudioRecordingOrPlayout = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool publishMediaPlayerId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int publishMediaPlayerId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool clientRoleType_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") ECLIENT_ROLE_TYPE clientRoleType = ECLIENT_ROLE_TYPE::CLIENT_ROLE_BROADCASTER; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool audienceLatencyLevel_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAUDIENCE_LATENCY_LEVEL_TYPE audienceLatencyLevel = EAUDIENCE_LATENCY_LEVEL_TYPE::AUDIENCE_LATENCY_LEVEL_LOW_LATENCY; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool defaultVideoStreamType_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EVIDEO_STREAM_TYPE defaultVideoStreamType = EVIDEO_STREAM_TYPE::VIDEO_STREAM_HIGH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool channelProfile_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") ECHANNEL_PROFILE_TYPE channelProfile = ECHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool audioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int audioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool mediaPlayerAudioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int mediaPlayerAudioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool token_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - FString token = ""; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + FString token = ""; + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional enableBuiltInMediaEncryption = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional publishRhythmPlayerTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional isInteractiveAudience = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") bool customVideoTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") int64 customVideoTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") EAgoraOptional isAudioFilterable = EAgoraOptional::AGORA_NULL_VALUE; FChannelMediaOptions(){} @@ -1183,38 +1192,38 @@ public: } public class ChannelMediaOptions : OptionalJsonParse { - public Optional<bool> publishCameraTrack = new Optional<bool>(); - public Optional<bool> publishSecondaryCameraTrack = new Optional<bool>(); - public Optional<bool> publishThirdCameraTrack = new Optional<bool>(); - public Optional<bool> publishFourthCameraTrack = new Optional<bool>(); - public Optional<bool> publishMicrophoneTrack = new Optional<bool>(); - public Optional<bool> publishScreenCaptureVideo = new Optional<bool>(); - public Optional<bool> publishScreenCaptureAudio = new Optional<bool>(); - public Optional<bool> publishScreenTrack = new Optional<bool>(); - public Optional<bool> publishSecondaryScreenTrack = new Optional<bool>(); - public Optional<bool> publishThirdScreenTrack = new Optional<bool>(); - public Optional<bool> publishFourthScreenTrack = new Optional<bool>(); - public Optional<bool> publishCustomAudioTrack = new Optional<bool>(); - public Optional<int> publishCustomAudioTrackId = new Optional<int>(); - public Optional<bool> publishCustomVideoTrack = new Optional<bool>(); - public Optional<bool> publishEncodedVideoTrack = new Optional<bool>(); - public Optional<bool> publishMediaPlayerAudioTrack = new Optional<bool>(); - public Optional<bool> publishMediaPlayerVideoTrack = new Optional<bool>(); - public Optional<bool> publishTranscodedVideoTrack = new Optional<bool>(); - public Optional<bool> publishLipSyncTrack = new Optional<bool>(); - public Optional<bool> autoSubscribeAudio = new Optional<bool>(); - public Optional<bool> autoSubscribeVideo = new Optional<bool>(); - public Optional<bool> enableAudioRecordingOrPlayout = new Optional<bool>(); - public Optional<int> publishMediaPlayerId = new Optional<int>(); - public Optional<CLIENT_ROLE_TYPE> clientRoleType = new Optional<CLIENT_ROLE_TYPE>(); - public Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel = new Optional<AUDIENCE_LATENCY_LEVEL_TYPE>(); - public Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType = new Optional<VIDEO_STREAM_TYPE>(); - public Optional<CHANNEL_PROFILE_TYPE> channelProfile = new Optional<CHANNEL_PROFILE_TYPE>(); - public Optional<string> token = new Optional<string>(); - public Optional<bool> publishRhythmPlayerTrack = new Optional<bool>(); - public Optional<bool> isInteractiveAudience = new Optional<bool>(); - public Optional<video_track_id_t> customVideoTrackId = new Optional<video_track_id_t>(); - public Optional<bool> isAudioFilterable = new Optional<bool>(); + public Optional<bool> publishCameraTrack = new Optional<bool>(); + public Optional<bool> publishSecondaryCameraTrack = new Optional<bool>(); + public Optional<bool> publishThirdCameraTrack = new Optional<bool>(); + public Optional<bool> publishFourthCameraTrack = new Optional<bool>(); + public Optional<bool> publishMicrophoneTrack = new Optional<bool>(); + public Optional<bool> publishScreenCaptureVideo = new Optional<bool>(); + public Optional<bool> publishScreenCaptureAudio = new Optional<bool>(); + public Optional<bool> publishScreenTrack = new Optional<bool>(); + public Optional<bool> publishSecondaryScreenTrack = new Optional<bool>(); + public Optional<bool> publishThirdScreenTrack = new Optional<bool>(); + public Optional<bool> publishFourthScreenTrack = new Optional<bool>(); + public Optional<bool> publishCustomAudioTrack = new Optional<bool>(); + public Optional<int> publishCustomAudioTrackId = new Optional<int>(); + public Optional<bool> publishCustomVideoTrack = new Optional<bool>(); + public Optional<bool> publishEncodedVideoTrack = new Optional<bool>(); + public Optional<bool> publishMediaPlayerAudioTrack = new Optional<bool>(); + public Optional<bool> publishMediaPlayerVideoTrack = new Optional<bool>(); + public Optional<bool> publishTranscodedVideoTrack = new Optional<bool>(); + public Optional<bool> publishLipSyncTrack = new Optional<bool>(); + public Optional<bool> autoSubscribeAudio = new Optional<bool>(); + public Optional<bool> autoSubscribeVideo = new Optional<bool>(); + public Optional<bool> enableAudioRecordingOrPlayout = new Optional<bool>(); + public Optional<int> publishMediaPlayerId = new Optional<int>(); + public Optional<CLIENT_ROLE_TYPE> clientRoleType = new Optional<CLIENT_ROLE_TYPE>(); + public Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel = new Optional<AUDIENCE_LATENCY_LEVEL_TYPE>(); + public Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType = new Optional<VIDEO_STREAM_TYPE>(); + public Optional<CHANNEL_PROFILE_TYPE> channelProfile = new Optional<CHANNEL_PROFILE_TYPE>(); + public Optional<string> token = new Optional<string>(); + public Optional<bool> publishRhythmPlayerTrack = new Optional<bool>(); + public Optional<bool> isInteractiveAudience = new Optional<bool>(); + public Optional<video_track_id_t> customVideoTrackId = new Optional<video_track_id_t>(); + public Optional<bool> isAudioFilterable = new Optional<bool>(); } export class ChannelMediaOptions { @@ -1324,115 +1333,115 @@ public: this.isAudioFilterable, this.parameters}); - @JsonKey(name: 'publishCameraTrack') + @JsonKey(name: 'publishCameraTrack') final bool? publishCameraTrack; - @JsonKey(name: 'publishSecondaryCameraTrack') + @JsonKey(name: 'publishSecondaryCameraTrack') final bool? publishSecondaryCameraTrack; - @JsonKey(name: 'publishThirdCameraTrack') + @JsonKey(name: 'publishThirdCameraTrack') final bool? publishThirdCameraTrack; - @JsonKey(name: 'publishFourthCameraTrack') + @JsonKey(name: 'publishFourthCameraTrack') final bool? publishFourthCameraTrack; - @JsonKey(name: 'publishMicrophoneTrack') + @JsonKey(name: 'publishMicrophoneTrack') final bool? publishMicrophoneTrack; - @JsonKey(name: 'publishScreenCaptureVideo') + @JsonKey(name: 'publishScreenCaptureVideo') final bool? publishScreenCaptureVideo; - @JsonKey(name: 'publishScreenCaptureAudio') + @JsonKey(name: 'publishScreenCaptureAudio') final bool? publishScreenCaptureAudio; - @JsonKey(name: 'publishScreenTrack') + @JsonKey(name: 'publishScreenTrack') final bool? publishScreenTrack; - @JsonKey(name: 'publishSecondaryScreenTrack') + @JsonKey(name: 'publishSecondaryScreenTrack') final bool? publishSecondaryScreenTrack; - @JsonKey(name: 'publishThirdScreenTrack') + @JsonKey(name: 'publishThirdScreenTrack') final bool? publishThirdScreenTrack; - @JsonKey(name: 'publishFourthScreenTrack') + @JsonKey(name: 'publishFourthScreenTrack') final bool? publishFourthScreenTrack; - @JsonKey(name: 'publishCustomAudioTrack') + @JsonKey(name: 'publishCustomAudioTrack') final bool? publishCustomAudioTrack; - @JsonKey(name: 'publishCustomAudioTrackId') + @JsonKey(name: 'publishCustomAudioTrackId') final int? publishCustomAudioTrackId; - @JsonKey(name: 'publishCustomVideoTrack') + @JsonKey(name: 'publishCustomVideoTrack') final bool? publishCustomVideoTrack; - @JsonKey(name: 'publishEncodedVideoTrack') + @JsonKey(name: 'publishEncodedVideoTrack') final bool? publishEncodedVideoTrack; - @JsonKey(name: 'publishMediaPlayerAudioTrack') + @JsonKey(name: 'publishMediaPlayerAudioTrack') final bool? publishMediaPlayerAudioTrack; - @JsonKey(name: 'publishMediaPlayerVideoTrack') + @JsonKey(name: 'publishMediaPlayerVideoTrack') final bool? publishMediaPlayerVideoTrack; - @JsonKey(name: 'publishTranscodedVideoTrack') + @JsonKey(name: 'publishTranscodedVideoTrack') final bool? publishTranscodedVideoTrack; - @JsonKey(name: 'publishMixedAudioTrack') + @JsonKey(name: 'publishMixedAudioTrack') final bool? publishMixedAudioTrack; - @JsonKey(name: 'publishLipSyncTrack') + @JsonKey(name: 'publishLipSyncTrack') final bool? publishLipSyncTrack; - @JsonKey(name: 'autoSubscribeAudio') + @JsonKey(name: 'autoSubscribeAudio') final bool? autoSubscribeAudio; - @JsonKey(name: 'autoSubscribeVideo') + @JsonKey(name: 'autoSubscribeVideo') final bool? autoSubscribeVideo; - @JsonKey(name: 'enableAudioRecordingOrPlayout') + @JsonKey(name: 'enableAudioRecordingOrPlayout') final bool? enableAudioRecordingOrPlayout; - @JsonKey(name: 'publishMediaPlayerId') + @JsonKey(name: 'publishMediaPlayerId') final int? publishMediaPlayerId; - @JsonKey(name: 'clientRoleType') + @JsonKey(name: 'clientRoleType') final ClientRoleType? clientRoleType; - @JsonKey(name: 'audienceLatencyLevel') + @JsonKey(name: 'audienceLatencyLevel') final AudienceLatencyLevelType? audienceLatencyLevel; - @JsonKey(name: 'defaultVideoStreamType') + @JsonKey(name: 'defaultVideoStreamType') final VideoStreamType? defaultVideoStreamType; - @JsonKey(name: 'channelProfile') + @JsonKey(name: 'channelProfile') final ChannelProfileType? channelProfile; - @JsonKey(name: 'audioDelayMs') + @JsonKey(name: 'audioDelayMs') final int? audioDelayMs; - @JsonKey(name: 'mediaPlayerAudioDelayMs') + @JsonKey(name: 'mediaPlayerAudioDelayMs') final int? mediaPlayerAudioDelayMs; - @JsonKey(name: 'token') + @JsonKey(name: 'token') final String? token; - @JsonKey(name: 'enableBuiltInMediaEncryption') + @JsonKey(name: 'enableBuiltInMediaEncryption') final bool? enableBuiltInMediaEncryption; - @JsonKey(name: 'publishRhythmPlayerTrack') + @JsonKey(name: 'publishRhythmPlayerTrack') final bool? publishRhythmPlayerTrack; - @JsonKey(name: 'isInteractiveAudience') + @JsonKey(name: 'isInteractiveAudience') final bool? isInteractiveAudience; - @JsonKey(name: 'customVideoTrackId') + @JsonKey(name: 'customVideoTrackId') final int? customVideoTrackId; - @JsonKey(name: 'isAudioFilterable') + @JsonKey(name: 'isAudioFilterable') final bool? isAudioFilterable; - @JsonKey(name: 'parameters') + @JsonKey(name: 'parameters') final String? parameters; factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) => @@ -1440,9 +1449,9 @@ public: Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this); } -

    +

    -
    SDK 支持在同一时间、同一 中发布多路音频流、一路视频流。例如,publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack 可以同时为 publishCameraTrackpublishScreenCaptureVideopublishScreenTrackpublishCustomVideoTrackpublishEncodedVideoTrack 之中同一时间只能有一个为 。 +
    SDK 支持在同一时间、同一 中发布多路音频流、一路视频流。例如,publishMicrophoneTrackpublishCustomAudioTrackpublishMediaPlayerAudioTrack 可以同时为 publishCameraTrackpublishScreenCaptureVideopublishScreenTrackpublishCustomVideoTrackpublishEncodedVideoTrack 之中同一时间只能有一个为 建议你根据业务场景自行设置成员参数值,否则 SDK 会自动对成员参数进行赋值。
    @@ -1456,7 +1465,7 @@ public:
  • :不发布摄像头采集的视频。
  • - + publishSecondaryCameraTrack 设置是否发布第二个摄像头采集的视频:
      @@ -1473,32 +1482,32 @@ public:
    -
    • 自 v4.0.0 起,该参数名称由 publishAudioTrack 改为 publishMicrophoneTrack
    • +
      • 自 v4.0.0 起,该参数名称由 publishAudioTrack 改为 publishMicrophoneTrack
      • 自 v6.0.0 起,该参数名称由 publishAudioTrack 改为 publishMicrophoneTrack
      • 如果你将该参数设为 ,SDK 也会关闭麦克风采集。
      • 如果你想要发布麦克风采集到的音频流,请确保 enableAudioRecordingOrPlayout 设为
      - + publishThirdCameraTrack 设置是否发布第三个摄像头采集的视频:
      • :发布第三个摄像头采集的视频。
      • :不发布第三个摄像头采集的视频。
      - 该参数仅适用于 Android、Windows 和 macOS 平台。该参数仅适用于 Android 平台。
      + 该参数仅适用于 Android、Windows 和 macOS 平台。该参数仅适用于 Android 平台。
      - + publishFourthCameraTrack 设置是否发布第四个摄像头采集的视频:
      • :发布第四个摄像头采集的视频。
      • :不发布第四个摄像头采集的视频。
      - 该参数仅适用于 Android、Windows 和 macOS 平台。该参数仅适用于 Android 平台。
      + 该参数仅适用于 Android、Windows 和 macOS 平台。该参数仅适用于 Android 平台。
      - + publishScreenTrack

      设置是否发布屏幕采集的视频: @@ -1506,10 +1515,10 @@ public:

    • :发布屏幕采集到的视频。
    • :不发布屏幕采集到的视频。

    - 该参数仅适用于 Windows 和 macOS 平台。 + 该参数仅适用于 Windows 和 macOS 平台。
    - + publishScreenCaptureVideo

    设置是否发布屏幕采集的视频: @@ -1517,21 +1526,33 @@ public:

  • :发布屏幕采集到的视频。
  • :不发布屏幕采集到的视频。
  • - 该参数仅适用于 Android 和 iOS 平台。 + 该参数仅适用于 Android 和 iOS 平台。 自 v4.0.0 起,该参数名称由 publishScreenTrack 改为 publishScreenCaptureVideo
    - - publishScreenCaptureAudio + + publishScreenCaptureAudio

    设置是否发布屏幕采集的音频:

    • :发布屏幕采集到的音频。
    • :不发布屏幕采集到的音频。

    - 该参数仅适用于 Android 和 iOS 平台。 + 该参数仅适用于 Android 和 iOS 平台。
    + 是否发布屏幕采集器的音频轨道: +
      +
    • :发布屏幕采集器的音频。
    • +
    • :(默认)不发布屏幕采集器的音频。
    • +
    +
    + 是否发布屏幕采集器的音频轨道: +
      +
    • :发布屏幕采集器的音频。
    • +
    • :(默认)不发布屏幕采集器的音频。
    • +
    +
    - + publishSecondaryScreenTrack 设置是否发布第二个屏幕采集的视频: @@ -1541,7 +1562,7 @@ public: - + publishThirdScreenTrack 设置是否发布第三个屏幕采集的视频: @@ -1550,10 +1571,10 @@ public:
  • :不发布第三个屏幕采集到的视频。
  • - 该参数仅适用于 Windows 和 macOS 平台。

    + 该参数仅适用于 Windows 和 macOS 平台。

    - + publishFourthScreenTrack 设置是否发布第四个屏幕采集的视频: @@ -1562,10 +1583,10 @@ public:
  • :不发布第四个屏幕采集到的视频。
  • - 该参数仅适用于 Windows 和 macOS 平台。

    + 该参数仅适用于 Windows 和 macOS 平台。

    - + publishTranscodedVideoTrack 设置是否发布本地的转码视频:
      @@ -1575,25 +1596,25 @@ public: 自 v4.2.0 起,该参数名称由 publishTrancodedVideoTrack 更正为 publishTranscodedVideoTrack - - publishMixedAudioTrack - 设置是否发布本地混音音频: + + publishMixedAudioTrack + 设置是否发布本地混音音频:
      • :发布本地混音音频。
      • :不发布本地混音音频。
      -
      - - publishLipSyncTrack - 设置是否发布语音驱动插件处理后的视频: + + + publishLipSyncTrack + 设置是否发布语音驱动插件处理后的视频:
      • :发布语音驱动插件处理后的视频。
      • :(默认)不发布语音驱动插件处理后的视频。
      -
      - + + publishCustomAudioTrack 设置是否发布自定义采集的音频: @@ -1602,11 +1623,11 @@ public:
    • :不发布自定义采集到的音频。
    - + publishCustomAudioTrackId 待发布的自定义音频轨道的 ID,默认值为 0。你可以通过 方法来获取自定义音频轨道 ID。 - + publishCustomVideoTrack 设置是否发布自定义采集的视频:
      @@ -1674,11 +1695,11 @@ public: publishMediaPlayerId 待发布的媒体播放器的 ID。默认值为 0。 - + clientRoleType - + clientRoleType 用户角色。详见 @@ -1752,7 +1773,7 @@ public:
    • 仅当用户角色为 时,该参数生效。
    - + customVideoTrackId 调用 方法返回的视频轨道 ID。默认值为 0。 @@ -1766,6 +1787,45 @@ public: 如需启用该功能,请 + + enableMultipath + 是否开启多路径传输。 +
      +
    • :开启多路径传输。
    • +
    • :关闭多路径传输。
    • +
    +
    + 是否开启多路径传输: +
      +
    • :开启多路径传输。
    • +
    • :关闭多路径传输。
    • +
    +
    + 是否启用多路径传输: +
      +
    • :启用多路径传输。
    • +
    • :禁用多路径传输。
    • +
    +
    +
    + + uplinkMultipathMode + 上行多路径传输的模式。 + 上行多路径传输的模式。详见 + 上行多路径传输的模式。详见 + + + downlinkMultipathMode + 下行多路径传输的模式。 + 下行多路径传输的模式。详见 + 下行多路径传输的模式。详见 + + + preferMultipathType + 多路径传输的首选类型。 + 首选的多路径传输类型。详见 + 首选的多路径传输类型。详见 +
    diff --git a/dita/RTC-NG/API/class_contentinspectmodule.dita b/dita/RTC-NG/API/class_contentinspectmodule.dita index a79c6ff18fd..ed5319065cc 100644 --- a/dita/RTC-NG/API/class_contentinspectmodule.dita +++ b/dita/RTC-NG/API/class_contentinspectmodule.dita @@ -1,18 +1,16 @@ - + <ph keyref="ContentInspectModule"/> - 结构体,用于配置本地截图上传的频率。 + 配置本地截图上传模块。

    public static class ContentInspectModule { - public int type; - public int interval; - public ContentInspectModule() { - type = CONTENT_INSPECT_TYPE_INVALID; - interval = 0; - } + public int type; + public int interval; + public Constants.VideoModulePosition position; +} export class ContentInspectModule { public type:Constants.ContentInspectType = Constants.ContentInspectType.INVALID; @@ -21,24 +19,26 @@ } __attribute__((visibility("default"))) @interface AgoraContentInspectModule: NSObject @property (assign, nonatomic) AgoraContentInspectType type; - @property (assign, nonatomic) NSInteger interval; +@property (assign, nonatomic) AgoraVideoModulePosition position; @end struct ContentInspectModule { CONTENT_INSPECT_TYPE type; unsigned int interval; + base::VIDEO_MODULE_POSITION position; ContentInspectModule() { type = CONTENT_INSPECT_INVALID; interval = 0; + position = base::POSITION_PRE_ENCODER; } }; USTRUCT(BlueprintType) struct FContentInspectModule { GENERATED_BODY() public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ContentInspectModule") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ContentInspectModule") ECONTENT_INSPECT_TYPE type = ECONTENT_INSPECT_TYPE::CONTENT_INSPECT_INVALID; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ContentInspectModule") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ContentInspectModule") int64 interval = 0; FContentInspectModule(){} FContentInspectModule(const agora::media::ContentInspectModule & AgoraData){ @@ -84,19 +84,19 @@ public: final ContentInspectType? type; @JsonKey(name: 'interval') final int? interval; - factory ContentInspectModule.fromJson(Map<String, dynamic> json) => + factory ContentInspectModule.fromJson(Map<String, dynamic> json) => _$ContentInspectModuleFromJson(json); - Map<String, dynamic> toJson() => _$ContentInspectModuleToJson(this); + Map<String, dynamic> toJson() => _$ContentInspectModuleToJson(this); } -

    +

    <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> type - 功能模块的类型。详见 + 功能模块的类型。详见

    功能模块的类型:

      @@ -111,6 +111,11 @@ public: interval 本地截图上传的间隔,单位为秒,取值必须大于 0。默认值为 0,表示不进行截图上传。视频内容审核的间隔,单位为秒,取值必须大于 0。默认值为 0,表示不进行内容审核。推荐值为 10 秒,你也可以根据业务需求自行调整。 + + position + 视频观测的位置。详见 + 视频模块的位置。详见 +
    diff --git a/dita/RTC-NG/API/class_directcdnstreamingmediaoptions.dita b/dita/RTC-NG/API/class_directcdnstreamingmediaoptions.dita index 17ed95e8f44..f207799c4cc 100644 --- a/dita/RTC-NG/API/class_directcdnstreamingmediaoptions.dita +++ b/dita/RTC-NG/API/class_directcdnstreamingmediaoptions.dita @@ -1,4 +1,4 @@ - + <ph keyref="DirectCdnStreamingMediaOptions"/> @@ -20,7 +20,7 @@ publishCustomVideoTrack = false; } } - + __attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingMediaOptions : NSObject @property(assign, nonatomic) BOOL publishCameraTrack; @@ -48,23 +48,23 @@ struct FDirectCdnStreamingMediaOptions { GENERATED_BODY() - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") AGORAOPTIONAL publishCameraTrack; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") AGORAOPTIONAL publishMicrophoneTrack; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") AGORAOPTIONAL publishCustomAudioTrack; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") AGORAOPTIONAL publishCustomVideoTrack; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") AGORAOPTIONAL publishMediaPlayerAudioTrack; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") bool publishMediaPlayerId_SetValue; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") int publishMediaPlayerId; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") bool customVideoTrackId_SetValue; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|DirectCdnStreamingMediaOptions") int64 customVideoTrackId; }; export class DirectCdnStreamingMediaOptions { @@ -126,13 +126,24 @@ struct FDirectCdnStreamingMediaOptions @JsonKey(name: 'customVideoTrackId') final int? customVideoTrackId; - factory DirectCdnStreamingMediaOptions.fromJson(Map<String, dynamic> json) => + factory DirectCdnStreamingMediaOptions.fromJson(Map<String, dynamic> json) => _$DirectCdnStreamingMediaOptionsFromJson(json); - Map<String, dynamic> toJson() => _$DirectCdnStreamingMediaOptionsToJson(this); + Map<String, dynamic> toJson() => _$DirectCdnStreamingMediaOptionsToJson(this); } -

    +

    +
    + 详情 +
    + +
    弃用:
    +
    该结构体自 v4.6.0 版本废弃。
    +
    该类自 v4.6.0 版本废弃。
    +
    该类自 v4.6.0 版本废弃,请改用其他替代方案。
    +
    +
    +
    <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> diff --git a/dita/RTC-NG/API/class_multipathstats.dita b/dita/RTC-NG/API/class_multipathstats.dita new file mode 100644 index 00000000000..75c8f609755 --- /dev/null +++ b/dita/RTC-NG/API/class_multipathstats.dita @@ -0,0 +1,102 @@ + + + + <ph keyref="MultipathStats"/> + 汇总多路径传输中所有网络路径的统计信息。 + +
    +

    + + + __attribute__((visibility("default"))) @interface AgoraMultipathStats : NSObject +@property (assign, nonatomic) NSUInteger lanRxBytes; +@property (assign, nonatomic) NSUInteger lanTxBytes; +@property (assign, nonatomic) NSUInteger wifiRxBytes; +@property (assign, nonatomic) NSUInteger wifiTxBytes; +@property (assign, nonatomic) NSUInteger mobileRxBytes; +@property (assign, nonatomic) NSUInteger mobileTxBytes; +@property (assign, nonatomic) NSUInteger activePathNum; +@property (copy, nonatomic) NSArray<AgoraPathStats *> *_Nullable pathStats NS_SWIFT_NAME(pathStats); +@end + struct MultipathStats { + uint32_t lanTxBytes; + uint32_t lanRxBytes; + uint32_t wifiTxBytes; + uint32_t wifiRxBytes; + uint32_t mobileTxBytes; + uint32_t mobileRxBytes; + int activePathNum; + const PathStats* pathStats; + MultipathStats() + : lanTxBytes(0), + lanRxBytes(0), + wifiTxBytes(0), + wifiRxBytes(0), + mobileTxBytes(0), + mobileRxBytes(0), + activePathNum(0), + pathStats(nullptr) {} +}; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + lanTxBytes + 通过 LAN 网络发送的总字节数。 + 通过 LAN 路径发送的字节数。 + + + lanRxBytes + 通过 LAN 网络接收的总字节数。 + 通过 LAN 路径接收的字节数。 + + + wifiTxBytes + 通过 Wi-Fi 网络发送的总字节数。 + 通过 Wi-Fi 路径发送的字节数。 + + + wifiRxBytes + 通过 Wi-Fi 网络接收的总字节数。 + 通过 Wi-Fi 路径接收的字节数。 + + + mobileTxBytes + 通过移动蜂窝网络发送的总字节数。 + 通过移动网络路径发送的字节数。 + + + mobileRxBytes + 通过移动蜂窝网络接收的总字节数。 + 通过移动网络路径接收的字节数。 + + + activePathNum + 当前活动的路径数量。 + 当前活跃路径的数量。 + 活动路径的数量。 + + + pathStats + 路径统计信息数组,详见 + 路径的统计信息。详见 + 每个活动路径的统计信息数组。详见 + +
    +
    +
    diff --git a/dita/RTC-NG/API/class_pathstats.dita b/dita/RTC-NG/API/class_pathstats.dita new file mode 100644 index 00000000000..a51eb2c4602 --- /dev/null +++ b/dita/RTC-NG/API/class_pathstats.dita @@ -0,0 +1,71 @@ + + + + <ph keyref="PathStats"/> + 用于描述多路径传输中某一特定网络路径的统计信息。 + +
    +

    + public static class PathStats { + public int pathType; + public int txKBitRate; + public int rxKBitRate; +} + + __attribute__((visibility("default"))) @interface AgoraPathStats : NSObject +@property (assign, nonatomic) AgoraMultipathType pathType; +@property (assign, nonatomic) NSUInteger txKBitRate; +@property (assign, nonatomic) NSUInteger rxKBitRate; +@end + struct PathStats { + MultipathType type; + int txKBitRate; + int rxKBitRate; + PathStats() : type(Unknown), txKBitRate(0), rxKBitRate(0) {} + PathStats(MultipathType t, int tx, int rx) : type(t), txKBitRate(tx), rxKBitRate(rx) {} +}; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + pathType + pathType + type + 路径类型,例如: +
      +
    • LAN:局域网。
    • +
    • WiFi:无线局域网。
    • +
    • Mobile:移动网络。
    • +
    +
    + 路径类型。详见 + 路径的类型。详见 +
    + + txKBitRate + 该路径的发送码率,单位为 Kbps。 + 路径的传输码率,单位为 Kbps。 + + + rxKBitRate + 该路径的接收码率,单位为 Kbps。 + 路径的接收码率,单位为 Kbps。 + +
    +
    +
    diff --git a/dita/RTC-NG/API/class_segmentationproperty.dita b/dita/RTC-NG/API/class_segmentationproperty.dita index 4bfc8967518..f0266d0963d 100644 --- a/dita/RTC-NG/API/class_segmentationproperty.dita +++ b/dita/RTC-NG/API/class_segmentationproperty.dita @@ -1,8 +1,8 @@ - + - <ph keyref="SegmentationProperty" /> - 背景图像的处理属性。 + <ph keyref="SegmentationProperty"/> + 分割属性配置。

    @@ -29,28 +29,25 @@ public greenCapacity:number = 0.5; } - __attribute__((visibility("default"))) @interface AgoraSegmentationProperty: NSObject + @interface AgoraSegmentationProperty: NSObject @property(nonatomic, assign) SegModelType modelType; @property(nonatomic, assign) float greenCapacity; +@property(nonatomic, assign) ScreenColorType screenColorType; @end struct SegmentationProperty { - enum SEG_MODEL_TYPE { - SEG_MODEL_AI = 1, - SEG_MODEL_GREEN = 2 - }; - SEG_MODEL_TYPE modelType; - float greenCapacity; - SegmentationProperty() : modelType(SEG_MODEL_AI), greenCapacity(0.5){} -}; - + SEG_MODEL_TYPE modelType; + float greenCapacity; + SCREEN_COLOR_TYPE screenColorType; + SegmentationProperty() : modelType(SEG_MODEL_AI), greenCapacity(0.5), screenColorType(SCREEN_COLOR_AUTO) {} +}; USTRUCT(BlueprintType) struct FSegmentationProperty { GENERATED_BODY() public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|SegmentationProperty") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|SegmentationProperty") ESEG_MODEL_TYPE modelType = ESEG_MODEL_TYPE::SEG_MODEL_AI; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|SegmentationProperty") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|SegmentationProperty") float greenCapacity = 0.5; FSegmentationProperty(){} FSegmentationProperty(const agora::rtc::SegmentationProperty & AgoraData){ @@ -99,25 +96,25 @@ public: @JsonKey(name: 'greenCapacity') final double? greenCapacity; - factory SegmentationProperty.fromJson(Map<String, dynamic> json) => + factory SegmentationProperty.fromJson(Map<String, dynamic> json) => _$SegmentationPropertyFromJson(json); - Map<String, dynamic> toJson() => _$SegmentationPropertyToJson(this); + Map<String, dynamic> toJson() => _$SegmentationPropertyToJson(this); } -

    +

    -

    -

    +

    +
    - <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> modelType - 进行背景处理的算法。详见 + 进行背景处理的算法。详见
      -
    • (1): (默认) 适用于所有场景下的背景处理算法。
    • -
    • (2): 仅适用于绿幕背景下的背景处理算法。
    • +
    • (1): (默认) 适用于所有场景下的背景处理算法。
    • +
    • (2): 仅适用于绿幕背景下的背景处理算法。
    @@ -127,13 +124,18 @@ public:
  • 0: 不开启双边滤波功能。
  • 1: (默认)开启双边滤波功能,在绿幕场景下的虚拟背景效果更好。
  • - 该参数仅在 modelType 设置为 时生效。 + 该参数仅在 modelType 设置为 时生效。
    greenCapacity

    对画面中背景颜色识别的精度范围。取值范围为 [0,1],默认值为 0.5。取值越大,代表可识别的纯色范围越大。当该参数取值过大时,人像边缘和人像范围内的纯色也会被识别。建议你根据实际效果动态调整该参数的值。

    - 该参数仅在 modelType 设置为 时生效。
    + 该参数仅在 modelType 设置为 时生效。 +
    + + screenColorType + 屏幕颜色类型。详见 + 屏幕颜色类型,详见
    diff --git a/dita/RTC-NG/API/class_simulcastconfig.dita b/dita/RTC-NG/API/class_simulcastconfig.dita new file mode 100644 index 00000000000..0b569a0ca27 --- /dev/null +++ b/dita/RTC-NG/API/class_simulcastconfig.dita @@ -0,0 +1,105 @@ + + + + <ph keyref="SimulcastConfig"/> + 配置多质量层级的视频流。 + +
    +

    + public class SimulcastConfig { + final public StreamLayerConfig[] configs = new StreamLayerConfig[StreamLayerIndex.STREAM_LAYER_COUNT_MAX.getValue()]; + public boolean publishFallbackEnable; + public boolean publishOnDemand; +} + + __attribute__((visibility("default"))) @interface AgoraSimulcastConfig: NSObject +@property (copy, nonatomic, readonly) NSArray<AgoraStreamLayerConfig*>* _Nonnull configs; +@property (assign, nonatomic) BOOL publishFallbackEnable; +@property (assign, nonatomic) BOOL publishOnDemand; +@end + struct SimulcastConfig { + struct StreamLayerConfig { + VideoDimensions dimensions; + int framerate; + bool enable; + StreamLayerConfig() : dimensions(0, 0), framerate(0), enable(false) {} + }; + StreamLayerConfig configs[STREAM_LAYER_COUNT_MAX]; + bool publish_fallback_enable; + bool publish_on_demand; + SimulcastConfig(): publish_fallback_enable(false), publish_on_demand(true) {} +}; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + enable + 是否启用对应层级的视频流。默认值为 。 +
      +
    • :启用对应层级的视频流。
    • +
    • :(默认)禁用对应层级的视频流。
    • +
    +
    +
    + + publishFallbackEnable + publish_fallback_enable + 是否开启分层推流回退。 +
      +
    • :开启分层推流回退。当发布端性能或网络较差时,允许动态关闭多个不同质量层级的视频流,关闭顺序为 layer1 → layer6。系统保证即使在网络状况差或设备性能受限的情况下,至少保留主流和最低分辨率的辅流,以维持基本的视频连贯性。
    • +
    • :(默认)关闭分层推流回退。
    • +
    +
    + 是否开启分层推流回退: +
      +
    • :开启分层推流回退。当发布端性能或网络较差时,系统会按 layer1 到 layer6 的顺序动态关闭多个不同质量层级的视频流。系统会保留主流和最低分辨率的辅流,以保证基本的视频连贯性。
    • +
    • :(默认)关闭分层推流回退。
    • +
    +
    + 是否启用分层推流回退。 +
      +
    • :启用分层推流回退。当发布端性能或网络较差时,系统会动态关闭多个视频流,关闭顺序为 layer1 → layer6。系统会在网络条件较差或设备性能受限时,保留主流和最低分辨率的辅流,以维持基本的视频连贯性。
    • +
    • :(默认)禁用分层推流回退。
    • +
    +
    +
    + + publishOnDemand + publish_on_demand + 是否开启按需发布。 +
      +
    • :(默认)开启按需发布。只有在有订阅者请求某一 simulcast 层时才发布该层视频流。
    • +
    • :关闭按需发布,所有已启用的不同质量层级的视频流将在无论是否有订阅者的情况下发布。
    • +
    +
    + 是否开启按需发布: +
      +
    • :(默认)开启按需发布。仅在有订阅者请求某一 simulcast 层时才发布该层。
    • +
    • :关闭按需发布。无论是否有订阅者,所有启用的不同质量层级的视频流都会被发布。
    • +
    +
    + 是否启用按需推流。 +
      +
    • :(默认)启用按需推流。仅在有订阅者请求某一 simulcast 层时才发布该层。
    • +
    • :禁用按需推流。所有启用的 simulcast 层都会被发布,无论是否有订阅者。
    • +
    +
    +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/class_streamlayerconfig.dita b/dita/RTC-NG/API/class_streamlayerconfig.dita new file mode 100644 index 00000000000..003546887a7 --- /dev/null +++ b/dita/RTC-NG/API/class_streamlayerconfig.dita @@ -0,0 +1,92 @@ + + + + <ph keyref="StreamLayerConfig"/> + 配置多质量层级视频流中某一层的参数。 + +
    +

    + public class StreamLayerConfig { + public VideoEncoderConfiguration.VideoDimensions dimensions; + public int framerate; + public boolean enable; + public StreamLayerConfig() { + this.dimensions = new VideoEncoderConfiguration.VideoDimensions(0, 0); + this.framerate = 0; + this.enable = false; + } + public StreamLayerConfig(VideoEncoderConfiguration.VideoDimensions dimensions, int framerate, boolean enable) { + this.dimensions = dimensions; + this.framerate = framerate; + this.enable = enable; + } + @CalledByNative("StreamLayerConfig") + public int getFramerate() { + return framerate; + } + @CalledByNative("StreamLayerConfig") + public int getDimensionsWidth() { + return dimensions.width; + } + @CalledByNative("StreamLayerConfig") + public int getDimensionsHeight() { + return dimensions.height; + } + @CalledByNative("StreamLayerConfig") + public boolean isEnabled() { + return enable; + } +} + + __attribute__((visibility("default"))) @interface AgoraStreamLayerConfig: NSObject +@property (assign, nonatomic) CGSize dimensions; +@property (assign, nonatomic) int framerate; +@property (assign, nonatomic) BOOL enable; +@end + + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    用于配置多质量层级视频流中某一层的参数,包括视频尺寸、帧率以及是否启用该层视频流。

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + dimensions + 视频帧的尺寸。默认值为 0。详见 VideoEncoderConfiguration.VideoDimensions + 视频帧的尺寸。默认值为 0。 + + + framerate + 本地视频采集的帧率(fps)。默认值为 0。 + 本地视频的采集帧率(fps)。默认值为 0。 + + + enable + 是否启用该分层视频流。 +
      +
    • :启用该分层视频流。
    • +
    • :(默认)不启用该分层视频流。
    • +
    +
    + 是否启用对应层级的视频流。 +
      +
    • :启用对应层级的视频流。
    • +
    • :(默认)禁用对应层级的视频流。
    • +
    +
    +
    +
    +
    +
    diff --git a/dita/RTC-NG/API/class_watermarkbuffer.dita b/dita/RTC-NG/API/class_watermarkbuffer.dita new file mode 100644 index 00000000000..da65e61ff4b --- /dev/null +++ b/dita/RTC-NG/API/class_watermarkbuffer.dita @@ -0,0 +1,107 @@ + + + + <ph keyref="WatermarkBuffer"/> + 用于定义水印图像的缓冲数据。 + +
    +

    + public class WatermarkBuffer { + public final static int WATERMARK_BUFFER_FORMAT_I420 = 1; + public final static int WATERMARK_BUFFER_FORMAT_BGRA = 2; + public final static int WATERMARK_BUFFER_FORMAT_NV21 = 3; + public final static int WATERMARK_BUFFER_FORMAT_RGBA = 4; + public ByteBuffer buffer; + public int width; + public int height; + public int format; +} + + __attribute__((visibility("default"))) @interface WatermarkBuffer : NSObject +@property(assign, nonatomic) int width; +@property(assign, nonatomic) int height; +@property(assign, nonatomic) int length; +@property(strong, nonatomic) NSData* _Nullable buffer; +@property(assign, nonatomic) WatermarkBufferFormat format; +@end + struct WatermarkBuffer { + int width; + int height; + int length; + media::base::VIDEO_PIXEL_FORMAT format; + const uint8_t* buffer; + WatermarkBuffer() : buffer(NULL), width(0), height(0), length(0), format(media::base::VIDEO_PIXEL_I420) {} +}; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + width + 水印缓冲区的宽度(以像素为单位)。 + 水印图像的宽度,单位为像素。 + 水印缓冲区的宽度。 + + + height + 水印缓冲区的高度(以像素为单位)。 + 水印图像的高度,单位为像素。 + 水印缓冲区的高度。 + + + length + 缓冲区的长度,单位为字节。 + 水印缓冲区的长度。 + + + format + 水印图像的格式: +
      +
    • WATERMARK_BUFFER_FORMAT_I420:I420 格式。
    • +
    • WATERMARK_BUFFER_FORMAT_BGRA:BGRA 格式。
    • +
    • WATERMARK_BUFFER_FORMAT_NV21:NV21 格式。
    • +
    • WATERMARK_BUFFER_FORMAT_RGBA:RGBA 格式。
    • +
    +
    + 水印缓冲区的格式。详见 + 水印缓冲区的格式,详见 。默认值为 。当前支持的格式包括: +
    + + buffer + 存储水印图像数据的缓冲区。详见 ByteBuffer + 原始图像数据缓冲区。详见 NSData + 水印的缓冲区数据。 + + + WATERMARK_BUFFER_FORMAT_I420 + 指定水印缓冲区的格式为 I420。 + + + WATERMARK_BUFFER_FORMAT_BGRA + 指定水印缓冲区的格式为 BGRA。 + + + WATERMARK_BUFFER_FORMAT_NV21 + 指定水印缓冲区的格式为 NV21。 + + + WATERMARK_BUFFER_FORMAT_RGBA + 指定水印缓冲区的格式为 RGBA。 + +
    +
    +
    diff --git a/dita/RTC-NG/API/class_watermarkconfig.dita b/dita/RTC-NG/API/class_watermarkconfig.dita new file mode 100644 index 00000000000..c679430f53f --- /dev/null +++ b/dita/RTC-NG/API/class_watermarkconfig.dita @@ -0,0 +1,109 @@ + + + + <ph keyref="WatermarkConfig"/> + 用于配置水印的相关信息。 + +
    +

    + public class WatermarkConfig { + public static final int WATERMARK_TYPE_IMAGE = 0; + public static final int WATERMARK_TYPE_BUFFER = 1; + public String id; + public int type; + public WatermarkBuffer buffer = new WatermarkBuffer(); + public String imageUrl; + public WatermarkOptions options = new WatermarkOptions(); +} + + __attribute__((visibility("default"))) @interface WatermarkConfig : NSObject +@property(copy, nonatomic) NSString* _Nonnull id; +@property(assign, nonatomic) WatermarkType type; +@property(strong, nonatomic) WatermarkBuffer* _Nullable buffer; +@property(strong, nonatomic) NSURL *_Nullable imageUrl; +@property(strong, nonatomic) WatermarkOptions* _Nonnull options; +@end + struct WatermarkConfig { + const char* id; + WATERMARK_SOURCE_TYPE type; + union { + WatermarkBuffer buffer; + WatermarkTimestamp timestamp; + WatermarkLiteral literal; + const char* imageUrl; + }; + WatermarkOptions options; + WatermarkConfig() : id(NULL), type(IMAGE), imageUrl(NULL) {} +}; + + + + +

    +
    +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +

    +
    +
    + <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> + + + id + 水印的唯一标识符,通常使用 UUID 生成。 + 水印的唯一标识符。 + 水印的唯一标识符,建议使用 UUID。 + + + type + 水印的类型: +
      +
    • WATERMARK_TYPE_IMAGE:图像类型。
    • +
    • WATERMARK_TYPE_BUFFER:Buffer 类型。
    • +
    +
    + 水印类型,详见 + 水印的类型,详见 +
    + + buffer + 包含水印图像数据的缓冲区。详见 + 水印图像的缓冲数据,详见 + 水印的缓冲区。详见 + + + imageUrl + 用于加载水印图像的 URL 地址。 + 水印图像的 URL。 + 水印图像文件的 URL,默认值为 NULL。 + + + options + 定义水印位置和大小的选项。详见 + 水印的显示选项,详见 + 水印的选项。详见 + + + timestamp + 水印的时间戳。详见 WatermarkTimestamp + + + literal + 水印的文字。详见 WatermarkLiteral + + + WATERMARK_TYPE_IMAGE + 指定水印类型为图像。 + + + WATERMARK_TYPE_BUFFER + 指定水印类型为缓冲区。 + +
    +
    +
    diff --git a/dita/RTC-NG/API/class_watermarkoptions.dita b/dita/RTC-NG/API/class_watermarkoptions.dita index 52ec1f2867b..fb37e60ac5c 100644 --- a/dita/RTC-NG/API/class_watermarkoptions.dita +++ b/dita/RTC-NG/API/class_watermarkoptions.dita @@ -1,69 +1,48 @@ - + <ph keyref="WatermarkOptions"/> - 水印图片的设置。 + 配置水印图像。

    - public class WatermarkOptions { - public static class Rectangle { - public int x = 0; - public int y = 0; - public int width = 0; - public int height = 0; - public Rectangle() { - x = 0; - y = 0; - width = 0; - height = 0; - } - public Rectangle(int x_, int y_, int width_, int height_) { - x = x_; - y = y_; - width = width_; - height = height_; - } - }; - public boolean visibleInPreview = true; - public Rectangle positionInLandscapeMode = new Rectangle(); - public Rectangle positionInPortraitMode = new Rectangle(); -} - - - __attribute__((visibility("default"))) @interface WatermarkOptions : NSObject + + + @interface WatermarkOptions : NSObject @property(assign, nonatomic) BOOL visibleInPreview; @property(assign, nonatomic) CGRect positionInLandscapeMode; @property(assign, nonatomic) CGRect positionInPortraitMode; -@end - +@property(assign, nonatomic) int zOrder; +@end struct WatermarkOptions { bool visibleInPreview; Rectangle positionInLandscapeMode; Rectangle positionInPortraitMode; WatermarkRatio watermarkRatio; WATERMARK_FIT_MODE mode; + int zOrder; + WatermarkOptions() - : visibleInPreview(false), - positionInLandscapeMode(0, 0, 0, 0), - positionInPortraitMode(0, 0, 0, 0), - mode(FIT_MODE_COVER_POSITION) {} -}; - + : visibleInPreview(true), + positionInLandscapeMode(0, 0, 0, 0), + positionInPortraitMode(0, 0, 0, 0), + mode(FIT_MODE_COVER_POSITION), + zOrder(0) {} +}; USTRUCT(BlueprintType) struct FWatermarkOptions { GENERATED_BODY() public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") bool visibleInPreview = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") FRectangle positionInLandscapeMode = FRectangle(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") FRectangle positionInPortraitMode = FRectangle(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") FWatermarkRatio watermarkRatio = FWatermarkRatio(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|WatermarkOptions") EWATERMARK_FIT_MODE mode = EWATERMARK_FIT_MODE::FIT_MODE_COVER_POSITION; FWatermarkOptions(){} FWatermarkOptions(const agora::rtc::WatermarkOptions & AgoraData){ @@ -148,19 +127,19 @@ class WatermarkOptions { this.watermarkRatio, this.mode}); - @JsonKey(name: 'visibleInPreview') + @JsonKey(name: 'visibleInPreview') final bool? visibleInPreview; - @JsonKey(name: 'positionInLandscapeMode') + @JsonKey(name: 'positionInLandscapeMode') final Rectangle? positionInLandscapeMode; - @JsonKey(name: 'positionInPortraitMode') + @JsonKey(name: 'positionInPortraitMode') final Rectangle? positionInPortraitMode; - @JsonKey(name: 'watermarkRatio') + @JsonKey(name: 'watermarkRatio') final WatermarkRatio? watermarkRatio; - @JsonKey(name: 'mode') + @JsonKey(name: 'mode') final WatermarkFitMode? mode; factory WatermarkOptions.fromJson(Map<String, dynamic> json) => @@ -168,11 +147,11 @@ class WatermarkOptions { Map<String, dynamic> toJson() => _$WatermarkOptionsToJson(this); } -

    +

    -

    -

    +

    用于设置要添加的水印图像的相关配置项。

    +
    <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> @@ -188,8 +167,8 @@ class WatermarkOptions { positionInLandscapeMode 横屏模式下,显示水印图片的区域。详见 - 水印的适配模式为 时,用于设置横屏模式下水印图片的区域。详见 - 横屏模式下,显示水印图片的区域。该参数包含以下成员: + 水印的适配模式为 时,用于设置横屏模式下水印图片的区域。详见 + 横屏模式下,显示水印图片的区域。该参数包含以下成员:
    • x:水印相对左上角的横向偏移。
    • y:水印相对左上角的纵向偏移。
    • @@ -200,8 +179,8 @@ class WatermarkOptions { positionInPortraitMode 竖屏模式下,显示水印图片的区域。详见 - 水印的适配模式为 时,用于设置竖屏模式下水印图片的区域。详见 - 竖屏模式下,显示水印图片的区域。该参数包含以下成员: + 水印的适配模式为 时,用于设置竖屏模式下水印图片的区域。详见 + 竖屏模式下,显示水印图片的区域。该参数包含以下成员:
      • x:水印相对左上角的横向偏移。
      • y:水印相对左上角的纵向偏移。
      • @@ -209,14 +188,19 @@ class WatermarkOptions {
      • height:水印区域的高 (px)。
      - + watermarkRatio 水印的适配模式为 时,该参数可设置缩放模式下的水印坐标。详见 - + mode 水印的适配模式。详见 + + zOrder + 水印图像的 Z 轴顺序。默认值为 0。 + 设置水印图像的图层顺序。 +
    diff --git a/dita/RTC-NG/API/enum_directcdnstreamingreason.dita b/dita/RTC-NG/API/enum_directcdnstreamingreason.dita index 78dd7b7b4f0..97553e92477 100644 --- a/dita/RTC-NG/API/enum_directcdnstreamingreason.dita +++ b/dita/RTC-NG/API/enum_directcdnstreamingreason.dita @@ -1,9 +1,18 @@ - + <ph keyref="DIRECT_CDN_STREAMING_REASON"/> CDN 推流状态改变的原因。 +
    + 详情 +
    + +
    弃用:
    +
    该枚举自 v4.6.0 版本废弃。
    +
    +
    +
    枚举值 diff --git a/dita/RTC-NG/API/enum_directcdnstreamingstate.dita b/dita/RTC-NG/API/enum_directcdnstreamingstate.dita index 99433b5da0d..8068071a9ee 100644 --- a/dita/RTC-NG/API/enum_directcdnstreamingstate.dita +++ b/dita/RTC-NG/API/enum_directcdnstreamingstate.dita @@ -1,9 +1,20 @@ - + <ph keyref="DIRECT_CDN_STREAMING_STATE"/> 当前 CDN 推流状态。 +
    + 详情 +
    + +
    弃用:
    +
    该结构体自 v4.6.0 版本废弃。
    +
    该类自 v4.6.0 版本废弃,请改用其他替代方案。
    +
    该类自 v4.6.0 版本废弃。
    +
    +
    +
    枚举值 diff --git a/dita/RTC-NG/API/enum_faceshapearea.dita b/dita/RTC-NG/API/enum_faceshapearea.dita index 25bdc7194e9..961cfcf2702 100644 --- a/dita/RTC-NG/API/enum_faceshapearea.dita +++ b/dita/RTC-NG/API/enum_faceshapearea.dita @@ -1,14 +1,14 @@ - + - <ph keyref="FACE_SHAPE_AREA" /> - 美型部位。 + <ph keyref="FACE_SHAPE_AREA"/> + 指定需要调整的美型区域。
    -
    自从
    -
    v4.5.0
    +
    自从:
    +
    自 v4.4.0 版本新增。
    @@ -67,6 +67,306 @@ 11: 嘴巴,修饰嘴巴尺寸。对应修饰力度范围为 [-100,100],正值为变大,负值为变小,绝对值越大修饰效果越强,预设值为 20。 + + + (107):下颌骨调整。取值范围为 [0, 100],默认值为 0。值越大,瘦下颌骨效果越明显。自 v4.6.0 版本新增。 + + + + (201):眼距调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (202):眼位调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (203):下眼睑调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (204):瞳孔调整。取值范围为 [0, 100],默认值为 0。值越大,放大瞳孔效果越明显。自 v4.6.0 版本新增。 + + + + (205):眼内角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (206):眼外角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (302):鼻翼调整。取值范围为 [0, 100],默认值为 10。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (303):鼻根调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (304):鼻梁调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (305):鼻尖调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (306):整体鼻型调整。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (401):嘴巴位置调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。自 v4.6.0 版本新增。 + + + + (402):嘴角上扬调整。取值范围为 [0, 100],默认值为 30。值越大,笑意效果越明显。自 v4.6.0 版本新增。 + + + + (403):嘴唇厚度调整。取值范围为 [0, 100],默认值为 0。值越大,嘴唇变厚效果越明显。自 v4.6.0 版本新增。 + + + + (500):眉毛位置调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。自 v4.6.0 版本新增。 + + + + (501):眉毛粗细调整。取值范围为 [-100, 100],默认值为 0。值越大,眉毛变粗效果越明显。自 v4.6.0 版本新增。 + + + + (100):头部缩放。取值范围为 [0, 100],默认值为 50。值越大,缩头效果越明显。 + + + + (101):额头大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (102):脸型轮廓瘦脸。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (103):脸部长度调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (104):脸部宽度调整。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (105):颧骨大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (106):面颊大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (107):下颌骨瘦脸。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (108):下巴长度调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (200):眼睛大小调整。取值范围为 [0, 100],默认值为 50。值越大,放大效果越明显。 + + + + (201):眼距调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (202):眼睛上下位置调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (203):下眼睑位置调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (204):瞳孔大小调整。取值范围为 [0, 100],默认值为 0。值越大,放大效果越明显。 + + + + (205):内眼角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (206):外眼角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (300):鼻子长度调整。取值范围为 [-100, 100],默认值为 0。 + + + + (301):鼻子宽度调整。取值范围为 [0, 100],默认值为 0。值越大,变窄效果越明显。 + + + + (302):鼻翼大小调整。取值范围为 [0, 100],默认值为 10。值越大,调整效果越明显。 + + + + (303):鼻根大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (304):鼻梁大小调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。 + + + + (305):鼻尖大小调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。 + + + + (306):整体鼻子大小调整。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (400):嘴巴大小调整。取值范围为 [-100, 100],默认值为 20。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (401):嘴巴位置调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (402):嘴角上扬程度调整。取值范围为 [0, 100],默认值为 30。值越大,微笑效果越明显。 + + + + (403):嘴唇大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (500):眉毛位置调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (501):眉毛粗细调整。取值范围为 [-100, 100],默认值为 0。值越大,变粗效果越明显。 + + + + (100):头部缩放。取值范围为 [0, 100],默认值为 50。值越大,缩头效果越明显。 + + + + (101):额头大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (102):脸型轮廓瘦脸。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (103):脸部长度调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (104):脸部宽度调整。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (105):颧骨大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (106):面颊大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (107):下颌骨瘦脸。取值范围为 [0, 100],默认值为 0。值越大,瘦脸效果越明显。 + + + + (108):下巴长度调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (200):眼睛大小调整。取值范围为 [0, 100],默认值为 50。值越大,放大效果越明显。 + + + + (201):眼距调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (202):眼睛上下位置调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (203):下眼睑位置调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (204):瞳孔大小调整。取值范围为 [0, 100],默认值为 0。值越大,放大效果越明显。 + + + + (205):内眼角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (206):外眼角调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (300):鼻子长度调整。取值范围为 [-100, 100],默认值为 0。 + + + + (301):鼻子宽度调整。取值范围为 [0, 100],默认值为 0。值越大,变窄效果越明显。 + + + + (302):鼻翼大小调整。取值范围为 [0, 100],默认值为 10。值越大,调整效果越明显。 + + + + (303):鼻根大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (304):鼻梁大小调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。 + + + + (305):鼻尖大小调整。取值范围为 [0, 100],默认值为 50。值越大,调整效果越明显。 + + + + (306):整体鼻子大小调整。取值范围为 [-100, 100],默认值为 50。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (400):嘴巴大小调整。取值范围为 [-100, 100],默认值为 20。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (401):嘴巴位置调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (402):嘴角上扬程度调整。取值范围为 [0, 100],默认值为 30。值越大,微笑效果越明显。 + + + + (403):嘴唇大小调整。取值范围为 [0, 100],默认值为 0。值越大,调整效果越明显。 + + + + (500):眉毛位置调整。取值范围为 [-100, 100],默认值为 0。绝对值越大,调整效果越明显,负值表示相反方向。 + + + + (501):眉毛粗细调整。取值范围为 [-100, 100],默认值为 0。值越大,变粗效果越明显。 +
    diff --git a/dita/RTC-NG/API/enum_faceshapebeautystyle.dita b/dita/RTC-NG/API/enum_faceshapebeautystyle.dita index 1eb5229b747..0d980d53e93 100644 --- a/dita/RTC-NG/API/enum_faceshapebeautystyle.dita +++ b/dita/RTC-NG/API/enum_faceshapebeautystyle.dita @@ -1,14 +1,14 @@ - + - <ph keyref="FACE_SHAPE_BEAUTY_STYLE" /> - 美型风格。 + <ph keyref="FACE_SHAPE_BEAUTY_STYLE"/> + 美型风格选项。
    -
    自从
    -
    v4.5.0
    +
    自从:
    +
    自 v4.4.0 版本新增。
    @@ -23,6 +23,18 @@ 1: 男性风格。 + + + (2):自然风格的美型效果,仅对面部特征进行最小程度的调整。 + + + + (2):自然美型风格。 + + + + (2):自然美型风格。 +
    diff --git a/dita/RTC-NG/API/enum_multipathmode.dita b/dita/RTC-NG/API/enum_multipathmode.dita new file mode 100644 index 00000000000..37f2e909dd0 --- /dev/null +++ b/dita/RTC-NG/API/enum_multipathmode.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="MultipathMode"/> + 数据在多个网络路径上的传输方式。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (0):将相同的数据冗余发送至所有可用路径。 + (0):冗余发送模式,数据同时通过多个路径发送。 + (0):冗余发送模式,数据同时通过多条路径发送,提升传输的冗余性和可靠性。 + + + + 数据仅通过内部算法判定为传输质量最优的路径进行发送。 + (1):动态发送模式,SDK 动态选择最佳路径进行数据传输。 + (1):动态发送模式,SDK 根据当前网络状况动态选择最佳路径进行数据传输,提升传输性能。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_multipathtype.dita b/dita/RTC-NG/API/enum_multipathtype.dita new file mode 100644 index 00000000000..8ce825f6576 --- /dev/null +++ b/dita/RTC-NG/API/enum_multipathtype.dita @@ -0,0 +1,44 @@ + + + + <ph keyref="MultipathType"/> + 多路径传输中使用的网络路径类型。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (0):局域网(LAN)路径。 + (0):LAN 类型,表示数据通过局域网传输。 + (0):局域网类型,表示数据通过局域网传输。适用于高速、低延迟的连接。 + + + + (1):Wi-Fi 路径。 + (1):WIFI 类型,表示数据通过 Wi-Fi 网络传输。 + (1):Wi-Fi 类型,表示数据通过 Wi-Fi 网络传输。适用于延迟适中的无线连接。 + + + + (2):移动网络路径。 + (2):Mobile 类型,表示数据通过移动网络传输。 + (2):移动网络类型,表示数据通过移动网络传输。适用于延迟较高且连接不稳定的场景。 + + + + (99):未知或未指定的网络路径。 + (99):未知类型,表示无法识别的网络路径类型。 + (99):未知类型,表示无法识别的路径类型。可用于错误处理或回退场景。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_renewtokenerrorcode.dita b/dita/RTC-NG/API/enum_renewtokenerrorcode.dita new file mode 100644 index 00000000000..b7c5d1f7a56 --- /dev/null +++ b/dita/RTC-NG/API/enum_renewtokenerrorcode.dita @@ -0,0 +1,56 @@ + + + + <ph keyref="RENEW_TOKEN_ERROR_CODE"/> + 表示调用 后的错误码。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (0):Token 更新成功。 + + + + (1):Token 更新失败。建议用户生成新的 Token 并重新调用 + (1):Token 更新失败。建议用户生成新的 Token 并重试 + + + + (2):Token 更新失败,原因是提供的 Token 已过期。建议用户生成一个过期时间更长的新 Token 并重新调用 + (2):Token 更新失败,原因是提供的 Token 已过期。建议用户生成一个过期时间更长的新 Token 并重试 + + + + (3):Token 更新失败,原因是提供的 Token 无效。建议用户检查 Token 的生成流程,生成新的 Token 并重新调用 + (3):Token 更新失败,原因是传入的 Token 无效。建议用户检查 Token 的生成流程,生成新的 Token 并重试 + (3):Token 更新失败,原因是提供的 Token 无效。建议用户检查 Token 的生成过程,生成新的 Token 并重试 + + + + (4):Token 更新失败,原因是 Token 中的频道名与当前频道不一致。建议用户检查频道名,生成新的 Token 并重新调用 + (4):Token 更新失败,原因是 Token 中的频道名与当前频道不一致。建议用户检查频道名,生成新的 Token 并重试 + + + + (5):Token 更新失败,原因是 Token 中的 App ID 与当前 App ID 不一致。建议用户检查 App ID,生成新的 Token 并重新调用 + (5):Token 更新失败,原因是 Token 中的 App ID 与当前 App ID 不一致。建议用户检查 App ID,生成新的 Token 并重试 + + + + (6):Token 更新请求因发起了新的请求而被取消。 + (6):Token 更新请求被取消,原因是发起了新的请求。 + (6):Token 更新被取消,原因是发起了新的请求,前一个请求被取消。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_screencolortype.dita b/dita/RTC-NG/API/enum_screencolortype.dita new file mode 100644 index 00000000000..6f2049c3bcf --- /dev/null +++ b/dita/RTC-NG/API/enum_screencolortype.dita @@ -0,0 +1,29 @@ + + + + <ph keyref="SCREEN_COLOR_TYPE"/> + 屏幕颜色类型。 + +
    +
    +
    + 枚举值 + + + + (0):自动选择屏幕颜色。 + (0):自动选择屏幕颜色类型。 + + + + (1):绿色屏幕。 + (1):使用绿色作为屏幕颜色类型。 + + + + (2):蓝色屏幕。 + (2):使用蓝色作为屏幕颜色类型。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_streamlayerindex.dita b/dita/RTC-NG/API/enum_streamlayerindex.dita new file mode 100644 index 00000000000..3c386299a57 --- /dev/null +++ b/dita/RTC-NG/API/enum_streamlayerindex.dita @@ -0,0 +1,60 @@ + + + + <ph keyref="StreamLayerIndex"/> + 多质量层级视频流的索引。 + +
    +
    +
    + 枚举值 + + + + (0):layer_1 的多质量层级视频流,分辨率和码率低于 STREAM_HIGH + (0):layer_1 视频流,分辨率和码率低于 STREAM_HIGH + + + + (1):layer_2 的多质量层级视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_1 + (1):layer_2 视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_1 + (1):layer_2 的多质量层级视频流,分辨率和码率低于 + + + + (2):layer_3 的多质量层级视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_2 + (2):layer_3 视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_2 + (2):layer_3 的多质量层级视频流,分辨率和码率低于 + + + + (3):layer_4 的多质量层级视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_3 + (3):layer_4 视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_3 + (3):layer_4 的多质量层级视频流,分辨率和码率低于 + + + + (4):layer_5 的多质量层级视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_4 + (4):layer_5 视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_4 + (4):layer_5 的多质量层级视频流,分辨率和码率低于 + + + + (5):layer_6 的多质量层级视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_5 + (5):layer_6 视频流,分辨率和码率低于 VIDEO_STREAM_LAYER_5 + (5):layer_6 的多质量层级视频流,分辨率和码率低于 + + + + (6):低质量的视频流,分辨率和码率最低。 + (6):低质量视频流,分辨率和码率最低。 + (6):低质量视频流,具有最低的分辨率和码率。 + + + + (7):多质量层级视频流的最大层数。 + (7):视频流层级的最大数量。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_videoeffectaction.dita b/dita/RTC-NG/API/enum_videoeffectaction.dita new file mode 100644 index 00000000000..20db7010c90 --- /dev/null +++ b/dita/RTC-NG/API/enum_videoeffectaction.dita @@ -0,0 +1,31 @@ + + + + <ph keyref="VIDEO_EFFECT_ACTION"/> + 可对视频特效节点执行的操作。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (1):保存当前视频特效的参数。 + (1):保存当前视频特效节点的参数。 + + + + (2):将视频特效重置为默认参数。 + (2):重置视频特效为默认参数。 + (2):将视频特效节点重置为默认参数。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_videoeffectnodeid.dita b/dita/RTC-NG/API/enum_videoeffectnodeid.dita new file mode 100644 index 00000000000..c1b2960b2c7 --- /dev/null +++ b/dita/RTC-NG/API/enum_videoeffectnodeid.dita @@ -0,0 +1,32 @@ + + + + <ph keyref="VIDEO_EFFECT_NODE_ID"/> + 可应用的视频特效节点类型。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (1):美颜特效节点。 + + + + (2):风格妆特效节点。 + + + + (4):滤镜特效节点。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_videomoduletype.dita b/dita/RTC-NG/API/enum_videomoduletype.dita new file mode 100644 index 00000000000..d1eb410cd1f --- /dev/null +++ b/dita/RTC-NG/API/enum_videomoduletype.dita @@ -0,0 +1,38 @@ + + + + <ph keyref="VIDEO_MODULE_TYPE"/> + 用于定义视频模块类型。 + +
    +
    +
    + 枚举值 + + + + (0):视频采集模块。 + + + + (1):视频软件编码模块。 + + + + (2):视频硬件编码模块。 + + + + (3):视频软件解码模块。 + + + + (4):视频硬件解码模块。 + + + + (5):视频渲染模块。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_watermarkbufferformat.dita b/dita/RTC-NG/API/enum_watermarkbufferformat.dita new file mode 100644 index 00000000000..e23534706b9 --- /dev/null +++ b/dita/RTC-NG/API/enum_watermarkbufferformat.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="WatermarkBufferFormat"/> + 水印缓冲区的数据格式。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (1):水印缓冲区使用 I420 格式。 + + + + (2):水印缓冲区使用 BGRA 格式。 + + + + (3):水印缓冲区使用 NV21 格式。 + + + + (4):水印缓冲区使用 RGBA 格式。 + + +
    +
    diff --git a/dita/RTC-NG/API/enum_watermarksourcetype.dita b/dita/RTC-NG/API/enum_watermarksourcetype.dita new file mode 100644 index 00000000000..0abf8fe4d3c --- /dev/null +++ b/dita/RTC-NG/API/enum_watermarksourcetype.dita @@ -0,0 +1,36 @@ + + + + <ph keyref="WATERMARK_SOURCE_TYPE"/> + 水印源的类型。 + +
    +
    + +
    自从:
    +
    自 v4.6.0 版本新增。
    +
    +
    +
    +
    + 枚举值 + + + + (0):水印源为图像。 + + + + (1):水印源为缓冲区。 + + + + (2):水印源为文本。 + + + + (3):水印源为时间戳。 + + +
    +
    diff --git a/dita/RTC-NG/API/rtc_api_data_type.dita b/dita/RTC-NG/API/rtc_api_data_type.dita index a897b554079..145720df9bb 100644 --- a/dita/RTC-NG/API/rtc_api_data_type.dita +++ b/dita/RTC-NG/API/rtc_api_data_type.dita @@ -154,6 +154,11 @@
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +