From 2366de0cf1847546ccc1ca4513f78d0103bbfa13 Mon Sep 17 00:00:00 2001 From: Suri539 Date: Wed, 13 Nov 2024 18:16:52 +0800 Subject: [PATCH] delete redundant dita files --- ...pi_irtcengine_getfaceshapeareaoptions.dita | 95 - ...i_irtcengine_getfaceshapeareaoptions2.dita | 58 - ..._irtcengine_getfaceshapebeautyoptions.dita | 73 - ...irtcengine_getfaceshapebeautyoptions2.dita | 56 - ...pi_irtcengine_setfaceshapeareaoptions.dita | 71 - ...i_irtcengine_setfaceshapeareaoptions2.dita | 69 - ..._irtcengine_setfaceshapebeautyoptions.dita | 85 - ...irtcengine_setfaceshapebeautyoptions2.dita | 71 - .../API/class_faceshapeareaoptions.dita | 96 - .../API/class_faceshapebeautyoptions.dita | 62 - en-US/dita/RTC-NG/API/enum_faceshapearea.dita | 72 - .../RTC-NG/API/enum_faceshapebeautystyle.dita | 28 - .../RTC-NG/API/api_imediaplayer_mute.dita | 57 - .../API/api_irtcengine_enableencryption.dita | 74 - .../API/api_irtcengine_enableextension.dita | 102 - .../api_irtcengine_enablefacedetection.dita | 67 - .../api_irtcengine_enablevoiceaituner.dita | 72 - .../api_irtcengine_getextensionproperty.dita | 66 - .../api_irtcengine_getextensionproperty2.dita | 107 - ...gine_querycamerafocallengthcapability.dita | 74 - .../api_irtcengine_querycodeccapability.dita | 78 - .../API/api_irtcengine_registerextension.dita | 96 - .../api_irtcengine_setextensionproperty.dita | 98 - ...tcengine_setextensionproviderproperty.dita | 76 - ...cengine_startscreencapturebydisplayid.dita | 98 - ...tcengine_startscreencapturebywindowid.dita | 235 --- .../api_irtcengineex_enableencryptionex.dita | 75 - ...nthandler_onextensionerrorwithcontext.dita | 64 - ...nthandler_onextensioneventwithcontext.dita | 63 - ...handler_onextensionstartedwithcontext.dita | 42 - ...handler_onextensionstoppedwithcontext.dita | 42 - .../dita/RTC-NG/API/class_audiopcmframe.dita | 155 -- .../RTC-NG/API/class_audiotrackconfig.dita | 96 - .../RTC-NG/API/class_channelmediaoptions.dita | 1728 ----------------- .../RTC-NG/API/class_externalvideoframe.dita | 514 ----- .../class_imediafilterextensiondelegate.dita | 30 - .../API/class_mediarecorderconfiguration.dita | 242 --- .../RTC-NG/API/class_recorderstreaminfo.dita | 104 - .../API/class_screencaptureconfiguration.dita | 182 -- .../API/class_screencapturesourceinfo.dita | 266 --- .../API/class_videoencoderconfiguration.dita | 677 ------- .../dita/RTC-NG/API/class_videoframe.dita | 910 --------- .../API/class_videosubscriptionoptions.dita | 133 -- 43 files changed, 7459 deletions(-) delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions2.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions2.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions2.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions2.dita delete mode 100644 en-US/dita/RTC-NG/API/class_faceshapeareaoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/class_faceshapebeautyoptions.dita delete mode 100644 en-US/dita/RTC-NG/API/enum_faceshapearea.dita delete mode 100644 en-US/dita/RTC-NG/API/enum_faceshapebeautystyle.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_imediaplayer_mute.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableencryption.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableextension.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablefacedetection.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablevoiceaituner.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty2.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycamerafocallengthcapability.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycodeccapability.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_registerextension.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproperty.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproviderproperty.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebydisplayid.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebywindowid.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/api_irtcengineex_enableencryptionex.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_audiopcmframe.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_audiotrackconfig.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_channelmediaoptions.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_externalvideoframe.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_imediafilterextensiondelegate.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_mediarecorderconfiguration.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_recorderstreaminfo.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_screencaptureconfiguration.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_screencapturesourceinfo.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_videoframe.dita delete mode 100644 en-US/en-US/dita/RTC-NG/API/class_videosubscriptionoptions.dita diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions.dita b/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions.dita deleted file mode 100644 index fb9d1f292b3..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions.dita +++ /dev/null @@ -1,95 +0,0 @@ - - - - <ph keyref="getFaceShapeAreaOptions" /> - 获取美型部位选项。 - - - - - - - - -
-

- public abstract FaceShapeAreaOptions getFaceShapeAreaOptions( - int shapeArea, Constants.MediaSourceType sourceType); - - - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeAreaOptions(_:sourceType:)); - virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

调用该方法可以获取美型部位当前设置的参数信息。

-
-
- Applicable scenarios -

用户在 App 中打开美型部位和修饰力度菜单时,你可以调用该方法获取当前的美型部位选项,然后根据结果刷新用户界面中的菜单,并更新 UI。

-
-
- Call timing -

Call this method after calling .

-
-
- Restrictions -

None.

-
-
- Parameters - - - shapeArea - area - -

Facial enhancement areas. See .

-

Facial enhancement areas.

    -
  • (-1):(默认)无效部位,美型不生效。
  • -
  • 0: Head, used to achieve a smaller head effect. The corresponding adjustment range is [0,100]; the larger the value, the smaller the head becomes, with a preset value of 100.
  • -
  • 1: Forehead, which adjusts the height of the hairline. The corresponding adjustment range is [-100,100]; positive values makes the hairline higher, while negative values make it lower. The larger the value, the stronger the enhancement effect, with a preset value of 20.
  • -
  • 2: Face contour, used to achieve a slimmer face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the slimming effect, with a preset value of 10.
  • -
  • 3: Face length, used to achieve a longer face effect. The corresponding adjustment range is [-100,100]; positive values elongate the face, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of 0.
  • -
  • 4: Face width, used to achieve a narrower face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the narrowing effect, with a preset value of 10.
  • -
  • 5: Cheekbone, used to adjust the cheekbone width. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheekbones., with a preset set value of 43.
  • -
  • 6: Cheeks, used to adjust the cheeks width. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheeks, with a preset value of 50.
  • -
  • 7: Chin, used to adjust the chin length. The corresponding adjustment range is [-100,100]; positive values elongate the chin, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of -20.
  • -
  • 8:Eyes, used to achieve a larger eye effect. 对应修饰力度范围为 [0,100],值越大,眼睛越大,预设值为 53。
  • -
  • 9: Nose length, used to achieve a longer nose effect. The corresponding adjustment range is [-100,100]; positive values elongate the nose, while negative values shorten it. The larger the absolute value, the stronger the enhancement effect, with a preset value of -10.
  • -
  • 10: Nose width, used to achieve a slimmer nose effect. 对应修饰力度范围为 [-100,100],正值为变宽,负值为变窄,绝对值越大修饰效果越强,预设值为 72。
  • -
  • (11):嘴巴,修饰嘴巴大小。 The corresponding adjustment range is [-100,100]; positive values enlarge the mouth, while negative values make it smaller. The larger the absolute value, the stronger the enhancement effect, with a preset value of 20.
  • -
-

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • A pointer to the instance, if the method call succeeds.
  • -
  • , if the method call fails.
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions2.dita b/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions2.dita deleted file mode 100644 index d5f801f434a..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapeareaoptions2.dita +++ /dev/null @@ -1,58 +0,0 @@ - - - - <ph keyref="getFaceShapeAreaOptions2" /> - 获取美型部位选项。 - - - - - - - - -
-

- public abstract FaceShapeAreaOptions getFaceShapeAreaOptions(int shapeArea); - - - (AgoraFaceShapeAreaOptions * _Nullable)getFaceShapeAreaOptions:(AgoraFaceShapeArea) area NS_SWIFT_NAME(getFaceShapeAreaOptions(_:)); - - - - - -

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • A pointer to the instance, if the method call succeeds.
  • -
  • , if the method call fails.
  • -
- - diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions.dita b/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions.dita deleted file mode 100644 index fe994e723c4..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions.dita +++ /dev/null @@ -1,73 +0,0 @@ - - - - <ph keyref="getFaceShapeBeautyOptions" /> - 获取美型效果选项。 - - - - - - - - -
-

- public abstract FaceShapeBeautyOptions getFaceShapeBeautyOptions( - Constants.MediaSourceType sourceType); - - - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeBeautyOptions(_:)); - virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

调用该方法可以获取美型效果当前设置的参数信息。

-
-
- Applicable scenarios -

用户在 App 中打开美型风格和风格强度菜单时,你可以调用该方法获取当前的美型效果选项,然后根据结果刷新用户界面中的菜单,并更新 UI。

-
-
- Call timing -

Call this method after calling .

-
-
- Restrictions -

None.

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • A pointer to the instance, if the method call succeeds.
  • -
  • , if the method call fails.
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions2.dita b/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions2.dita deleted file mode 100644 index e6fa873a3f5..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_getfaceshapebeautyoptions2.dita +++ /dev/null @@ -1,56 +0,0 @@ - - - - <ph keyref="getFaceShapeBeautyOptions" /> - 获取美型效果选项。 - - - - - - - - -
-

- public abstract FaceShapeBeautyOptions getFaceShapeBeautyOptions( - Constants.MediaSourceType sourceType); - - - (AgoraFaceShapeBeautyOptions * _Nullable)getFaceShapeBeautyOptions:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(getFaceShapeBeautyOptions(_:)); - virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • A pointer to the instance, if the method call succeeds.
  • -
  • , if the method call fails.
  • -
- - diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions.dita b/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions.dita deleted file mode 100644 index bc5cb113748..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions.dita +++ /dev/null @@ -1,71 +0,0 @@ - - - - <ph keyref="setFaceShapeAreaOptions" /> - Sets the image enhancement options and specifies the media source. - - - - - - - - -
-

- public abstract int setFaceShapeAreaOptions( - FaceShapeAreaOptions options, Constants.MediaSourceType sourceType); - - - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeAreaOptions(_:sourceType:)); - virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

如果在 方法中实现的预设美型效果达不到预期,你可以通过该方法设置美型部位选项,对人脸的各个部位单独微调,实现更加精细的美型效果,详见

-

该方法和 均可用于设置美型部位选项,区别在于该方法支持指定应用美型效果的媒体源。

- -
-
- Call timing -

Call this method after calling or .

-
-
-
-
- Parameters - - - options - 美型部位选项,详见 - - - - - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -4: The current device does not support this feature. Possible reasons include:
        -
      • The current device capabilities do not meet the requirements for image enhancement. Agora recommends you replace it with a high-performance device.
      • -
      • The current device version is lower than Android 5.0 and does not support this feature. Agora recommends you replace the device or upgrade the operating system.
      • -
      -
    • -
    -
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions2.dita b/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions2.dita deleted file mode 100644 index b931fcc29af..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapeareaoptions2.dita +++ /dev/null @@ -1,69 +0,0 @@ - - - - <ph keyref="setFaceShapeAreaOptions" /> - 设置美型部位选项。 - - - - - - - - -
-

- public abstract int setFaceShapeAreaOptions(FaceShapeAreaOptions options); - - - (int)setFaceShapeAreaOptions:(AgoraFaceShapeAreaOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeAreaOptions(_:sourceType:)); - virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

如果在 方法中实现的预设美型效果达不到预期,你可以通过该方法设置美型部位选项,对人脸的各个部位单独微调,实现更加精细的美型效果,详见

- -
-
- Call timing -

Call this method after calling or .

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -4: The current device does not support this feature. Possible reasons include:
        -
      • The current device capabilities do not meet the requirements for image enhancement. Agora recommends you replace it with a high-performance device.
      • -
      • The current device version is lower than Android 5.0 and does not support this feature. Agora recommends you replace the device or upgrade the operating system.
      • -
      -
    • -
    -
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions.dita b/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions.dita deleted file mode 100644 index 3ff5a335f9e..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions.dita +++ /dev/null @@ -1,85 +0,0 @@ - - - - <ph keyref="setFaceShapeBeautyOptions" /> - Sets the image enhancement options and specifies the media source. - - - - - - - - -
-

- public abstract int setFaceShapeBeautyOptions( - boolean enabled, FaceShapeBeautyOptions options, Constants.MediaSourceType sourceType); - - - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:sourceType:)); - virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0; - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

调用该方法可对人脸各部位进行修饰,使用预设的参数一次性实现瘦脸、大眼、瘦鼻等微整形效果,支持微调整体的修饰力度,详见

-

该方法和 均可用于设置美型效果选项,区别在于该方法支持指定应用美型效果的媒体源。

- 美型属于增值服务,计费方式详见 -
-
- Call timing -

Call this method after calling .

-
-
- Restrictions -
    -
  • This method only applies to Android 4.4 or later.
  • -
  • This method relies on the image enhancement dynamic library . If the dynamic library is deleted, the function cannot be enabled normally.
  • -
  • This feature has high requirements on device performance. When calling this method, the SDK automatically checks the capabilities of the current device.
  • -
-
-
- Parameters - - - enabled - enable - 是否开启美型效果:
    -
  • : Enable the image enhancement function.
  • -
  • : (Default) Disable the image enhancement function.
  • -
-
- - options - 美型风格选项,详见 - - - - - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -4: The current device does not support this feature. Possible reasons include:
        -
      • The current device capabilities do not meet the requirements for image enhancement. Agora recommends you replace it with a high-performance device.
      • -
      • The current device version is lower than Android 5.0 and does not support this feature. Agora recommends you replace the device or upgrade the operating system.
      • -
      -
    • -
    -
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions2.dita b/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions2.dita deleted file mode 100644 index 5d4b93c21a4..00000000000 --- a/en-US/dita/RTC-NG/API/api_irtcengine_setfaceshapebeautyoptions2.dita +++ /dev/null @@ -1,71 +0,0 @@ - - - - <ph keyref="setFaceShapeBeautyOptions2" /> - Sets the image enhancement options. - - - - - - - - -
-

- public abstract int setFaceShapeBeautyOptions(boolean enabled, FaceShapeBeautyOptions options); - - - (int)setFaceShapeBeautyOptions:(BOOL)enable options:(AgoraFaceShapeBeautyOptions* _Nullable)options NS_SWIFT_NAME(setFaceShapeBeautyOptions(_:options:)); - - - - - -

-
-
-
- -
Since
-
v4.5.0
-
-
-

调用该方法可对脸部指定部位进行调整,从而实现瘦脸、大眼、瘦鼻等微整形效果,详见

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -4: The current device does not support this feature. Possible reasons include:
        -
      • The current device capabilities do not meet the requirements for image enhancement. Agora recommends you replace it with a high-performance device.
      • -
      • The current device version is lower than Android 5.0 and does not support this feature. Agora recommends you replace the device or upgrade the operating system.
      • -
      -
    • -
    -
  • -
-
-
diff --git a/en-US/dita/RTC-NG/API/class_faceshapeareaoptions.dita b/en-US/dita/RTC-NG/API/class_faceshapeareaoptions.dita deleted file mode 100644 index a4335222b07..00000000000 --- a/en-US/dita/RTC-NG/API/class_faceshapeareaoptions.dita +++ /dev/null @@ -1,96 +0,0 @@ - - - - <ph keyref="FaceShapeAreaOptions" /> - Filter effect options. - -
-

- public class FaceShapeAreaOptions { - public static final int FACE_SHAPE_AREA_NONE = -1; - public static final int FACE_SHAPE_AREA_HEADSCALE = 0; - public static final int FACE_SHAPE_AREA_FOREHEAD = 1; - public static final int FACE_SHAPE_AREA_FACECONTOUR = 2; - public static final int FACE_SHAPE_AREA_FACELENGTH = 3; - public static final int FACE_SHAPE_AREA_FACEWIDTH = 4; - public static final int FACE_SHAPE_AREA_CHEEKBONE = 5; - public static final int FACE_SHAPE_AREA_CHEEK = 6; - public static final int FACE_SHAPE_AREA_CHIN = 7; - public static final int FACE_SHAPE_AREA_EYESCALE = 8; - public static final int FACE_SHAPE_AREA_NOSELENGTH = 9; - public static final int FACE_SHAPE_AREA_NOSEWIDTH = 10; - public static final int FACE_SHAPE_AREA_MOUTHSCALE = 11; - - public int shapeArea; - public int shapeIntensity; - -} - - __attribute__((visibility("default"))) @interface AgoraFaceShapeAreaOptions : NSObject -@property(nonatomic, assign) AgoraFaceShapeArea shapeArea; -@property(nonatomic, assign) int shapeIntensity; -@end - struct FaceShapeAreaOptions { - enum FACE_SHAPE_AREA { - FACE_SHAPE_AREA_NONE = -1, - FACE_SHAPE_AREA_HEADSCALE = 0, - FACE_SHAPE_AREA_FOREHEAD = 1, - FACE_SHAPE_AREA_FACECONTOUR = 2, - FACE_SHAPE_AREA_FACELENGTH = 3, - FACE_SHAPE_AREA_FACEWIDTH = 4, - FACE_SHAPE_AREA_CHEEKBONE = 5, - FACE_SHAPE_AREA_CHEEK = 6, - FACE_SHAPE_AREA_CHIN = 7, - FACE_SHAPE_AREA_EYESCALE = 8, - FACE_SHAPE_AREA_NOSELENGTH = 9, - FACE_SHAPE_AREA_NOSEWIDTH = 10, - FACE_SHAPE_AREA_MOUTHSCALE = 11, - }; - - FACE_SHAPE_AREA shapeArea; - int shapeIntensity; - - FaceShapeAreaOptions(FACE_SHAPE_AREA shapeArea, int areaIntensity) : shapeArea(shapeArea), shapeIntensity(areaIntensity) {} - - FaceShapeAreaOptions() : shapeArea(FACE_SHAPE_AREA_NONE), shapeIntensity(0) {} -}; - - - - - -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - - shapeArea - -

Facial enhancement areas:

-

Facial enhancement areas.

    -
  • -1: (Default) Invalid area; facial enhancement effects do not take effect.
  • -
  • 0: Head, used to achieve a smaller head effect. The corresponding adjustment range is [0,100]; the larger the value, the smaller the head becomes, with a preset value of 100.
  • -
  • 1: Forehead, which adjusts the height of the hairline. The corresponding adjustment range is [-100,100]; positive values makes the hairline higher, while negative values make it lower. The larger the value, the stronger the enhancement effect, with a preset value of 20.
  • -
  • 2: Face contour, used to achieve a slimmer face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the slimming effect, with a preset value of 10.
  • -
  • 3: Face length, used to achieve a longer face effect. The corresponding adjustment range is [-100,100]; positive values elongate the face, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of 0.
  • -
  • 4: Face width, used to achieve a narrower face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the narrowing effect, with a preset value of 10.
  • -
  • 5: Cheekbone, used to adjust the cheekbone width. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheekbones., with a preset set value of 43.
  • -
  • 6: Cheeks, used to adjust the cheeks width. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheeks, with a preset value of 50.
  • -
  • 7: Chin, used to adjust the chin length. The corresponding adjustment range is [-100,100]; positive values elongate the chin, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of -20.
  • -
  • 8:Eyes, used to achieve a larger eye effect. The corresponding adjustment range is [0,100]; the larger the value, the larger the eye size, with a preset value of 53.
  • -
  • 9: Nose length, used to achieve a longer nose effect. The corresponding adjustment range is [-100,100]; positive values elongate the nose, while negative values shorten it. The larger the absolute value, the stronger the enhancement effect, with a preset value of -10.
  • -
  • 10: Nose width, used to achieve a slimmer nose effect. The corresponding adjustment range is [-100,100]; positive values make the nose wider, while negative values make it narrower. The larger the absolute value, the stronger the enhancement effect, with a preset value of 72.
  • -
  • 11: Mouth, used to adjust the size of the mouth. The corresponding adjustment range is [-100,100]; positive values enlarge the mouth, while negative values make it smaller. The larger the absolute value, the stronger the enhancement effect, with a preset value of 20.
  • -
-

-
-
- - shapeIntensity - The intensity of the enhancement. The enhancement intensity, such as its orientation, range, and preset value, varies according to the different areas. For details, see descriptions in shapeArea. See . - -
-
-
\ No newline at end of file diff --git a/en-US/dita/RTC-NG/API/class_faceshapebeautyoptions.dita b/en-US/dita/RTC-NG/API/class_faceshapebeautyoptions.dita deleted file mode 100644 index 7a816c01138..00000000000 --- a/en-US/dita/RTC-NG/API/class_faceshapebeautyoptions.dita +++ /dev/null @@ -1,62 +0,0 @@ - - - - <ph keyref="FaceShapeBeautyOptions" /> - The face shape beauty style options. - -
-

- public class FaceShapeBeautyOptions { - public static final int FACE_SHAPE_BEAUTY_STYLE_FEMALE = 0; - public static final int FACE_SHAPE_BEAUTY_STYLE_MALE = 1; - - public int shapeStyle; - public int styleIntensity; -} - - __attribute__((visibility("default"))) @interface AgoraFaceShapeBeautyOptions: NSObject -@property(nonatomic, assign) AgoraFaceShapeStyle shapeStyle; -@property(nonatomic, assign) int styleIntensity; -@end - struct FaceShapeBeautyOptions { - enum FACE_SHAPE_BEAUTY_STYLE { - FACE_SHAPE_BEAUTY_STYLE_FEMALE = 0, - FACE_SHAPE_BEAUTY_STYLE_MALE = 1, - }; - - FACE_SHAPE_BEAUTY_STYLE shapeStyle; - - int styleIntensity; - - FaceShapeBeautyOptions(FACE_SHAPE_BEAUTY_STYLE shapeStyle, int styleIntensity) : shapeStyle(shapeStyle), styleIntensity(styleIntensity) {} - - FaceShapeBeautyOptions() : shapeStyle(FACE_SHAPE_BEAUTY_STYLE_FEMALE), styleIntensity(50) {} -}; - - - - -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - - shapeStyle - -

Face shape beauty style options: .

-

The face shape beauty style:

    -
  • (0): (Default) Female.
  • -
  • (1): Male.
  • -
-

-
-
- - styleIntensity - The intensity of the face shape beauty style, with a value range oof [0.0,0.1]. The default value is 0.0, which means no face shape beauty effect. The higher the value, the more obvious the face shape beauty effect. - -
-
-
\ No newline at end of file diff --git a/en-US/dita/RTC-NG/API/enum_faceshapearea.dita b/en-US/dita/RTC-NG/API/enum_faceshapearea.dita deleted file mode 100644 index 5dc3244128b..00000000000 --- a/en-US/dita/RTC-NG/API/enum_faceshapearea.dita +++ /dev/null @@ -1,72 +0,0 @@ - - - - <ph keyref="FACE_SHAPE_AREA" /> - Facial enhancement areas. - -
-
- -
Since
-
v4.5.0
-
-
-
-
- Enumerator - - - - -1: (Default) Invalid area; facial enhancement effects do not take effect. - - - - 0: Head, used to achieve a small head effect. The corresponding adjustment range is [0,100]; the larger the value, the smaller the head becomes, with a preset value of 100. - - - - 1: Forehead, adjusts the height of the hairline. The corresponding adjustment range is [-100,100]; positive values raise the hairline (making the forehead narrower), while negative values lower the hairline (making the forehead wider). The larger the absolute value, the stronger the enhancement effect, with a preset value of 50. - - - - 2: Face contour, used to achieve a slimmer face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the slimming effect, with a preset value of 10. - - - - 3: Face length, used to achieve a longer face effect. The corresponding adjustment range is [-100,100]; positive values elongate the face, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of 0. - - - - 4: Face width, used to achieve a narrower face effect. The corresponding adjustment range is [0,100]; the larger the value, the stronger the narrowing effect, with a preset value of 10. - - - - 5: Cheekbones, adjusts the width of the cheekbones. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheekbones., with a preset set value of 43. - - - - 6: Cheeks, adjusts the width of the cheeks. The corresponding adjustment range is [0,100]; the larger the value, the narrower the cheeks, with a preset value of 50. - - - - 7: Chin, adjusts the length of the chin. The corresponding adjustment range is [-100,100]; positive values elongate the chin, while negative values shorten it. The larger the value, the stronger the enhancement effect, with a preset value of -20. - - - - 8:Eyes, used to achieve a larger eye effect. The corresponding adjustment range is [0,100]; the larger the value, the larger the eye size, with a preset value of 53. - - - - 9: Nose length, used to achieve a longer nose effect. The corresponding adjustment range is [-100,100]; positive values elongate the nose, while negative values shorten it. The larger the absolute value, the stronger the enhancement effect, with a preset value of -10. - - - - 10: Nose width, used to achieve a slimmer nose effect. The corresponding adjustment range is [-100,100]; positive values make the nose wider, while negative values make it narrower. The larger the absolute value, the stronger the enhancement effect, with a preset value of 72. - - - - 11: Mouth, adjusts the size of the mouth. The corresponding adjustment range is [-100,100]; positive values enlarge the mouth, while negative values make it smaller. The larger the absolute value, the stronger the enhancement effect, with a preset value of 20. - - -
-
diff --git a/en-US/dita/RTC-NG/API/enum_faceshapebeautystyle.dita b/en-US/dita/RTC-NG/API/enum_faceshapebeautystyle.dita deleted file mode 100644 index 91fa74d66b6..00000000000 --- a/en-US/dita/RTC-NG/API/enum_faceshapebeautystyle.dita +++ /dev/null @@ -1,28 +0,0 @@ - - - - <ph keyref="FACE_SHAPE_BEAUTY_STYLE" /> - Facial enhancement styles. - -
-
- -
Since
-
v4.5.0
-
-
-
-
- Enumerator - - - - 0: (Default) Feminine style. - - - - 1: Masculine style. - - -
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_imediaplayer_mute.dita b/en-US/en-US/dita/RTC-NG/API/api_imediaplayer_mute.dita deleted file mode 100644 index 06e036c1d58..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_imediaplayer_mute.dita +++ /dev/null @@ -1,57 +0,0 @@ - - - - <ph keyref="mute" /> - Sets whether to mute the media file. - - - - - - - - -
-

- int mute(boolean muted); - public abstract mute(muted:boolean) : number; - - (int)mute:(bool)isMute NS_SWIFT_NAME(mute(_:)); - virtual int mute(bool muted) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer") - int Mute(bool muted); - abstract mute(muted: boolean): number; - public abstract int Mute(bool muted); - abstract mute(muted: boolean): number; - Future<void> mute(bool muted); -

-
-
-
- Call timing -

You can call this method either before or after joining a channel.

-
-
- Restrictions -

None.

-
-
- Parameters - - - muted - isMute - Whether to mute the media file:
    -
  • : Mute the media file.
  • -
  • : (Default) Unmute the media file.
  • -
-
-
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
- - diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableencryption.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableencryption.dita deleted file mode 100644 index 62a58acc581..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableencryption.dita +++ /dev/null @@ -1,74 +0,0 @@ - - - - <ph keyref="enableEncryption" /> - Enables or disables the built-in encryption. - - - - - - - - -
-

- public abstract int enableEncryption(boolean enabled, EncryptionConfig config); - public abstract enableEncryption(enabled: boolean, config: EncryptionConfig): number; - - (int)enableEncryption:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig * _Nonnull)config; - virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int EnableEncryption(bool enabled, const FEncryptionConfig& config); - abstract enableEncryption(enabled: boolean, config: EncryptionConfig): number; - public abstract int EnableEncryption(bool enabled, EncryptionConfig config); - abstract enableEncryption(enabled: boolean, config: EncryptionConfig): number; - Future<void> enableEncryption( - {required bool enabled, required EncryptionConfig config}); -

-
-
-

After the user leaves the channel, the SDK automatically disables the built-in encryption. To enable the built-in encryption, call this method before the user joins the channel again.

-
-
- Applicable scenarios -

Scenarios with higher security requirements.

-
-
- Call timing -

Call this method before joining a channel.

-
-
- Restrictions -
  • All users within the same channel must set the same encryption configurations when calling this method.
  • -
  • If you enable the built-in encryption, you cannot use the Media Push function.
-
-
- Parameters - - - enabled - -

Whether to enable built-in encryption:

    -
  • : Enable the built-in encryption.
  • -
  • : (Default) Disable the built-in encryption.
  • -

-
-
- - config - Built-in encryption configurations. See . - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure.
      -
    • -2: An invalid parameter is used. Set the parameter with a valid value.
    • -
    • -4: The built-in encryption mode is incorrect or the SDK fails to load the external encryption library. Check the enumeration or reload the external encryption library.
    • -
    • -7: The SDK is not initialized. Initialize the instance before calling this method.
    • -
  • -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableextension.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableextension.dita deleted file mode 100644 index fe8a01ad655..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enableextension.dita +++ /dev/null @@ -1,102 +0,0 @@ - - - - <ph keyref="enableExtension" /> - Enables or disables extensions. - - - - - - - - -
-

- public abstract int enableExtension( - String provider, String extension, boolean enable, Constants.MediaSourceType sourceType); - public abstract enableExtension(provider:string,extension:string,enable:boolean,extensionInfo:ExtensionInfo):number; - - (int)enableExtensionWithVendor:(NSString * _Nonnull)provider - extension:(NSString * _Nonnull)extension - enabled:(BOOL)enabled - sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(enableExtension(withVendor:extension:enabled:sourceType:)); - virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int EnableExtension(const FString& provider, const FString& extension, bool enable = true, EMEDIA_SOURCE_TYPE type = EMEDIA_SOURCE_TYPE::UNKNOWN_MEDIA_SOURCE); - abstract enableExtension( - provider: string, - extension: string, - enable?: boolean, - type?: MediaSourceType - ): number; - public abstract int EnableExtension(string provider, string extension, bool enable = true, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE); - abstract enableExtension( - provider: string, - extension: string, - enable?: boolean, - type?: MediaSourceType - ): number; - Future<void> enableExtension( - {required String provider, - required String extension, - bool enable = true, - MediaSourceType type = MediaSourceType.unknownMediaSource}); -

-
-
-

-

-
- Call timing -

Agora recommends that you call this method after joining a channel.

-
-
- Restrictions -
    -
  • If you want to enable multiple extensions, you need to call this method multiple times.
  • -
  • After a successful call of this method, you cannot load other extensions.
  • -
-
- -
- Parameters - - - - - - - - - - - enable - enabled - -

Whether to enable the extension:

    -
  • : Enable the extension.
  • -
  • : Disable the extension.
  • -

-
-
- - type - sourceType - Source type of the extension. See . - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -3: The extension library is not loaded. Agora recommends that you check the storage location or the name of the dynamic library.
    • -
    -
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablefacedetection.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablefacedetection.dita deleted file mode 100644 index d358e29e960..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablefacedetection.dita +++ /dev/null @@ -1,67 +0,0 @@ - - - - <ph keyref="enableFaceDetection" /> - Enables or disables face detection for the local user. - - - - - - - - -
-

- public abstract int enableFaceDetection(boolean enabled); - public abstract enableFaceDetection(enabled: boolean): number; - - (int)enableFaceDetection:(BOOL)enable NS_SWIFT_NAME(enableFaceDetection(_:)); - virtual int enableFaceDetection(bool enabled) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int EnableFaceDetection(bool enabled); - public abstract int EnableFaceDetection(bool enabled); - abstract enableFaceDetection(enabled: boolean): number; - abstract enableFaceDetection(enabled: boolean): number; - Future<void> enableFaceDetection(bool enabled); -

-
-
-

This method is for Android and iOS only.

-
-
- Call timing -

This method needs to be called after the camera is started (for example, by calling or ).

-
-
- Restrictions -

None.

-
- -
- Parameters - - - enable - enabled - Whether to enable face detection for the local user:
    -
  • : Enable face detection.
  • -
  • : (Default) Disable face detection.
  • -
-
-
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablevoiceaituner.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablevoiceaituner.dita deleted file mode 100644 index 64e12a5483b..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_enablevoiceaituner.dita +++ /dev/null @@ -1,72 +0,0 @@ - - - - <ph keyref="enableVoiceAITuner"/> - Enables or disables the voice AI tuner. - - - - - - - - -
-

- public abstract int enableVoiceAITuner(boolean enabled, Constants.VOICE_AI_TUNER_TYPE type); - - (int)enableVoiceAITuner:(BOOL)enabled type:(AgoraVoiceAITunerType)type NS_SWIFT_NAME(enableVoiceAITuner(_:type:)); - virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int EnableVoiceAITuner(bool enabled, EVOICE_AI_TUNER_TYPE type); - abstract enableVoiceAITuner(enabled: boolean, type: VoiceAiTunerType): number; - public abstract int EnableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type); - abstract enableVoiceAITuner(enabled: boolean, type: VoiceAiTunerType): number; - Future<void> enableVoiceAITuner( - {required bool enabled, required VoiceAiTunerType type});

-
-
-
- -
Since
-
v4.4.0
-
-
-

The voice AI tuner supports enhancing sound quality and adjusting tone style.

-
-
- Applicable scenarios -

Social entertainment scenes including online KTV, online podcast and live streaming in showrooms, where high sound quality is required.

-
-
- Call timing -

This method can be called either before or after joining the channel.

-
-
- Restrictions -

None.

-
-
- Parameters - - - enabled - Whether to enable the voice AI tuner:
    -
  • : Enables the voice AI tuner.
  • -
  • : (Default) Disable the voice AI tuner.
  • -
-
-
- - type - Voice AI tuner sound types, see . - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty.dita deleted file mode 100644 index 6d3c08659ac..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty.dita +++ /dev/null @@ -1,66 +0,0 @@ - - - - <ph keyref="getExtensionProperty" /> - Gets detailed information on the extensions. - - - - - - - - -
-

- public abstract String getExtensionProperty(String provider, String extension, String key); - - - - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider - extension:(NSString * _Nonnull)extension - key:(NSString * _Nonnull)key; - - - - - -

-
-
-
- Call timing -

This method can be called either before or after joining the channel.

-
-
- Restrictions -

None.

-
-
- Parameters - - - - - - - - - - - - - -
-
- Returns -
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • The extension information, if the method call succeeds.
  • -
  • An empty string, if the method call fails.
  • -
-
- - \ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty2.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty2.dita deleted file mode 100644 index 8c5ca3c2a6d..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_getextensionproperty2.dita +++ /dev/null @@ -1,107 +0,0 @@ - - - - <ph keyref="getExtensionProperty2"/> - Gets detailed information on the extensions. - - - - - - - - -
-

- public abstract String getExtensionProperty( - String provider, String extension, String key, Constants.MediaSourceType sourceType); - - - - (NSString * _Nullable)getExtensionPropertyWithVendor:(NSString * _Nonnull)provider - extension:(NSString * _Nonnull)extension - key:(NSString * _Nonnull)key - sourceType:(AgoraMediaSourceType)sourceType; - - virtual int getExtensionProperty( - const char* provider, const char* extension, - const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; - - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int GetExtensionProperty(const FString& provider, const FString& extension,const FExtensionInfo & ExtensionInfo, const FString& key, FString& value); - abstract getExtensionProperty( - provider: string, - extension: string, - key: string, - bufLen: number, - type?: MediaSourceType - ): string; - public abstract int GetExtensionProperty(string provider, string extension, string key, ref string value, int buf_len, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE); - abstract getExtensionProperty( - provider: string, - extension: string, - key: string, - bufLen: number, - type?: MediaSourceType - ): string; - Future<String> getExtensionProperty( - {required String provider, - required String extension, - required String key, - required int bufLen, - MediaSourceType type = MediaSourceType.unknownMediaSource}); -

-
-
-
- Call timing -

This method can be called either before or after joining the channel.

-
-
- Restrictions -

None.

-
-
- Parameters - - - provider - An output parameter. The name of the extension provider. - The name of the extension provider. - - - extension - An output parameter. The name of the extension. - The name of the extension. - - - key - An output parameter. The key of the extension. - The key of the extension. - - - value - An output parameter. The value of the extension key. - - - sourceType - type - Source type of the extension. See . - - - buf_len - bufLen - Maximum length of the JSON string indicating the extension property. The maximum value is 512 bytes. - -
-
- Returns -
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • The extension information, if the method call succeeds.
  • -
  • An empty string, if the method call fails.
  • -
- - diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycamerafocallengthcapability.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycamerafocallengthcapability.dita deleted file mode 100644 index 1b3def076b6..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycamerafocallengthcapability.dita +++ /dev/null @@ -1,74 +0,0 @@ - - - - <ph keyref="queryCameraFocalLengthCapability" /> - Queries the focal length capability supported by the camera. - - - - - - - - -
-

- public AgoraFocalLengthInfo[] queryCameraFocalLengthCapability(); - - - (NSArray<AgoraFocalLengthInfo *>* _Nullable)queryCameraFocalLengthCapability NS_SWIFT_NAME(queryCameraFocalLengthCapability()); - virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int QueryCameraFocalLengthCapability(const TArray<FFocalLengthInfo> & focalLengthInfos); - - public abstract int QueryCameraFocalLengthCapability(ref FocalLengthInfo[] focalLengthInfos, ref int size); - abstract queryCameraFocalLengthCapability(): { - focalLengthInfos: FocalLengthInfo[]; - size: number; - }; - Future<List<FocalLengthInfo>> queryCameraFocalLengthCapability(); -

-
-
- Details - -
- -
Since
-
v4.3.1
-
-
-

If you want to enable the wide-angle or ultra-wide-angle mode for camera capture, it is recommended to start by calling this method to check whether the device supports the required focal length capability. Then, adjust the camera's focal length configuration based on the query result by calling , ensuring the best camera capture performance.

- This method is for Android and iOS only.
-
- Parameters - - - focalLengthInfos - Input and output parameter. The pointer to an array of objects:
    -
  • Input value: The pointer to an array of objects, used to store focal length information.
  • -
  • Output value: After the method is executed, output the queried focal length information.
-
- An output parameter. After the method is executed, output an array of objects containing camera focal length information. -
- - size - Input and output parameter. The number of focal length information items:
    -
  • Input value: Specifies the maximum number of focal length information items that focalLengthInfos can hold. Ensure this value is not less than 8, meaning focalLengthInfos has space for at least 8 focal length information items.
  • -
  • Output value: After the method is executed, output the number of focal length information items retrieved.
-
- An output parameter. After the method is executed, output the number of focal length information items retrieved. -
-
-
- <ph keyref="return-section-title"/> -

Returns an array of objects, which contain the camera's orientation and focal length type.

-

Returns an object containing the following properties:

    -
  • focalLengthInfos: An array of objects, which contain the camera's orientation and focal length type.
  • -
  • size: The number of focal length information items retrieved.
-

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycodeccapability.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycodeccapability.dita deleted file mode 100644 index d1eaebbbc11..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_querycodeccapability.dita +++ /dev/null @@ -1,78 +0,0 @@ - - - - <ph keyref="queryCodecCapability"/> - Queries the video codec capabilities of the SDK. - - - - - - - - -
-

- public abstract CodecCapInfo[] queryCodecCapability(); - - - (NSArray <AgoraVideoCodecCapInfo *> *_Nullable)queryCodecCapability; - virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0; - - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int QueryCodecCapability(TArray<FCodecCapInfo> & codecInfo, int QuerySize = 10); - abstract queryCodecCapability(): { codecInfo: CodecCapInfo[]; size: number }; - public abstract int QueryCodecCapability(ref CodecCapInfo[] codecInfo, ref int size); - abstract queryCodecCapability(): { codecInfo: CodecCapInfo[]; size: number }; - Future<List<CodecCapInfo>> queryCodecCapability(int size);

-
-
- Details - -
- -
Since
-
v4.2.0
-
-
-

-

-
- Parameters - - - codecInfo - -

Input and output parameter. An array representing the video codec capabilities of the SDK. See .

-
    -
  • Input value: One defined by the user when executing this method, representing the video codec capability to be queried.
  • -
  • Output value: The after the method is executed, representing the actual video codec capabilities of the SDK.
  • -
-
-
- - size - Input and output parameter, represent the size of the array.
    -
  • Input value: Size of the defined by the user when executing the method.
  • -
  • Output value: Size of the output after this method is executed.
  • -
- The size of . -
-
-
- Returns -
    -
  • If the call is successful, an object containing the following attributes is returned:
      -
    • codecInfo: The array, indicating the video codec capabillity of the device.
    • -
    • size: The size of the array.
  • -
  • If the call timeouts, please modify the call logic and do not invoke the method in the main thread.
  • -
-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
    -
  • One array indicating the video encoding capability of the device, if the method call succeeds.
  • -
  • If the call timeouts, please modify the call logic and do not invoke the method in the main thread.
  • -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_registerextension.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_registerextension.dita deleted file mode 100644 index beeace6b14e..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_registerextension.dita +++ /dev/null @@ -1,96 +0,0 @@ - - - - <ph keyref="registerExtension"/> - Registers an extension. - - - - - - - - -
-

- public abstract int registerExtension( - String provider, String extension, Constants.MediaSourceType sourceType); - - - (int)registerExtensionWithVendor:(NSString * _Nonnull)provider - extension:(NSString * _Nonnull)extension - sourceType:(AgoraMediaSourceType)sourceType NS_SWIFT_NAME(registerExtension(withVendor:extension:sourceType:)); - virtual int registerExtension(const char* provider, const char* extension, - agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int RegisterExtension(const FString& provider, const FString& extension, EMEDIA_SOURCE_TYPE type); - abstract registerExtension( - provider: string, - extension: string, - type?: MediaSourceType - ): number; - public abstract int RegisterExtension(string provider, string extension, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE); - abstract registerExtension( - provider: string, - extension: string, - type?: MediaSourceType - ): number; - Future<void> registerExtension( - {required String provider, - required String extension, - MediaSourceType type = MediaSourceType.unknownMediaSource}); -

-
-
-
- -
Since
-
v4.1.0
-
-
-

For extensions external to the SDK (such as those from Extensions Marketplace and SDK Extensions), you need to load them before calling this method. Extensions internal to the SDK (those included in the full SDK package) are automatically loaded and registered after the initialization of .

-
-
- Call timing -
    -
  • Agora recommends you call this method after the initialization of and before joining a channel.
  • -
  • For video extensions (such as the image enhancement extension), you need to call this method after enabling the video module by calling or .
  • -
  • Before calling this method, you need to call to load the extension first.
  • -
  • Before calling this method, you need to link the extension dynamic library (.xcframework) to your project in Xcode to load the extension.
  • -
  • Before calling this method, you need to call to load the extension first.
  • -
-
-
- Restrictions -
    -
  • If you want to register multiple extensions, you need to call this method multiple times.
  • -
  • The data processing order of different extensions in the SDK is determined by the order in which the extensions are registered. That is, the extension that is registered first will process the data first.
  • -
-
-
- Parameters - - - - - - - - - - - - - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -3: The extension library is not loaded. Agora recommends that you check the storage location or the name of the dynamic library.
    • -
    -
  • -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproperty.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproperty.dita deleted file mode 100644 index a6a99bce482..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproperty.dita +++ /dev/null @@ -1,98 +0,0 @@ - - - - <ph keyref="setExtensionProperty" /> - Sets the properties of the extension. - - - - - - - - -
-

- public abstract int setExtensionProperty( - String provider, String extension, String key, String value); - - - - (int)setExtensionPropertyWithVendor:(NSString * _Nonnull)provider extension:(NSString * _Nonnull)extension key:(NSString * _Nonnull)key value:(NSString * _Nonnull)value; - - virtual int setExtensionProperty( - const char* provider, const char* extension, - const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0; - - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int SetExtensionProperty(const FString& provider, const FString& extension, const FString& key, const FString& value, EMEDIA_SOURCE_TYPE type = EMEDIA_SOURCE_TYPE::UNKNOWN_MEDIA_SOURCE); - abstract setExtensionProperty( - provider: string, - extension: string, - key: string, - value: string, - type?: MediaSourceType - ): number; - public abstract int SetExtensionProperty(string provider, string extension, string key, string value, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE); - abstract setExtensionProperty( - provider: string, - extension: string, - key: string, - value: string, - type?: MediaSourceType - ): number; - Future<void> setExtensionProperty( - {required String provider, - required String extension, - required String key, - required String value, - MediaSourceType type = MediaSourceType.unknownMediaSource}); -

-
-
-

After enabling the extension, you can call this method to set the properties of the extension.

-
-
- Call timing -

Call this mehtod after calling .

-
-
- Restrictions -

If you want to set properties for multiple extensions, you need to call this method multiple times.

-
- -
- Parameters - - - provider - The name of the extension provider. - - - extension - The name of the extension. - - - key - The key of the extension. - - - value - The value of the extension key. - - - - - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproviderproperty.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproviderproperty.dita deleted file mode 100644 index 07a5a0faaee..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_setextensionproviderproperty.dita +++ /dev/null @@ -1,76 +0,0 @@ - - - - <ph keyref="setExtensionProviderProperty" /> - Sets the properties of the extension provider. - - - - - - - - -
-

- public abstract int setExtensionProviderProperty(String provider, String key, String value); - - - - (int) setExtensionProviderPropertyWithVendor:(NSString * _Nonnull)provider key:(NSString * _Nonnull)key value:(NSString * _Nonnull)value; - - virtual int setExtensionProviderProperty( - const char* provider, const char* key, const char* value) = 0; - - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int SetExtensionProviderProperty(const FString& provider, const FString& key, const FString& value); - abstract setExtensionProviderProperty( - provider: string, - key: string, - value: string - ): number; - public abstract int SetExtensionProviderProperty(string provider, string key, string value); - abstract setExtensionProviderProperty( - provider: string, - key: string, - value: string - ): number; - Future<void> setExtensionProviderProperty( - {required String provider, required String key, required String value}); -

-
-
-

You can call this method to set the attributes of the extension provider and initialize the relevant parameters according to the type of the provider.

-
-
- Call timing -

Call this method before and after .

-
-
- Restrictions -

If you want to set the properties of the extension provider for multiple extensions, you need to call this method multiple times.

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebydisplayid.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebydisplayid.dita deleted file mode 100644 index 6e89b7b61c2..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebydisplayid.dita +++ /dev/null @@ -1,98 +0,0 @@ - - - - <ph keyref="startScreenCaptureByDisplayId" /> - Captures the screen by specifying the display ID. - - - - - - - - -
-

- - - - (int)startScreenCaptureByDisplayId:(UInt32)displayId - regionRect:(CGRect)regionRect - captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams; - - virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect, - const ScreenCaptureParameters& captureParams) = 0; - - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int StartScreenCaptureByDisplayId(int64 displayId, const FRectangle& regionRect, const FScreenCaptureParameters& captureParams); - abstract startScreenCaptureByDisplayId( - displayId: number, - regionRect: Rectangle, - captureParams: ScreenCaptureParameters - ): number; - public abstract int StartScreenCaptureByDisplayId(uint displayId, Rectangle regionRect, ScreenCaptureParameters captureParams); - abstract startScreenCaptureByDisplayId( - displayId: number, - regionRect: Rectangle, - captureParams: ScreenCaptureParameters - ): number; - Future<void> startScreenCaptureByDisplayId( - {required int displayId, - required Rectangle regionRect, - required ScreenCaptureParameters captureParams}); -

-
-
-

Captures the video stream of a screen or a part of the screen area.

- This method is for Windows and macOS only. -
-
- Applicable scenarios -

In the screen sharing scenario, you need to call this method to start capturing the screen video stream. For implementation guidance of screen sharing, please refer to .

-
-
- Call timing -

You can call this method either before or after joining the channel, with the following differences:

    -
  • Call this method before joining a channel, and then call to join a channel and set publishScreenTrack or publishSecondaryScreenTrack to to start screen sharing.
  • -
  • Call this method after joining a channel, and then call to join a channel and set publishScreenTrack or publishSecondaryScreenTrack to to start screen sharing.
  • -

-
-
- Restrictions -

None.

-
-
- Parameters - - - displayId - The display ID of the screen to be shared.For the Windows platform, if you need to simultaneously share two screens (main screen and secondary screen), you can set displayId to -1 when calling this method. - - - - regionRect - (Optional) Sets the relative location of the region to the screen. Pass in nil to share the entire screen. See . It consists of the following parameters:
    -
  • x: The horizontal offset from the top-left corner.
  • -
  • y: The vertical offset from the top-left corner.
  • -
  • width: The width of the region.
  • -
  • height: The height of the region.
  • -
- If the specified region overruns the screen, the SDK shares only the region within it; if you set width or height as 0, the SDK shares the whole screen. -
- - captureParams - Screen sharing configurations. The default video dimension is 1920 x 1080, that is, 2,073,600 pixels. Agora uses the value of this parameter to calculate the charges. See .The video properties of the screen sharing stream only need to be set through this parameter, and are unrelated to . - - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
      -
    • -2: The parameter is invalid.
    • -
    • -8: The screen sharing state is invalid. Probably because you have shared other screens or windows. Try calling to stop the current sharing and start sharing the screen again.
    • -
  • -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebywindowid.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebywindowid.dita deleted file mode 100644 index 47ded761995..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengine_startscreencapturebywindowid.dita +++ /dev/null @@ -1,235 +0,0 @@ - - - - <ph keyref="startScreenCaptureByWindowId" /> - Captures the whole or part of a window by specifying the window ID. - - - - - - - - -
-

- - - - (int)startScreenCaptureByWindowId:(UInt32)windowId - regionRect:(CGRect)regionRect - captureParams:(AgoraScreenCaptureParameters *_Nonnull)captureParams; - virtual int startScreenCaptureByWindowId(int64_t windowId, - const Rectangle& regionRect, - const ScreenCaptureParameters& captureParams) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int StartScreenCaptureByWindowId(int64 windowId, const FRectangle& regionRect, const FScreenCaptureParameters& captureParams); - abstract startScreenCaptureByWindowId( - windowId: any, - regionRect: Rectangle, - captureParams: ScreenCaptureParameters - ): number; - public abstract int StartScreenCaptureByWindowId(view_t windowId, Rectangle regionRect, ScreenCaptureParameters captureParams); - abstract startScreenCaptureByWindowId( - windowId: any, - regionRect: Rectangle, - captureParams: ScreenCaptureParameters - ): number; - Future<void> startScreenCaptureByWindowId( - {required int windowId, - required Rectangle regionRect, - required ScreenCaptureParameters captureParams}); -

-
-
-

This method captures a window or part of the window. You need to specify the ID of the window to be captured.

- This method applies to the macOS and Windows only. -

This method supports window sharing of UWP (Universal Windows Platform) applications. Agora tests the mainstream UWP applications by using the lastest SDK, see details as follows:

-

- - - - - - - - System version - SOFTWARE - - Compatible versions - Support - - - - - win10 - Chrome - 76.0.3809.100 - No - - - Office Word - 18.1903.1152.0 - YES - - - - Office Excel - No - - - Office PPT - YES - - - - WPS Word - 11.1.0.9145 - YES - - - - WPS Excel - - - WPS PPT - - - Media Player (comes with the system) - All - - YES - - - - win8 - Chrome - All - - YES - - - - Office Word - All - - YES - - - - Office Excel - - - Office PPT - - - WPS Word - 11.1.0.9098 - YES - - - - WPS Excel - - - WPS PPT - - - Media Player (comes with the system) - All - - YES - - - - win7 - Chrome - 73.0.3683.103 - No - - - Office Word - All - - YES - - - - Office Excel - - - Office PPT - - - WPS Word - 11.1.0.9098 - No - - - WPS Excel - - - WPS PPT - 11.1.0.9098 - YES - - - - Media Player (comes with the system) - All - - No - - - -

-
-
- Applicable scenarios -

In the screen sharing scenario, you need to call this method to start capturing the screen video stream. For implementation guidance of screen sharing, please refer to .

-
-
- Call timing -

-

-
- Restrictions -

The window sharing feature of the Agora SDK relies on WGC (Windows Graphics Capture) or GDI (Graphics Device Interface) capture, and WGC cannot be set to disable mouse capture on systems earlier than Windows 10 2004. Therefore, captureMouseCursor(false) might not work when you start window sharing on a device with a system earlier than Windows 10 2004. See .

-

None.

-
-
- Parameters - - - windowId - The ID of the window to be shared. - - - regionRect - (Optional) Sets the relative location of the region to the screen. If you do not set this parameter, the SDK shares the whole screen. See . If the specified region overruns the window, the SDK shares only the region within it; if you set width or height as 0, the SDK shares the whole window. - - - regionRect - -

(Optional) The relative location of the region to the window. If you do not set this parameter, the SDK shares the whole window. It consists of the following parameters:

    -
  • x: The horizontal offset from the top-left corner.
  • -
  • y: The vertical offset from the top-left corner.
  • -
  • width: The width of the region.
  • -
  • height: The height of the region.
  • -

-

If the specified region overruns the window, the SDK shares only the region within it; if you set width or height as 0, the SDK shares the whole window.

-
-
- - captureParams - Screen sharing configurations. The default video resolution is 1920 × 1080, that is, 2,073,600 pixels. Agora uses the value of this parameter to calculate the charges. See . - -
-
- <ph keyref="return-section-title"/> -

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly. See for details and resolution suggestions.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/api_irtcengineex_enableencryptionex.dita b/en-US/en-US/dita/RTC-NG/API/api_irtcengineex_enableencryptionex.dita deleted file mode 100644 index 0bb3c321cef..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/api_irtcengineex_enableencryptionex.dita +++ /dev/null @@ -1,75 +0,0 @@ - - - - <ph keyref="enableEncryptionEx"/> - Enables or disables the built-in encryption. - - - - - - - - -
-

- public abstract int enableEncryptionEx( - boolean enabled, EncryptionConfig config, RtcConnection connection); - - - (int)enableEncryptionEx:(BOOL)enabled encryptionConfig:(AgoraEncryptionConfig *_Nonnull)config connection:(AgoraRtcConnection* _Nonnull)connection NS_SWIFT_NAME(enableEncryptionEx(_:encryptionConfig:connection:)); - virtual int enableEncryptionEx(const RtcConnection& connection, bool enabled, const EncryptionConfig& config) = 0; - UFUNCTION(BlueprintCallable, Category = "Agora|IRtcEngine") - int EnableEncryptionEx(const FRtcConnection& connection, bool enabled, const FEncryptionConfig& config); - abstract enableEncryptionEx( - connection: RtcConnection, - enabled: boolean, - config: EncryptionConfig - ): number; - public abstract int EnableEncryptionEx(RtcConnection connection, bool enabled, EncryptionConfig config); - abstract enableEncryptionEx( - connection: RtcConnection, - enabled: boolean, - config: EncryptionConfig - ): number; - Future<void> enableEncryptionEx( - {required RtcConnection connection, - required bool enabled, - required EncryptionConfig config});

-
-
-
- -
Since
-
v4.3.1
-
-
-

After the user leaves the channel, the SDK automatically disables the built-in encryption. To enable the built-in encryption, call this method before the user joins the channel again.

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

When the method call succeeds, there is no return value; when fails, the exception is thrown. You need to catch the exception and handle it accordingly.

-
    -
  • 0: Success.
  • -
  • < 0: Failure. See for details and resolution suggestions.
  • -
- - diff --git a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita b/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita deleted file mode 100644 index 5a58f680220..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionerrorwithcontext.dita +++ /dev/null @@ -1,64 +0,0 @@ - - - - <ph keyref="onExtensionErrorWithContext" /> - Occurs when the extension runs incorrectly. - - - - - - - - -
-

- void onErrorWithContext(ExtensionContext extContext, int error, String message){}; - onError?:(err:number,message:string) => void - - (void)onExtensionErrorWithContext:(AgoraExtensionContext * _Nonnull)context - error:(int)error - message:(NSString * __nullable)message NS_SWIFT_NAME(onExtensionErrorWithContext(_:error:message:)); - virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) { - (void)context; - (void)error; - (void)message; - } - UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event") - void OnExtensionErrorWithContext(const FExtensionContext& context, int error, const FString& message); - onExtensionErrorWithContext?( - context: ExtensionContext, - error: number, - message: string - ): void; - public virtual void OnExtensionErrorWithContext(ExtensionContext context, int error, string message){} - onExtensionErrorWithContext?( - context: ExtensionContext, - error: number, - message: string - ): void; - final void Function(ExtensionContext context, int error, String message)? - onExtensionErrorWithContext; -

-
-
-

In case of extension enabling failure or runtime errors, the extension triggers this callback and reports the error code along with the reasons.

-
-
- Parameters - - - context - extContext - The context information of the extension, see . - - - error - Error code. For details, see the extension documentation provided by the extension provider. - - - message - Reason. For details, see the extension documentation provided by the extension provider. - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita b/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita deleted file mode 100644 index 8557f0cdcab..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensioneventwithcontext.dita +++ /dev/null @@ -1,63 +0,0 @@ - - - - <ph keyref="onExtensionEventWithContext" /> - The event callback of the extension. - - - - - - - - -
-

- void onEventWithContext(ExtensionContext extContext, String key, String value){}; - - - (void)onEventWithContext:(AgoraExtensionContext * _Nonnull)context - key:(NSString * __nullable)key - value:(NSString * __nullable)value NS_SWIFT_NAME(onEventWithContext(_:key:value:)); - virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) { - (void)context; - (void)key; - (void)value; - } - UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event") - void OnExtensionEventWithContext(const FExtensionContext& context, const FString& key, const FString& value); - onExtensionEventWithContext?( - context: ExtensionContext, - key: string, - value: string - ): void; - public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){} - onExtensionEventWithContext?( - context: ExtensionContext, - key: string, - value: string - ): void; - final void Function(ExtensionContext context, String key, String value)? - onExtensionEventWithContext; -

-
-
-

To listen for events while the extension is running, you need to register this callback.

-
-
- Parameters - - - - - - - - - - - - - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita b/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita deleted file mode 100644 index ea1ae1613bd..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstartedwithcontext.dita +++ /dev/null @@ -1,42 +0,0 @@ - - - - <ph keyref="onExtensionStartedWithContext" /> - Occurrs when the extension is enabled. - - - - - - - - -
-

- void onStartedWithContext(ExtensionContext extContext){}; - - - (void)onExtensionStartedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStartedWithContext(_:)); - virtual void onExtensionStartedWithContext(const ExtensionContext &context) { - (void)context; - } - UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event") - void OnExtensionStartedWithContext(const FExtensionContext& context); - onExtensionStartedWithContext?(context: ExtensionContext): void; - public virtual void OnExtensionEventWithContext(ExtensionContext context, string key, string value){ } - onExtensionStartedWithContext?(context: ExtensionContext): void; - final void Function(ExtensionContext context)? onExtensionStartedWithContext; -

-
-
-

The callback is triggered after the extension is successfully enabled.

-
-
- Parameters - - - - - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita b/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita deleted file mode 100644 index 5ab971bbdd9..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/callback_irtcengineeventhandler_onextensionstoppedwithcontext.dita +++ /dev/null @@ -1,42 +0,0 @@ - - - - <ph keyref="onExtensionStoppedWithContext" /> - Occurs when the extension is disabled. - - - - - - - - -
-

- void onStoppedWithContext(ExtensionContext extContext){}; - - - (void)onExtensionStoppedWithContext:(AgoraExtensionContext * _Nonnull)context NS_SWIFT_NAME(onExtensionStoppedWithContext(_:)); - virtual void onExtensionStoppedWithContext(const ExtensionContext &context) { - (void)context; - } - UFUNCTION(BlueprintNativeEvent, Category = "Agora|Event") - void OnExtensionStoppedWithContext(const FExtensionContext& context); - onExtensionStoppedWithContext?(context: ExtensionContext): void; - public virtual void OnExtensionStoppedWithContext(ExtensionContext context){ } - onExtensionStoppedWithContext?(context: ExtensionContext): void; - final void Function(ExtensionContext context)? onExtensionStoppedWithContext; -

-
-
-

The callback is triggered after the extension is successfully disabled.

-
-
- Parameters - - - - - -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/class_audiopcmframe.dita b/en-US/en-US/dita/RTC-NG/API/class_audiopcmframe.dita deleted file mode 100644 index 0879ae10af9..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_audiopcmframe.dita +++ /dev/null @@ -1,155 +0,0 @@ - - - - <ph keyref="AudioPcmFrame" /> - The parameters of the audio frame in PCM format. - -
-

- - - __attribute__((visibility("default"))) @interface AgoraAudioPcmFrame: NSObject - @property (assign, nonatomic) uint32_t captureTimestamp; - @property (assign, nonatomic) size_t samplesPerChannel; - @property (assign, nonatomic) int sampleRateHz; - @property (assign, nonatomic) size_t channelNumbers; - @property (strong, nonatomic) NSData* _Nonnull pcmBuffer; - @property (assign, nonatomic) BytesPerSampleType bytesPerSample; - @end - - struct AudioPcmFrame { - OPTIONAL_ENUM_SIZE_T { - kMaxDataSizeSamples = 3840, - kMaxDataSizeBytes = kMaxDataSizeSamples * sizeof(int16_t), - }; - - uint32_t capture_timestamp; - size_t samples_per_channel_; - int sample_rate_hz_; - size_t num_channels_; - rtc::BYTES_PER_SAMPLE bytes_per_sample; - int16_t data_[kMaxDataSizeSamples]; - }; - - USTRUCT(BlueprintType) -struct FAudioPcmFrame { - - GENERATED_BODY() - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - int64 capture_timestamp; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - int64 samples_per_channel_; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - int sample_rate_hz_; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - int64 num_channels_; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - EBYTES_PER_SAMPLE bytes_per_sample = EBYTES_PER_SAMPLE::TWO_BYTES_PER_SAMPLE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioPcmFrame") - /*3840 * sizeof(int16_t)*/ - TArray<int64> data_; -}; - export class AudioPcmFrame { - capture_timestamp?: number; - samples_per_channel_?: number; - sample_rate_hz_?: number; - num_channels_?: number; - bytes_per_sample?: BytesPerSample; - data_?: number[]; -} - - public struct AudioPcmFrame { - public UInt32 capture_timestamp; - public UInt64 samples_per_channel_; - public int sample_rate_hz_; - public UInt64 num_channels_; - public BYTES_PER_SAMPLE bytes_per_sample; - public Int16[] data_; - }; - export class AudioPcmFrame { - capture_timestamp?: number; - samples_per_channel_?: number; - sample_rate_hz_?: number; - num_channels_?: number; - bytes_per_sample?: BytesPerSample; - data_?: number[]; -} - class AudioPcmFrame { - const AudioPcmFrame( - {this.captureTimestamp, - this.samplesPerChannel, - this.sampleRateHz, - this.numChannels, - this.bytesPerSample, - this.data}); - - @JsonKey(name: 'capture_timestamp') - final int? captureTimestamp; - - @JsonKey(name: 'samples_per_channel_') - final int? samplesPerChannel; - - @JsonKey(name: 'sample_rate_hz_') - final int? sampleRateHz; - - @JsonKey(name: 'num_channels_') - final int? numChannels; - - @JsonKey(name: 'bytes_per_sample') - final BytesPerSample? bytesPerSample; - - @JsonKey(name: 'data_') - final List<int>? data; - - factory AudioPcmFrame.fromJson(Map<String, dynamic> json) => - _$AudioPcmFrameFromJson(json); - - Map<String, dynamic> toJson() => _$AudioPcmFrameToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - OPTIONAL_ENUM_SIZE_T - The buffer size of the PCM audio frame. The initial value is 3840. - - - capture_timestamp - captureTimestamp - The timestamp (ms) of the audio frame. - - - samples_per_channel_ - samplesPerChannel - The number of samples per channel in the audio frame. - - - sample_rate_hz_ - sampleRateHz - Audio sample rate (Hz). - - - num_channels_ - channelNumbers - numChannels - The number of audio channels. - - - bytes_per_sample - bytesPerSample - The number of bytes per sample. - - - data_ - data - The audio frame. - - - pcmBuffer - Number of audio frames in the buffer. - -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/class_audiotrackconfig.dita b/en-US/en-US/dita/RTC-NG/API/class_audiotrackconfig.dita deleted file mode 100644 index b7591ff0e36..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_audiotrackconfig.dita +++ /dev/null @@ -1,96 +0,0 @@ - - - - <ph keyref="AudioTrackConfig" /> - The configuration of custom audio tracks. - -
-

- public class AudioTrackConfig { - - public boolean enableLocalPlayback; - - public boolean enableAudioProcessing; - public AudioTrackConfig() { - this.enableLocalPlayback = true; - this.enableAudioProcessing = false; - } - @Override - public String toString() { - return "AudioTrackConfig{" - + "enableLocalPlayback=" + enableLocalPlayback + "enableAudioProcessing" - + enableAudioProcessing + '}'; - } -} - export class AudioTrackConfig { - - public enableLocalPlayback: boolean = true; -} - NS_SWIFT_NAME(AgoraAudioTrackConfig) __attribute__((visibility("default"))) @interface AgoraAudioTrackConfig : NSObject -@property (assign, nonatomic) BOOL enableLocalPlayback NS_SWIFT_NAME(enableLocalPlayback); -@property (assign, nonatomic) BOOL enableAudioProcessing NS_SWIFT_NAME(enableAudioProcessing); -@end - struct AudioTrackConfig { - - bool enableLocalPlayback; - - bool enableAudioProcessing; - AudioTrackConfig() : enableLocalPlayback(true),enableAudioProcessing(false) {} -}; - USTRUCT(BlueprintType) -struct FAudioTrackConfig -{ - GENERATED_BODY() - - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|AudioTrackConfig") - bool enableLocalPlayback = true; -}; - export class AudioTrackConfig { - enableLocalPlayback?: boolean; -} - public class AudioTrackConfig - { - public bool enableLocalPlayback; - - public AudioTrackConfig(bool enableLocalPlayback) - { - this.enableLocalPlayback = enableLocalPlayback; - } - - public AudioTrackConfig() - { - enableLocalPlayback = true; - } - - }; - export class AudioTrackConfig { - enableLocalPlayback?: boolean; -} - @JsonSerializable(explicitToJson: true, includeIfNull: false) -class AudioTrackConfig { - const AudioTrackConfig({this.enableLocalPlayback}); - - @JsonKey(name: 'enableLocalPlayback') - final bool? enableLocalPlayback; - - factory AudioTrackConfig.fromJson(Map<String, dynamic> json) => - _$AudioTrackConfigFromJson(json); - - Map<String, dynamic> toJson() => _$AudioTrackConfigToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - enableLocalPlayback - Whether to enable the local audio-playback device:
    -
  • : (Default) Enable the local audio-playback device.
  • -
  • : Do not enable the local audio-playback device.
  • -
-
-
-
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/class_channelmediaoptions.dita b/en-US/en-US/dita/RTC-NG/API/class_channelmediaoptions.dita deleted file mode 100644 index 409d1e6208a..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_channelmediaoptions.dita +++ /dev/null @@ -1,1728 +0,0 @@ - - - - <ph keyref="ChannelMediaOptions"/> - The channel media options. - -
-

- public class ChannelMediaOptions { - public Boolean publishCameraTrack; - public Boolean publishSecondaryCameraTrack; - public Boolean publishThirdCameraTrack; - public Boolean publishFourthCameraTrack; - public Boolean publishMicrophoneTrack; - public Boolean publishScreenCaptureVideo; - public Boolean publishScreenCaptureAudio; - public Boolean publishCustomAudioTrack; - public Integer publishCustomAudioTrackId; - public Boolean publishCustomVideoTrack; - public Boolean publishEncodedVideoTrack; - public Boolean publishMediaPlayerAudioTrack; - public Boolean publishMediaPlayerVideoTrack; - public Boolean publishTranscodedVideoTrack; - public Boolean publishMixedAudioTrack; - public Boolean autoSubscribeAudio; - public Boolean autoSubscribeVideo; - public Boolean enableAudioRecordingOrPlayout; - public Integer publishMediaPlayerId; - public Integer clientRoleType; - public Integer audienceLatencyLevel; - public Integer defaultVideoStreamType; - public Integer channelProfile; - public Integer mediaPlayerAudioDelayMs; - public String token; - public Boolean enableBuiltInMediaEncryption; - public Boolean publishRhythmPlayerTrack; - public Boolean isInteractiveAudience; - public Integer customVideoTrackId; - public Boolean isAudioFilterable; - } - export class ChannelMediaOptions { - - public publishCameraTrack?:boolean; - - public publishSecondaryCameraTrack?:boolean; - - public publishMicrophoneTrack?:boolean; - - public publishScreenCaptureVideo?:boolean; - - public publishScreenCaptureAudio?:boolean; - - public publishCustomAudioTrack?:boolean; - - public publishCustomAudioTrackId?:number; - - public publishCustomVideoTrack?:boolean; - - public publishEncodedVideoTrack?:boolean; - - public publishMediaPlayerAudioTrack?:boolean; - - public publishMediaPlayerVideoTrack?:boolean; - - public publishTranscodedVideoTrack?:boolean; - - public publishMixedAudioTrack?:boolean; - - public autoSubscribeAudio?:boolean; - - public autoSubscribeVideo?:boolean; - - public enableAudioRecordingOrPlayout?:boolean; - - public publishMediaPlayerId?:number; - - public clientRoleType?:number; - - public audienceLatencyLevel?:number; - - public defaultVideoStreamType?:number; - - public channelProfile?:number; - - public audioDelayMs?:number; - - public mediaPlayerAudioDelayMs?:number; - - public token?:string; - - public enableBuiltInMediaEncryption?:boolean; - - public publishRhythmPlayerTrack?:boolean; - - public isInteractiveAudience?:boolean; - - public customVideoTrackId?:number; - - public isAudioFilterable?:boolean; - - public startPreview?:boolean; - public constructor() { - } -} - __attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject -@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 autoSubscribeAudio; -@property(assign, nonatomic) BOOL autoSubscribeVideo; -@property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout; -@property(assign, nonatomic) NSInteger publishMediaPlayerId; -@property(assign, nonatomic) AgoraClientRole clientRoleType; -@property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; -@property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType; -@property(assign, nonatomic) AgoraChannelProfile channelProfile; -@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; - -@end - struct ChannelMediaOptions { - Optional<bool> publishCameraTrack; - Optional<bool> publishSecondaryCameraTrack; - Optional<bool> publishThirdCameraTrack; - Optional<bool> publishFourthCameraTrack; - Optional<bool> publishMicrophoneTrack; - - #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - Optional<bool> publishScreenCaptureVideo; - Optional<bool> publishScreenCaptureAudio; - #else - Optional<bool> publishScreenTrack; - Optional<bool> publishSecondaryScreenTrack; - Optional<bool> publishThirdScreenTrack; - Optional<bool> publishFourthScreenTrack; - #endif - - Optional<bool> publishCustomAudioTrack; - Optional<int> publishCustomAudioTrackId; - Optional<bool> publishCustomVideoTrack; - Optional<bool> publishEncodedVideoTrack; - Optional<bool> publishMediaPlayerAudioTrack; - Optional<bool> publishMediaPlayerVideoTrack; - Optional<bool> publishTranscodedVideoTrack; - Optional<bool> publishMixedAudioTrack; - Optional<bool> autoSubscribeAudio; - Optional<bool> autoSubscribeVideo; - Optional<bool> enableAudioRecordingOrPlayout; - Optional<int> publishMediaPlayerId; - Optional<CLIENT_ROLE_TYPE> clientRoleType; - Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel; - Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType; - Optional<CHANNEL_PROFILE_TYPE> channelProfile; - Optional<const char*> token; - Optional<bool> enableBuiltInMediaEncryption; - Optional<bool> publishRhythmPlayerTrack; - Optional<bool> isInteractiveAudience; - - Optional<video_track_id_t> customVideoTrackId; - - Optional<bool> isAudioFilterable; - - ChannelMediaOptions() {} - ~ChannelMediaOptions() {} - } - USTRUCT(BlueprintType) -struct FChannelMediaOptions -{ - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishSecondaryCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishThirdCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishFourthCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMicrophoneTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenCaptureVideo = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenCaptureAudio = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishSecondaryScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishThirdScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishFourthScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCustomAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool publishCustomAudioTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int publishCustomAudioTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCustomVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishEncodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMediaPlayerAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMediaPlayerVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishTranscodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMixedAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishLipSyncTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional autoSubscribeAudio = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional autoSubscribeVideo = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional enableAudioRecordingOrPlayout = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool publishMediaPlayerId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int publishMediaPlayerId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool clientRoleType_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - ECLIENT_ROLE_TYPE clientRoleType = ECLIENT_ROLE_TYPE::CLIENT_ROLE_BROADCASTER; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool audienceLatencyLevel_SetValue = false; - 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") - bool defaultVideoStreamType_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EVIDEO_STREAM_TYPE defaultVideoStreamType = EVIDEO_STREAM_TYPE::VIDEO_STREAM_HIGH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool channelProfile_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - ECHANNEL_PROFILE_TYPE channelProfile = ECHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool audioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int audioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool mediaPlayerAudioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int mediaPlayerAudioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool token_SetValue = false; - 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") - EAgoraOptional publishRhythmPlayerTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional isInteractiveAudience = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool customVideoTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int64 customVideoTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional isAudioFilterable = EAgoraOptional::AGORA_NULL_VALUE; - - FChannelMediaOptions(){} - FChannelMediaOptions(const agora::rtc::ChannelMediaOptions & AgoraData){ - - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCameraTrack, AgoraData.publishCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishSecondaryCameraTrack, AgoraData.publishSecondaryCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishThirdCameraTrack, AgoraData.publishThirdCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishFourthCameraTrack, AgoraData.publishFourthCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMicrophoneTrack, AgoraData.publishMicrophoneTrack) -#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenCaptureVideo, AgoraData.publishScreenCaptureVideo) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenCaptureAudio, AgoraData.publishScreenCaptureAudio) -#else - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenTrack, AgoraData.publishScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishSecondaryScreenTrack, AgoraData.publishSecondaryScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishThirdScreenTrack, AgoraData.publishThirdScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishFourthScreenTrack, AgoraData.publishFourthScreenTrack) -#endif - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCustomAudioTrack, AgoraData.publishCustomAudioTrack) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->publishCustomAudioTrackId, AgoraData.publishCustomAudioTrackId) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCustomVideoTrack, AgoraData.publishCustomVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishEncodedVideoTrack, AgoraData.publishEncodedVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMediaPlayerAudioTrack, AgoraData.publishMediaPlayerAudioTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMediaPlayerVideoTrack, AgoraData.publishMediaPlayerVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishTranscodedVideoTrack, AgoraData.publishTranscodedVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMixedAudioTrack, AgoraData.publishMixedAudioTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishLipSyncTrack, AgoraData.publishLipSyncTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->autoSubscribeAudio, AgoraData.autoSubscribeAudio) - SET_UEBP_OPTIONAL_VAL_BOOL(this->autoSubscribeVideo, AgoraData.autoSubscribeVideo) - SET_UEBP_OPTIONAL_VAL_BOOL(this->enableAudioRecordingOrPlayout, AgoraData.enableAudioRecordingOrPlayout) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->publishMediaPlayerId, AgoraData.publishMediaPlayerId) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->clientRoleType,AgoraData.clientRoleType,static_cast<ECLIENT_ROLE_TYPE>(AgoraData.clientRoleType.value())) - - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->audienceLatencyLevel, AgoraData.audienceLatencyLevel, static_cast<EAUDIENCE_LATENCY_LEVEL_TYPE>(AgoraData.audienceLatencyLevel.value())) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->defaultVideoStreamType, AgoraData.defaultVideoStreamType, static_cast<EVIDEO_STREAM_TYPE>(AgoraData.defaultVideoStreamType.value())) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->channelProfile, AgoraData.channelProfile, static_cast<ECHANNEL_PROFILE_TYPE>(AgoraData.channelProfile.value())) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->audioDelayMs, AgoraData.audioDelayMs) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->mediaPlayerAudioDelayMs, AgoraData.mediaPlayerAudioDelayMs) - - SET_UEBP_OPTIONAL_VAL_FString(this->token,AgoraData.token) - - SET_UEBP_OPTIONAL_VAL_BOOL(this->enableBuiltInMediaEncryption, AgoraData.enableBuiltInMediaEncryption) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishRhythmPlayerTrack, AgoraData.publishRhythmPlayerTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->isInteractiveAudience, AgoraData.isInteractiveAudience) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->customVideoTrackId, AgoraData.customVideoTrackId) - SET_UEBP_OPTIONAL_VAL_BOOL(this->isAudioFilterable, AgoraData.isAudioFilterable) - } - agora::rtc::ChannelMediaOptions CreateAgoraData() const{ - agora::rtc::ChannelMediaOptions AgoraData; - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCameraTrack, this->publishCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishSecondaryCameraTrack, this->publishSecondaryCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishThirdCameraTrack, this->publishThirdCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishFourthCameraTrack, this->publishFourthCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMicrophoneTrack, this->publishMicrophoneTrack) -#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenCaptureVideo, this->publishScreenCaptureVideo) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenCaptureAudio, this->publishScreenCaptureAudio) -#else - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenTrack, this->publishScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishSecondaryScreenTrack, this->publishSecondaryScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishThirdScreenTrack, this->publishThirdScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishFourthScreenTrack, this->publishFourthScreenTrack) -#endif - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCustomAudioTrack, this->publishCustomAudioTrack) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.publishCustomAudioTrackId, this->publishCustomAudioTrackId) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCustomVideoTrack, this->publishCustomVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishEncodedVideoTrack, this->publishEncodedVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMediaPlayerAudioTrack, this->publishMediaPlayerAudioTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMediaPlayerVideoTrack, this->publishMediaPlayerVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishTranscodedVideoTrack, this->publishTranscodedVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMixedAudioTrack, this->publishMixedAudioTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishLipSyncTrack, this->publishLipSyncTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.autoSubscribeAudio, this->autoSubscribeAudio) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.autoSubscribeVideo, this->autoSubscribeVideo) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.enableAudioRecordingOrPlayout, this->enableAudioRecordingOrPlayout) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.publishMediaPlayerId, this->publishMediaPlayerId) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.clientRoleType, this->clientRoleType,static_cast<agora::rtc::CLIENT_ROLE_TYPE>(this->clientRoleType)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.audienceLatencyLevel, this->audienceLatencyLevel, static_cast<agora::rtc::AUDIENCE_LATENCY_LEVEL_TYPE>(this->audienceLatencyLevel)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.defaultVideoStreamType, this->defaultVideoStreamType, static_cast<agora::rtc::VIDEO_STREAM_TYPE>(this->defaultVideoStreamType)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.channelProfile, this->channelProfile, static_cast<agora::CHANNEL_PROFILE_TYPE>(this->channelProfile)) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.audioDelayMs, this->audioDelayMs) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.mediaPlayerAudioDelayMs, this->mediaPlayerAudioDelayMs) - SET_AGORA_OPTIONAL_VAL_CHARPTR______MEMOALLOC(AgoraData.token, this->token) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.enableBuiltInMediaEncryption, this->enableBuiltInMediaEncryption) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishRhythmPlayerTrack, this->publishRhythmPlayerTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isInteractiveAudience, this->isInteractiveAudience) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.customVideoTrackId, this->customVideoTrackId) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isAudioFilterable, this->isAudioFilterable) - return AgoraData; - } - void FreeAgoraData(agora::rtc::ChannelMediaOptions& AgoraData) const { - SET_AGORA_OPTIONAL_VAL_CHARPTR______MEMOFREE(AgoraData.token) - } -}; - export class ChannelMediaOptions { - - publishCameraTrack?: boolean; - - publishSecondaryCameraTrack?: boolean; - - publishThirdCameraTrack?: boolean; - - publishFourthCameraTrack?: boolean; - - publishMicrophoneTrack?: boolean; - - publishScreenTrack?: boolean; - - publishSecondaryScreenTrack?: boolean; - - publishThirdScreenTrack?: boolean; - - publishFourthScreenTrack?: boolean; - - publishCustomAudioTrack?: boolean; - - publishCustomAudioTrackId?: number; - - publishCustomVideoTrack?: boolean; - - publishEncodedVideoTrack?: boolean; - - publishMediaPlayerAudioTrack?: boolean; - - publishMediaPlayerVideoTrack?: boolean; - - publishTranscodedVideoTrack?: boolean; - - publishLipSyncTrack?: boolean; - - autoSubscribeAudio?: boolean; - - autoSubscribeVideo?: boolean; - - enableAudioRecordingOrPlayout?: boolean; - - publishMediaPlayerId?: number; - - clientRoleType?: ClientRoleType; - - audienceLatencyLevel?: AudienceLatencyLevelType; - - defaultVideoStreamType?: VideoStreamType; - - channelProfile?: ChannelProfileType; - - token?: string; - - enableBuiltInMediaEncryption?: boolean; - - publishRhythmPlayerTrack?: boolean; - - isInteractiveAudience?: boolean; - - customVideoTrackId?: number; - - isAudioFilterable?: boolean; -} - 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>(); - - } - export class ChannelMediaOptions { - - publishCameraTrack?: boolean; - - publishSecondaryCameraTrack?: boolean; - - publishThirdCameraTrack?: boolean; - - publishFourthCameraTrack?: boolean; - - publishMicrophoneTrack?: boolean; - - publishScreenCaptureVideo?: boolean; - - publishScreenCaptureAudio?: boolean; - - publishSecondaryScreenTrack?: boolean; - - publishThirdScreenTrack?: boolean; - - publishFourthScreenTrack?: boolean; - - publishCustomAudioTrack?: boolean; - - publishCustomAudioTrackId?: number; - - publishCustomVideoTrack?: boolean; - - publishEncodedVideoTrack?: boolean; - - publishMediaPlayerAudioTrack?: boolean; - - publishMediaPlayerVideoTrack?: boolean; - - publishTranscodedVideoTrack?: boolean; - - publishLipSyncTrack?: boolean; - - autoSubscribeAudio?: boolean; - - autoSubscribeVideo?: boolean; - - enableAudioRecordingOrPlayout?: boolean; - - publishMediaPlayerId?: number; - - clientRoleType?: ClientRoleType; - - audienceLatencyLevel?: AudienceLatencyLevelType; - - defaultVideoStreamType?: VideoStreamType; - - channelProfile?: ChannelProfileType; - - token?: string; - - enableBuiltInMediaEncryption?: boolean; - - publishRhythmPlayerTrack?: boolean; - - isInteractiveAudience?: boolean; - - customVideoTrackId?: number; - - isAudioFilterable?: boolean; -} - @JsonSerializable(explicitToJson: true, includeIfNull: false) -class ChannelMediaOptions { - const ChannelMediaOptions( - {this.publishCameraTrack, - this.publishSecondaryCameraTrack, - this.publishThirdCameraTrack, - this.publishFourthCameraTrack, - this.publishMicrophoneTrack, - this.publishScreenCaptureVideo, - this.publishScreenCaptureAudio, - this.publishScreenTrack, - this.publishSecondaryScreenTrack, - this.publishThirdScreenTrack, - this.publishFourthScreenTrack, - this.publishCustomAudioTrack, - this.publishCustomAudioTrackId, - this.publishCustomVideoTrack, - this.publishEncodedVideoTrack, - this.publishMediaPlayerAudioTrack, - this.publishMediaPlayerVideoTrack, - this.publishTranscodedVideoTrack, - this.publishMixedAudioTrack, - this.publishLipSyncTrack, - this.autoSubscribeAudio, - this.autoSubscribeVideo, - this.enableAudioRecordingOrPlayout, - this.publishMediaPlayerId, - this.clientRoleType, - this.audienceLatencyLevel, - this.defaultVideoStreamType, - this.channelProfile, - this.audioDelayMs, - this.mediaPlayerAudioDelayMs, - this.token, - this.enableBuiltInMediaEncryption, - this.publishRhythmPlayerTrack, - this.isInteractiveAudience, - this.customVideoTrackId, - this.isAudioFilterable, - this.parameters}); - - @JsonKey(name: 'publishCameraTrack') - final bool? publishCameraTrack; - - @JsonKey(name: 'publishSecondaryCameraTrack') - final bool? publishSecondaryCameraTrack; - - @JsonKey(name: 'publishThirdCameraTrack') - final bool? publishThirdCameraTrack; - - @JsonKey(name: 'publishFourthCameraTrack') - final bool? publishFourthCameraTrack; - - @JsonKey(name: 'publishMicrophoneTrack') - final bool? publishMicrophoneTrack; - - @JsonKey(name: 'publishScreenCaptureVideo') - final bool? publishScreenCaptureVideo; - - @JsonKey(name: 'publishScreenCaptureAudio') - final bool? publishScreenCaptureAudio; - - @JsonKey(name: 'publishScreenTrack') - final bool? publishScreenTrack; - - @JsonKey(name: 'publishSecondaryScreenTrack') - final bool? publishSecondaryScreenTrack; - - @JsonKey(name: 'publishThirdScreenTrack') - final bool? publishThirdScreenTrack; - - @JsonKey(name: 'publishFourthScreenTrack') - final bool? publishFourthScreenTrack; - - @JsonKey(name: 'publishCustomAudioTrack') - final bool? publishCustomAudioTrack; - - @JsonKey(name: 'publishCustomAudioTrackId') - final int? publishCustomAudioTrackId; - - @JsonKey(name: 'publishCustomVideoTrack') - final bool? publishCustomVideoTrack; - - @JsonKey(name: 'publishEncodedVideoTrack') - final bool? publishEncodedVideoTrack; - - @JsonKey(name: 'publishMediaPlayerAudioTrack') - final bool? publishMediaPlayerAudioTrack; - - @JsonKey(name: 'publishMediaPlayerVideoTrack') - final bool? publishMediaPlayerVideoTrack; - - @JsonKey(name: 'publishTranscodedVideoTrack') - final bool? publishTranscodedVideoTrack; - - @JsonKey(name: 'publishMixedAudioTrack') - final bool? publishMixedAudioTrack; - - @JsonKey(name: 'autoSubscribeAudio') - final bool? autoSubscribeAudio; - - @JsonKey(name: 'autoSubscribeVideo') - final bool? autoSubscribeVideo; - - @JsonKey(name: 'enableAudioRecordingOrPlayout') - final bool? enableAudioRecordingOrPlayout; - - @JsonKey(name: 'publishMediaPlayerId') - final int? publishMediaPlayerId; - - @JsonKey(name: 'clientRoleType') - final ClientRoleType? clientRoleType; - - @JsonKey(name: 'audienceLatencyLevel') - final AudienceLatencyLevelType? audienceLatencyLevel; - - @JsonKey(name: 'defaultVideoStreamType') - final VideoStreamType? defaultVideoStreamType; - - @JsonKey(name: 'channelProfile') - final ChannelProfileType? channelProfile; - - @JsonKey(name: 'audioDelayMs') - final int? audioDelayMs; - - @JsonKey(name: 'mediaPlayerAudioDelayMs') - final int? mediaPlayerAudioDelayMs; - - @JsonKey(name: 'token') - final String? token; - - @JsonKey(name: 'enableBuiltInMediaEncryption') - final bool? enableBuiltInMediaEncryption; - - @JsonKey(name: 'publishRhythmPlayerTrack') - final bool? publishRhythmPlayerTrack; - - @JsonKey(name: 'isInteractiveAudience') - final bool? isInteractiveAudience; - - @JsonKey(name: 'customVideoTrackId') - final int? customVideoTrackId; - - @JsonKey(name: 'isAudioFilterable') - final bool? isAudioFilterable; - - @JsonKey(name: 'parameters') - final String? parameters; - - factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) => - _$ChannelMediaOptionsFromJson(json); - - Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this); -} -

-

- public class ChannelMediaOptions { - public Boolean publishCameraTrack; - public Boolean publishSecondaryCameraTrack; - public Boolean publishThirdCameraTrack; - public Boolean publishFourthCameraTrack; - public Boolean publishMicrophoneTrack; - public Boolean publishScreenCaptureVideo; - public Boolean publishScreenCaptureAudio; - public Boolean publishCustomAudioTrack; - public Integer publishCustomAudioTrackId; - public Boolean publishCustomVideoTrack; - public Boolean publishEncodedVideoTrack; - public Boolean publishMediaPlayerAudioTrack; - public Boolean publishMediaPlayerVideoTrack; - public Boolean publishTranscodedVideoTrack; - public Boolean publishMixedAudioTrack; - public Boolean publishLipSyncTrack; - public Boolean autoSubscribeAudio; - public Boolean autoSubscribeVideo; - public Boolean enableAudioRecordingOrPlayout; - public Integer publishMediaPlayerId; - public Integer clientRoleType; - public Integer audienceLatencyLevel; - public Integer defaultVideoStreamType; - public Integer channelProfile; - public Integer mediaPlayerAudioDelayMs; - public String token; - public Boolean enableBuiltInMediaEncryption; - public Boolean publishRhythmPlayerTrack; - public Boolean isInteractiveAudience; - public Integer customVideoTrackId; - public Boolean isAudioFilterable; - } - export class ChannelMediaOptions { - - public publishCameraTrack?:boolean; - - public publishSecondaryCameraTrack?:boolean; - - public publishMicrophoneTrack?:boolean; - - public publishScreenCaptureVideo?:boolean; - - public publishScreenCaptureAudio?:boolean; - - public publishCustomAudioTrack?:boolean; - - public publishCustomAudioTrackId?:number; - - public publishCustomVideoTrack?:boolean; - - public publishEncodedVideoTrack?:boolean; - - public publishMediaPlayerAudioTrack?:boolean; - - public publishMediaPlayerVideoTrack?:boolean; - - public publishTranscodedVideoTrack?:boolean; - - public publishMixedAudioTrack?:boolean; - - public autoSubscribeAudio?:boolean; - - public autoSubscribeVideo?:boolean; - - public enableAudioRecordingOrPlayout?:boolean; - - public publishMediaPlayerId?:number; - - public clientRoleType?:number; - - public audienceLatencyLevel?:number; - - public defaultVideoStreamType?:number; - - public channelProfile?:number; - - public audioDelayMs?:number; - - public mediaPlayerAudioDelayMs?:number; - - public enableBuiltInMediaEncryption?:boolean; - - public publishRhythmPlayerTrack?:boolean; - - public isInteractiveAudience?:boolean; - - public customVideoTrackId?:number; - - public isAudioFilterable?:boolean; - - public startPreview?:boolean; - public constructor() { - } -} - __attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject - @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; - @property(assign, nonatomic) NSInteger publishMediaPlayerId; - @property(assign, nonatomic) AgoraClientRole clientRoleType; - @property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel; - @property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType; - @property(assign, nonatomic) AgoraChannelProfile channelProfile; - @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; - - @end - struct ChannelMediaOptions { - Optional<bool> publishCameraTrack; - Optional<bool> publishSecondaryCameraTrack; - Optional<bool> publishThirdCameraTrack; - Optional<bool> publishFourthCameraTrack; - Optional<bool> publishMicrophoneTrack; - - #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - Optional<bool> publishScreenCaptureVideo; - Optional<bool> publishScreenCaptureAudio; - #else - Optional<bool> publishScreenTrack; - Optional<bool> publishSecondaryScreenTrack; - Optional<bool> publishThirdScreenTrack; - Optional<bool> publishFourthScreenTrack; - #endif - - Optional<bool> publishCustomAudioTrack; - Optional<int> publishCustomAudioTrackId; - Optional<bool> publishCustomVideoTrack; - Optional<bool> publishEncodedVideoTrack; - Optional<bool> publishMediaPlayerAudioTrack; - Optional<bool> publishMediaPlayerVideoTrack; - Optional<bool> publishTranscodedVideoTrack; - Optional<bool> publishMixedAudioTrack; - Optional<bool> publishLipSyncTrack; - Optional<bool> autoSubscribeAudio; - Optional<bool> autoSubscribeVideo; - Optional<bool> enableAudioRecordingOrPlayout; - Optional<int> publishMediaPlayerId; - Optional<CLIENT_ROLE_TYPE> clientRoleType; - Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel; - Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType; - Optional<CHANNEL_PROFILE_TYPE> channelProfile; - Optional<const char*> token; - Optional<bool> enableBuiltInMediaEncryption; - Optional<bool> publishRhythmPlayerTrack; - Optional<bool> isInteractiveAudience; - - Optional<video_track_id_t> customVideoTrackId; - - Optional<bool> isAudioFilterable; - - ChannelMediaOptions() {} - ~ChannelMediaOptions() {} - USTRUCT(BlueprintType) -struct FChannelMediaOptions -{ - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishSecondaryCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishThirdCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishFourthCameraTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMicrophoneTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenCaptureVideo = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenCaptureAudio = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishSecondaryScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishThirdScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishFourthScreenTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCustomAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool publishCustomAudioTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int publishCustomAudioTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishCustomVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishEncodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMediaPlayerAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMediaPlayerVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishTranscodedVideoTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishMixedAudioTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional publishLipSyncTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional autoSubscribeAudio = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional autoSubscribeVideo = EAgoraOptional::AGORA_TRUE_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional enableAudioRecordingOrPlayout = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool publishMediaPlayerId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int publishMediaPlayerId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool clientRoleType_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - ECLIENT_ROLE_TYPE clientRoleType = ECLIENT_ROLE_TYPE::CLIENT_ROLE_BROADCASTER; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool audienceLatencyLevel_SetValue = false; - 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") - bool defaultVideoStreamType_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EVIDEO_STREAM_TYPE defaultVideoStreamType = EVIDEO_STREAM_TYPE::VIDEO_STREAM_HIGH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool channelProfile_SetValue = true; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - ECHANNEL_PROFILE_TYPE channelProfile = ECHANNEL_PROFILE_TYPE::CHANNEL_PROFILE_LIVE_BROADCASTING; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool audioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int audioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool mediaPlayerAudioDelayMs_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int mediaPlayerAudioDelayMs = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool token_SetValue = false; - 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") - EAgoraOptional publishRhythmPlayerTrack = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional isInteractiveAudience = EAgoraOptional::AGORA_NULL_VALUE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool customVideoTrackId_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - int64 customVideoTrackId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - EAgoraOptional isAudioFilterable = EAgoraOptional::AGORA_NULL_VALUE; - - FChannelMediaOptions(){} - FChannelMediaOptions(const agora::rtc::ChannelMediaOptions & AgoraData){ - - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCameraTrack, AgoraData.publishCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishSecondaryCameraTrack, AgoraData.publishSecondaryCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishThirdCameraTrack, AgoraData.publishThirdCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishFourthCameraTrack, AgoraData.publishFourthCameraTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMicrophoneTrack, AgoraData.publishMicrophoneTrack) -#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenCaptureVideo, AgoraData.publishScreenCaptureVideo) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenCaptureAudio, AgoraData.publishScreenCaptureAudio) -#else - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishScreenTrack, AgoraData.publishScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishSecondaryScreenTrack, AgoraData.publishSecondaryScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishThirdScreenTrack, AgoraData.publishThirdScreenTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishFourthScreenTrack, AgoraData.publishFourthScreenTrack) -#endif - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCustomAudioTrack, AgoraData.publishCustomAudioTrack) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->publishCustomAudioTrackId, AgoraData.publishCustomAudioTrackId) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishCustomVideoTrack, AgoraData.publishCustomVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishEncodedVideoTrack, AgoraData.publishEncodedVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMediaPlayerAudioTrack, AgoraData.publishMediaPlayerAudioTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMediaPlayerVideoTrack, AgoraData.publishMediaPlayerVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishTranscodedVideoTrack, AgoraData.publishTranscodedVideoTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishMixedAudioTrack, AgoraData.publishMixedAudioTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishLipSyncTrack, AgoraData.publishLipSyncTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->autoSubscribeAudio, AgoraData.autoSubscribeAudio) - SET_UEBP_OPTIONAL_VAL_BOOL(this->autoSubscribeVideo, AgoraData.autoSubscribeVideo) - SET_UEBP_OPTIONAL_VAL_BOOL(this->enableAudioRecordingOrPlayout, AgoraData.enableAudioRecordingOrPlayout) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->publishMediaPlayerId, AgoraData.publishMediaPlayerId) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->clientRoleType,AgoraData.clientRoleType,static_cast<ECLIENT_ROLE_TYPE>(AgoraData.clientRoleType.value())) - - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->audienceLatencyLevel, AgoraData.audienceLatencyLevel, static_cast<EAUDIENCE_LATENCY_LEVEL_TYPE>(AgoraData.audienceLatencyLevel.value())) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->defaultVideoStreamType, AgoraData.defaultVideoStreamType, static_cast<EVIDEO_STREAM_TYPE>(AgoraData.defaultVideoStreamType.value())) - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->channelProfile, AgoraData.channelProfile, static_cast<ECHANNEL_PROFILE_TYPE>(AgoraData.channelProfile.value())) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->audioDelayMs, AgoraData.audioDelayMs) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->mediaPlayerAudioDelayMs, AgoraData.mediaPlayerAudioDelayMs) - - SET_UEBP_OPTIONAL_VAL_FString(this->token,AgoraData.token) - - SET_UEBP_OPTIONAL_VAL_BOOL(this->enableBuiltInMediaEncryption, AgoraData.enableBuiltInMediaEncryption) - SET_UEBP_OPTIONAL_VAL_BOOL(this->publishRhythmPlayerTrack, AgoraData.publishRhythmPlayerTrack) - SET_UEBP_OPTIONAL_VAL_BOOL(this->isInteractiveAudience, AgoraData.isInteractiveAudience) - SET_UEBP_OPTIONAL_VAL_DIR_ASSIGN(this->customVideoTrackId, AgoraData.customVideoTrackId) - SET_UEBP_OPTIONAL_VAL_BOOL(this->isAudioFilterable, AgoraData.isAudioFilterable) - } - agora::rtc::ChannelMediaOptions CreateAgoraData() const{ - agora::rtc::ChannelMediaOptions AgoraData; - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCameraTrack, this->publishCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishSecondaryCameraTrack, this->publishSecondaryCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishThirdCameraTrack, this->publishThirdCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishFourthCameraTrack, this->publishFourthCameraTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMicrophoneTrack, this->publishMicrophoneTrack) -#if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenCaptureVideo, this->publishScreenCaptureVideo) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenCaptureAudio, this->publishScreenCaptureAudio) -#else - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishScreenTrack, this->publishScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishSecondaryScreenTrack, this->publishSecondaryScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishThirdScreenTrack, this->publishThirdScreenTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishFourthScreenTrack, this->publishFourthScreenTrack) -#endif - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCustomAudioTrack, this->publishCustomAudioTrack) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.publishCustomAudioTrackId, this->publishCustomAudioTrackId) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishCustomVideoTrack, this->publishCustomVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishEncodedVideoTrack, this->publishEncodedVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMediaPlayerAudioTrack, this->publishMediaPlayerAudioTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMediaPlayerVideoTrack, this->publishMediaPlayerVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishTranscodedVideoTrack, this->publishTranscodedVideoTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishMixedAudioTrack, this->publishMixedAudioTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishLipSyncTrack, this->publishLipSyncTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.autoSubscribeAudio, this->autoSubscribeAudio) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.autoSubscribeVideo, this->autoSubscribeVideo) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.enableAudioRecordingOrPlayout, this->enableAudioRecordingOrPlayout) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.publishMediaPlayerId, this->publishMediaPlayerId) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.clientRoleType, this->clientRoleType,static_cast<agora::rtc::CLIENT_ROLE_TYPE>(this->clientRoleType)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.audienceLatencyLevel, this->audienceLatencyLevel, static_cast<agora::rtc::AUDIENCE_LATENCY_LEVEL_TYPE>(this->audienceLatencyLevel)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.defaultVideoStreamType, this->defaultVideoStreamType, static_cast<agora::rtc::VIDEO_STREAM_TYPE>(this->defaultVideoStreamType)) - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.channelProfile, this->channelProfile, static_cast<agora::CHANNEL_PROFILE_TYPE>(this->channelProfile)) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.audioDelayMs, this->audioDelayMs) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.mediaPlayerAudioDelayMs, this->mediaPlayerAudioDelayMs) - SET_AGORA_OPTIONAL_VAL_CHARPTR______MEMOALLOC(AgoraData.token, this->token) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.enableBuiltInMediaEncryption, this->enableBuiltInMediaEncryption) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.publishRhythmPlayerTrack, this->publishRhythmPlayerTrack) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isInteractiveAudience, this->isInteractiveAudience) - SET_AGORA_OPTIONAL_VAL_DIR_ASSIGN(AgoraData.customVideoTrackId, this->customVideoTrackId) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isAudioFilterable, this->isAudioFilterable) - return AgoraData; - } - void FreeAgoraData(agora::rtc::ChannelMediaOptions& AgoraData) const { - SET_AGORA_OPTIONAL_VAL_CHARPTR______MEMOFREE(AgoraData.token) - } -}; - struct ChannelMediaOptions { - Optional<bool> publishCameraTrack; - Optional<bool> publishSecondaryCameraTrack; - Optional<bool> publishMicrophoneTrack; - - #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) - Optional<bool> publishScreenCaptureVideo; - Optional<bool> publishScreenCaptureAudio; - #else - Optional<bool> publishScreenTrack; - Optional<bool> publishSecondaryScreenTrack; - #endif - - Optional<bool> publishCustomAudioTrack; - Optional<int> publishCustomAudioTrackId; - Optional<bool> publishCustomVideoTrack; - Optional<bool> publishEncodedVideoTrack; - Optional<bool> publishMediaPlayerAudioTrack; - Optional<bool> publishMediaPlayerVideoTrack; - Optional<bool> publishTranscodedVideoTrack; - Optional<bool> autoSubscribeAudio; - Optional<bool> autoSubscribeVideo; - Optional<bool> enableAudioRecordingOrPlayout; - Optional<int> publishMediaPlayerId; - Optional<CLIENT_ROLE_TYPE> clientRoleType; - Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel; - Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType; - Optional<CHANNEL_PROFILE_TYPE> channelProfile; - Optional<const char*> token; - Optional<bool> enableBuiltInMediaEncryption; - Optional<bool> publishRhythmPlayerTrack; - Optional<bool> isInteractiveAudience; - - Optional<video_track_id_t> customVideoTrackId; - - Optional<bool> isAudioFilterable; - - ChannelMediaOptions() {} - ~ChannelMediaOptions() {} - export class ChannelMediaOptions { - - publishCameraTrack?: boolean; - - publishSecondaryCameraTrack?: boolean; - - publishThirdCameraTrack?: boolean; - - publishFourthCameraTrack?: boolean; - - publishMicrophoneTrack?: boolean; - - publishScreenTrack?: boolean; - - publishSecondaryScreenTrack?: boolean; - - publishThirdScreenTrack?: boolean; - - publishFourthScreenTrack?: boolean; - - publishCustomAudioTrack?: boolean; - - publishCustomAudioTrackId?: number; - - publishCustomVideoTrack?: boolean; - - publishEncodedVideoTrack?: boolean; - - publishMediaPlayerAudioTrack?: boolean; - - publishMediaPlayerVideoTrack?: boolean; - - publishTranscodedVideoTrack?: boolean; - - publishLipSyncTrack?: boolean; - - autoSubscribeAudio?: boolean; - - autoSubscribeVideo?: boolean; - - enableAudioRecordingOrPlayout?: boolean; - - publishMediaPlayerId?: number; - - clientRoleType?: ClientRoleType; - - audienceLatencyLevel?: AudienceLatencyLevelType; - - defaultVideoStreamType?: VideoStreamType; - - channelProfile?: ChannelProfileType; - - token?: string; - - enableBuiltInMediaEncryption?: boolean; - - publishRhythmPlayerTrack?: boolean; - - isInteractiveAudience?: boolean; - - customVideoTrackId?: number; - - isAudioFilterable?: boolean; - } - 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>(); - - } - export class ChannelMediaOptions { - - publishCameraTrack?: boolean; - - publishSecondaryCameraTrack?: boolean; - - publishThirdCameraTrack?: boolean; - - publishFourthCameraTrack?: boolean; - - publishMicrophoneTrack?: boolean; - - publishScreenCaptureVideo?: boolean; - - publishScreenCaptureAudio?: boolean; - - publishSecondaryScreenTrack?: boolean; - - publishThirdScreenTrack?: boolean; - - publishFourthScreenTrack?: boolean; - - publishCustomAudioTrack?: boolean; - - publishCustomAudioTrackId?: number; - - publishCustomVideoTrack?: boolean; - - publishEncodedVideoTrack?: boolean; - - publishMediaPlayerAudioTrack?: boolean; - - publishMediaPlayerVideoTrack?: boolean; - - publishTranscodedVideoTrack?: boolean; - - publishLipSyncTrack?: boolean; - - autoSubscribeAudio?: boolean; - - autoSubscribeVideo?: boolean; - - enableAudioRecordingOrPlayout?: boolean; - - publishMediaPlayerId?: number; - - clientRoleType?: ClientRoleType; - - audienceLatencyLevel?: AudienceLatencyLevelType; - - defaultVideoStreamType?: VideoStreamType; - - channelProfile?: ChannelProfileType; - - token?: string; - - enableBuiltInMediaEncryption?: boolean; - - publishRhythmPlayerTrack?: boolean; - - isInteractiveAudience?: boolean; - - customVideoTrackId?: number; - - isAudioFilterable?: boolean; - } - @JsonSerializable(explicitToJson: true, includeIfNull: false) - class ChannelMediaOptions { - const ChannelMediaOptions( - {this.publishCameraTrack, - this.publishSecondaryCameraTrack, - this.publishThirdCameraTrack, - this.publishFourthCameraTrack, - this.publishMicrophoneTrack, - this.publishScreenCaptureVideo, - this.publishScreenCaptureAudio, - this.publishScreenTrack, - this.publishSecondaryScreenTrack, - this.publishThirdScreenTrack, - this.publishFourthScreenTrack, - this.publishCustomAudioTrack, - this.publishCustomAudioTrackId, - this.publishCustomVideoTrack, - this.publishEncodedVideoTrack, - this.publishMediaPlayerAudioTrack, - this.publishMediaPlayerVideoTrack, - this.publishTranscodedVideoTrack, - this.publishMixedAudioTrack, - this.publishLipSyncTrack, - this.autoSubscribeAudio, - this.autoSubscribeVideo, - this.enableAudioRecordingOrPlayout, - this.publishMediaPlayerId, - this.clientRoleType, - this.audienceLatencyLevel, - this.defaultVideoStreamType, - this.channelProfile, - this.audioDelayMs, - this.mediaPlayerAudioDelayMs, - this.token, - this.enableBuiltInMediaEncryption, - this.publishRhythmPlayerTrack, - this.isInteractiveAudience, - this.customVideoTrackId, - this.isAudioFilterable, - this.parameters}); - - @JsonKey(name: 'publishCameraTrack') - final bool? publishCameraTrack; - - @JsonKey(name: 'publishSecondaryCameraTrack') - final bool? publishSecondaryCameraTrack; - - @JsonKey(name: 'publishThirdCameraTrack') - final bool? publishThirdCameraTrack; - - @JsonKey(name: 'publishFourthCameraTrack') - final bool? publishFourthCameraTrack; - - @JsonKey(name: 'publishMicrophoneTrack') - final bool? publishMicrophoneTrack; - - @JsonKey(name: 'publishScreenCaptureVideo') - final bool? publishScreenCaptureVideo; - - @JsonKey(name: 'publishScreenCaptureAudio') - final bool? publishScreenCaptureAudio; - - @JsonKey(name: 'publishScreenTrack') - final bool? publishScreenTrack; - - @JsonKey(name: 'publishSecondaryScreenTrack') - final bool? publishSecondaryScreenTrack; - - @JsonKey(name: 'publishThirdScreenTrack') - final bool? publishThirdScreenTrack; - - @JsonKey(name: 'publishFourthScreenTrack') - final bool? publishFourthScreenTrack; - - @JsonKey(name: 'publishCustomAudioTrack') - final bool? publishCustomAudioTrack; - - @JsonKey(name: 'publishCustomAudioTrackId') - final int? publishCustomAudioTrackId; - - @JsonKey(name: 'publishCustomVideoTrack') - final bool? publishCustomVideoTrack; - - @JsonKey(name: 'publishEncodedVideoTrack') - final bool? publishEncodedVideoTrack; - - @JsonKey(name: 'publishMediaPlayerAudioTrack') - final bool? publishMediaPlayerAudioTrack; - - @JsonKey(name: 'publishMediaPlayerVideoTrack') - final bool? publishMediaPlayerVideoTrack; - - @JsonKey(name: 'publishTranscodedVideoTrack') - final bool? publishTranscodedVideoTrack; - - @JsonKey(name: 'publishMixedAudioTrack') - final bool? publishMixedAudioTrack; - - @JsonKey(name: 'publishLipSyncTrack') - final bool? publishLipSyncTrack; - - @JsonKey(name: 'autoSubscribeAudio') - final bool? autoSubscribeAudio; - - @JsonKey(name: 'autoSubscribeVideo') - final bool? autoSubscribeVideo; - - @JsonKey(name: 'enableAudioRecordingOrPlayout') - final bool? enableAudioRecordingOrPlayout; - - @JsonKey(name: 'publishMediaPlayerId') - final int? publishMediaPlayerId; - - @JsonKey(name: 'clientRoleType') - final ClientRoleType? clientRoleType; - - @JsonKey(name: 'audienceLatencyLevel') - final AudienceLatencyLevelType? audienceLatencyLevel; - - @JsonKey(name: 'defaultVideoStreamType') - final VideoStreamType? defaultVideoStreamType; - - @JsonKey(name: 'channelProfile') - final ChannelProfileType? channelProfile; - - @JsonKey(name: 'audioDelayMs') - final int? audioDelayMs; - - @JsonKey(name: 'mediaPlayerAudioDelayMs') - final int? mediaPlayerAudioDelayMs; - - @JsonKey(name: 'token') - final String? token; - - @JsonKey(name: 'enableBuiltInMediaEncryption') - final bool? enableBuiltInMediaEncryption; - - @JsonKey(name: 'publishRhythmPlayerTrack') - final bool? publishRhythmPlayerTrack; - - @JsonKey(name: 'isInteractiveAudience') - final bool? isInteractiveAudience; - - @JsonKey(name: 'customVideoTrackId') - final int? customVideoTrackId; - - @JsonKey(name: 'isAudioFilterable') - final bool? isAudioFilterable; - - @JsonKey(name: 'parameters') - final String? parameters; - - factory ChannelMediaOptions.fromJson(Map<String, dynamic> json) => - _$ChannelMediaOptionsFromJson(json); - - Map<String, dynamic> toJson() => _$ChannelMediaOptionsToJson(this); - } -

-
-
Agora supports publishing multiple audio streams and one video stream at the same time and in the same . For example, publishMicrophoneTrack, publishCustomAudioTrack, and publishMediaPlayerAudioTrack can be set as at the same time, but only one of publishCameraTrack, publishScreenCaptureVideo, publishScreenTrack, publishCustomVideoTrack, or publishEncodedVideoTrack can be set as .Agora recommends that you set member parameter values yourself according to your business scenario, otherwise the SDK will automatically assign values to member parameters. -
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - publishCameraTrack - Whether to publish the video captured by the camera:
    -
  • : Publish the video captured by the camera.
  • -
  • : Do not publish the video captured by the camera.
  • -
-
- - publishSecondaryCameraTrack - Whether to publish the video captured by the second camera:
    -
  • : Publish the video captured by the second camera.
  • -
  • : Do not publish the video captured by the second camera.
  • -
-
- - publishMicrophoneTrack - Whether to publish the audio captured by the microphone:
    -
  • : Publish the audio captured by the microphone.
  • -
  • : Do not publish the audio captured by the microphone.
  • -
- - -
  • As of v4.0.0, the parameter name is changed from publishAudioTrack to publishMicrophoneTrack.
  • -
  • As of v6.0.0, the parameter name is changed from publishAudioTrack to publishMicrophoneTrack.
  • -
  • If you set this parameter as , SDK turns off microphone capturing.
  • -
  • If you want to publish the audio streams captured by your microphone, ensure enableAudioRecordingOrPlayout is set as .
  • -
-
-
- - publishThirdCameraTrack - Whether to publish the video captured by the third camera:
    -
  • : Publish the video captured by the third camera.
  • -
  • : Do not publish the video captured by the third camera.
  • -
- This parameter is for Android, Windows and macOS only.This parameter is for Android only.
-
- - publishFourthCameraTrack - Whether to publish the video captured by the fourth camera:
    -
  • : Publish the video captured by the fourth camera.
  • -
  • : Do not publish the video captured by the fourth camera.
  • -
- This parameter is for Android, Windows and macOS only.This parameter is for Android only.
-
- - publishScreenTrack - -

Whether to publish the video captured from the screen:

    -
  • : Publish the video captured from the screen.
  • -
  • : Do not publish the video captured from the screen.
  • -

- This is for Windows and macOS only. -
-
- - publishScreenCaptureVideo - -

Whether to publish the video captured from the screen:

    -
  • : Publish the video captured from the screen.
  • -
  • : Do not publish the video captured from the screen.
  • -

- This parameter is for Android and iOS only. - As of v4.0.0, the parameter name is changed from publishScreenTrack to publishScreenCaptureVideo.
-
- - publishScreenCaptureAudio - -

Whether to publish the audio captured from the screen:

    -
  • : Publish the audio captured from the screen.
  • -
  • : Publish the audio captured from the screen.
  • -

- This parameter is for Android and iOS only. -
-
- - publishSecondaryScreenTrack - Whether to publish the video captured from the second screen:
    -
  • : Publish the video captured from the second screen.
  • -
  • : Do not publish the video captured from the second screen.
  • -
-
-
- - publishThirdScreenTrack - Whether to publish the video captured from the third screen:
    -
  • : Publish the captured video from the third screen.
  • -
  • : Do not publish the video captured from the third screen.
  • -
-

- This is for Windows and macOS only.

-
-
- - publishFourthScreenTrack - Whether to publish the video captured from the fourth screen:
    -
  • : Publish the captured video from the fourth screen.
  • -
  • : Do not publish the video captured from the fourth screen.
  • -
-

- This is for Windows and macOS only.

-
-
- - publishTranscodedVideoTrack - Whether to publish the local transcoded video:
    -
  • : Publish the local transcoded video.
  • -
  • : Do not publish the local transcoded video.
  • -
- As of v4.2.0, the parameter name is corrected from publishTrancodedVideoTrack to publishTranscodedVideoTrack. -
-
- - publishMixedAudioTrack - Whether to publish the mixed audio track:
    -
  • : Publish the mixed audio track.
  • -
  • : Do not publish the mixed audio track.
  • -
-
-
- - publishLipSyncTrack - Whether to publish the video track processed by the speech driven extension:
    -
  • : Publish the video track processed by the speech driven extension.
  • -
  • : (Default) Do not publish the video track processed by the speech driven extension.
  • -
-
-
- - publishCustomAudioTrack - Whether to publish the audio captured from a custom source:
    -
  • : Publish the audio captured from the custom source.
  • -
  • : Do not publish the captured audio from a custom source.
  • -
-
- - publishCustomAudioTrackId - The ID of the custom audio track to be published. The default value is 0. You can obtain the custom audio track ID through the method. - - - publishCustomVideoTrack - Whether to publish the video captured from a custom source:
    -
  • : Publish the video captured from the custom source.
  • -
  • : Do not publish the captured video from a custom source.
  • -
-
-
- - publishEncodedVideoTrack - Whether to publish the encoded video:
    -
  • : Publish the encoded video.
  • -
  • : Do not publish the encoded video.
  • -
-
- - publishMediaPlayerAudioTrack - Whether to publish the audio from the media player:
    -
  • : Publish the audio from the media player.
  • -
  • : Do not publish the audio from the media player.
  • -
-
- - publishMediaPlayerVideoTrack - Whether to publish the video from the media player:
    -
  • : Publish the video from the media player.
  • -
  • : Do not publish the video from the media player.
  • -
-
- - autoSubscribeAudio - Whether to automatically subscribe to all remote audio streams when the user joins a channel:
    -
  • : Subscribe to all remote audio streams.
  • -
  • : Do not automatically subscribe to any remote audio streams.
  • -
-
- - autoSubscribeVideo - Whether to automatically subscribe to all remote video streams when the user joins the channel:
    -
  • : Subscribe to all remote video streams.
  • -
  • : Do not automatically subscribe to any remote video streams.
  • -
-
- - enableAudioRecordingOrPlayout - Whether to enable audio capturing or playback:
    -
  • : Enable audio capturing or playback.
  • -
  • : Do not enable audio capturing or playback.
  • -
- If you need to publish the audio streams captured by your microphone, ensure this parameter is set as .
-
- - publishMediaPlayerId - The ID of the media player to be published. The default value is 0. - - - clientRoleType - - - - clientRoleType - The user role. See . - - - - - - - defaultVideoStreamType - - - - channelProfile - - - - audioDelayMs - -

Delay (in milliseconds) for sending audio frames. You can use this parameter to set the delay of the audio frames that need to be sent, to ensure audio and video synchronization.

-

To switch off the delay, set the value to 0.

-
-
- - publishCustomAudioTrackAec - Whether to publish audio frames processed by an external echo cancellation module.
    -
  • : Publish audio frames processed by the external echo cancellation module.
  • -
  • : Do not publish to publish audio frames processed by the external echo cancellation module.
  • -
-
- - token - -

(Optional) The token generated on your server for authentication. See .

- -
    -
  • This parameter takes effect only when calling or .
  • -
  • Ensure that the App ID, channel name, and user name used for creating the token are the same as those used by the method for initializing the RTC engine, and those used by the and methods for joining the channel.
  • -
-
- - startPreview - Whether to automatically start the preview when joining a channel:
    -
  • : Do not automatically start the preview. Ensure that you have called the method to set the local video property; otherwise, the preview is not enabled.
  • -
  • : Do not automatically start the preview.
  • -
-
- - publishRhythmPlayerTrack - Whether to publish the sound of a metronome to remote users:
    -
  • : Publish processed audio frames. Both the local user and remote users can hear the metronome.
  • -
  • : Do not publish the sound of the metronome. Only the local user can hear the metronome.
  • -
-
- - isInteractiveAudience - Whether to enable interactive mode:
    -
  • : Enable interactive mode. Once this mode is enabled and the user role is set as audience, the user can receive remote video streams with low latency.
  • -
  • :Do not enable interactive mode. If this mode is disabled, the user receives the remote video streams in default settings.
  • -
- -
    -
  • This parameter only applies to co-streaming scenarios. The cohosts need to call the method to join the other host's channel as an audience member, and set isInteractiveAudience to .
  • -
  • This parameter takes effect only when the user role is .
  • -
-
- - customVideoTrackId - The video track ID returned by calling the method. The default value is 0. - - - isAudioFilterable - Whether the audio stream being published is filtered according to the volume algorithm:
    -
  • : The audio stream is filtered. If the audio stream filter is not enabled, this setting does not takes effect.
  • -
  • : The audio stream is not filtered.
  • -
- If you need to enable this function, contact .
-
-
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_externalvideoframe.dita b/en-US/en-US/dita/RTC-NG/API/class_externalvideoframe.dita deleted file mode 100644 index 3e158cad3d9..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_externalvideoframe.dita +++ /dev/null @@ -1,514 +0,0 @@ - - - - <ph keyref="ExternalVideoFrame"/> - The external video frame. - -
-

- public class AgoraVideoFrame { - public static final int FORMAT_NONE = -1; - public static final int FORMAT_TEXTURE_2D = 10; - public static final int FORMAT_TEXTURE_OES = 11; - public static final int FORMAT_I420 = 1; - public static final int FORMAT_BGRA = 2; - public static final int FORMAT_NV21 = 3; - public static final int FORMAT_RGBA = 4; - public static final int FORMAT_I422 = 16; - public static final int BUFFER_TYPE_NONE = -1; - public static final int BUFFER_TYPE_BUFFER = 1; - public static final int BUFFER_TYPE_ARRAY = 2; - public static final int BUFFER_TYPE_TEXTURE = 3; - public AgoraVideoFrame() { - format = 10; - timeStamp = 0; - stride = 0; - height = 0; - textureID = 0; - syncMode = true; - transform = null; - eglContext10 = null; - eglContext14 = null; - buf = null; - cropLeft = 0; - cropTop = 0; - cropRight = 0; - cropBottom = 0; - rotation = 0; - alphaStitchMode = 0; - } - - public int format; - public long timeStamp; - public int stride; - public int height; - public int textureID; - public boolean syncMode; - public float[] transform; - public javax.microedition.khronos.egl.EGLContext eglContext10; - public android.opengl.EGLContext eglContext14; - public byte[] buf; - public int cropLeft; - public int cropTop; - public int cropRight; - public int cropBottom; - public int rotation; - public int alphaStitchMode; - @Override - public String toString() { - return "AgoraVideoFrame{" - + "format=" + format + ", timeStamp=" + timeStamp + ", stride=" + stride - + ", height=" + height + ", textureID=" + textureID - + ", buf.length=" + (buf != null ? buf.length : 0) + ", cropLeft=" + cropLeft - + ", cropTop=" + cropTop + ", cropRight=" + cropRight + ", cropBottom=" + cropBottom - + ", rotation=" + rotation + ", alphaStitchMode=" + alphaStitchMode + '}'; - } -} - - -__attribute__((visibility("default"))) @interface AgoraVideoFrame : NSObject -@property(assign, nonatomic) NSInteger format; - -@property(assign, nonatomic) CMTime time; -@property(assign, nonatomic) int stride DEPRECATED_MSG_ATTRIBUTE("use strideInPixels instead"); - -@property(assign, nonatomic) int strideInPixels; -@property(assign, nonatomic) int height; -@property(assign, nonatomic) CVPixelBufferRef _Nullable textureBuf; - -@property(strong, nonatomic) IMAGE_CLASS * _Nullable image; - -@property(strong, nonatomic) NSData *_Nullable dataBuf; -@property(strong, nonatomic) NSData *_Nullable alphaBuf; -@property(assign, nonatomic) AgoraAlphaStitchMode alphaStitchMode; - -@property(assign, nonatomic) int cropLeft; -@property(assign, nonatomic) int cropTop; -@property(assign, nonatomic) int cropRight; -@property(assign, nonatomic) int cropBottom; -@property(assign, nonatomic) int rotation; -@property(strong, nonatomic) AgoraColorSpace *_Nullable colorSpace; - -- (void)fillAlphaData; -@end - -struct ExternalVideoFrame { - ExternalVideoFrame() - : type(VIDEO_BUFFER_RAW_DATA), - format(VIDEO_PIXEL_DEFAULT), - buffer(NULL), - stride(0), - height(0), - cropLeft(0), - cropTop(0), - cropRight(0), - cropBottom(0), - rotation(0), - timestamp(0), - eglContext(NULL), - eglType(EGL_CONTEXT10), - textureId(0), - fenceObject(0), - metadataBuffer(NULL), - metadataSize(0), - alphaBuffer(NULL), - fillAlphaBuffer(false), - alphaStitchMode(NO_ALPHA_STITCH), - d3d11Texture2d(NULL), - textureSliceIndex(0){} - - enum EGL_CONTEXT_TYPE { - EGL_CONTEXT10 = 0, - EGL_CONTEXT14 = 1, - }; - - enum VIDEO_BUFFER_TYPE { - VIDEO_BUFFER_RAW_DATA = 1, - VIDEO_BUFFER_ARRAY = 2, - VIDEO_BUFFER_TEXTURE = 3, - }; - - VIDEO_BUFFER_TYPE type; - VIDEO_PIXEL_FORMAT format; - void* buffer; - int stride; - int height; - int cropLeft; - int cropTop; - int cropRight; - int cropBottom; - int rotation; - long long timestamp; - void* eglContext; - EGL_CONTEXT_TYPE eglType; - int textureId; - long long fenceObject; - float matrix[16]; - uint8_t* metadataBuffer; - int metadataSize; - uint8_t* alphaBuffer; - bool fillAlphaBuffer; - ALPHA_STITCH_MODE alphaStitchMode; - void *d3d11Texture2d; - int textureSliceIndex; - ColorSpace colorSpace; -}; - export class ExternalVideoFrame { - type?: VideoBufferType; - format?: VideoPixelFormat; - buffer?: Uint8Array; - stride?: number; - height?: number; - cropLeft?: number; - cropTop?: number; - cropRight?: number; - cropBottom?: number; - rotation?: number; - timestamp?: number; - eglType?: EglContextType; - textureId?: number; - matrix?: number[]; - metadataBuffer?: Uint8Array; - metadataSize?: number; - alphaBuffer?: Uint8Array; - fillAlphaBuffer?: boolean; - alphaStitchMode?: AlphaStitchMode; - d3d11Texture2d?: any; - textureSliceIndex?: number; -} - public class ExternalVideoFrame - { - public VIDEO_BUFFER_TYPE type; - public VIDEO_PIXEL_FORMAT format; - public byte[] buffer; - public int stride; - public int height; - public int cropLeft; - public int cropTop; - public int cropRight; - public int cropBottom; - public int rotation; - public long timestamp; - public byte[] eglContext; - public EGL_CONTEXT_TYPE eglType; - public int textureId; - public byte[] metadataBuffer; - public int metadataSize; - public byte[] alphaBuffer; - public bool fillAlphaBuffer; - public ALPHA_STITCH_MODE alphaStitchMode; - public IntPtr d3d11Texture2d; - public int textureSliceIndex; - }; - export class ExternalVideoFrame { - type?: VideoBufferType; - format?: VideoPixelFormat; - buffer?: Uint8Array; - stride?: number; - height?: number; - cropLeft?: number; - cropTop?: number; - cropRight?: number; - cropBottom?: number; - rotation?: number; - timestamp?: number; - eglType?: EglContextType; - textureId?: number; - matrix?: number[]; - metadataBuffer?: Uint8Array; - metadataSize?: number; - alphaBuffer?: Uint8Array; - fillAlphaBuffer?: boolean; - alphaStitchMode?: AlphaStitchMode; -} - @JsonSerializable(explicitToJson: true, includeIfNull: false) -class ExternalVideoFrame { - const ExternalVideoFrame( - {this.type, - this.format, - this.buffer, - this.stride, - this.height, - this.cropLeft, - this.cropTop, - this.cropRight, - this.cropBottom, - this.rotation, - this.timestamp, - this.eglType, - this.textureId, - this.matrix, - this.metadataBuffer, - this.metadataSize, - this.alphaBuffer, - this.fillAlphaBuffer, - this.alphaStitchMode, - this.d3d11Texture2d, - this.textureSliceIndex}); - - @JsonKey(name: 'type') - final VideoBufferType? type; - - @JsonKey(name: 'format') - final VideoPixelFormat? format; - - @JsonKey(name: 'buffer', ignore: true) - final Uint8List? buffer; - - @JsonKey(name: 'stride') - final int? stride; - - @JsonKey(name: 'height') - final int? height; - - @JsonKey(name: 'cropLeft') - final int? cropLeft; - - @JsonKey(name: 'cropTop') - final int? cropTop; - - @JsonKey(name: 'cropRight') - final int? cropRight; - - @JsonKey(name: 'cropBottom') - final int? cropBottom; - - @JsonKey(name: 'rotation') - final int? rotation; - - @JsonKey(name: 'timestamp') - final int? timestamp; - - @JsonKey(name: 'eglType') - final EglContextType? eglType; - - @JsonKey(name: 'textureId') - final int? textureId; - - @JsonKey(name: 'matrix') - final List<double>? matrix; - - @JsonKey(name: 'metadataBuffer', ignore: true) - final Uint8List? metadataBuffer; - - @JsonKey(name: 'metadataSize') - final int? metadataSize; - - @JsonKey(name: 'alphaBuffer', ignore: true) - final Uint8List? alphaBuffer; - - @JsonKey(name: 'fillAlphaBuffer') - final bool? fillAlphaBuffer; - - @JsonKey(name: 'alphaStitchMode') - final AlphaStitchMode? alphaStitchMode; - - @JsonKey(name: 'd3d11Texture2d', readValue: readIntPtr) - final int? d3d11Texture2d; - - @JsonKey(name: 'textureSliceIndex') - final int? textureSliceIndex; - - factory ExternalVideoFrame.fromJson(Map<String, dynamic> json) => - _$ExternalVideoFrameFromJson(json); - - Map<String, dynamic> toJson() => _$ExternalVideoFrameToJson(this); -} -

-
-
-
-
- <text - conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" - /> - - - type - -

The video type. See .

-
-
- - format - The pixel format. See . - The format of the incoming video frame. This parameter must be specified as one of the following values:
    -
  • 1: I420
  • -
  • 2: BGRA
  • -
  • 3: NV21
  • -
  • 4: RGBA
  • -
  • 5: IMC2
  • -
  • 7: ARGB
  • -
  • 8: NV12
  • -
  • 12: iOS texture (CVPixelBufferRef)
  • -
  • 16: I422
  • -
- The format of the video data:
    -
  • 10: TEXTURE_2D
  • -
  • 11: TEXTURE_OES, usually the data captured by the camera is in this format.
  • -
  • 1: I420
  • -
  • 3: NV21
  • -
  • 4: RGBA
  • -
  • 16: I422
  • -
-
- - buffer - buf - dataBuf - Video frame buffer. - This parameter only applies to video data in non-Texture format. - Raw data buffer. This parameter does not apply to iOS textures. - - - textureBuf - Buffer of iOS texture. - - - stride - Line spacing of the incoming video frame, which must be in pixels instead of bytes. For textures, it is the width of the texture.

-

- -
@Deprecated(
-
Use strideInPixels instead.
-
-
- When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion. -

-
-
- - strideInPixels - The line span of the frame, that is, the number of pixels between two adjacent lines of video frames. -
    -
  • The unit of this parameter is pixels, not bytes.
  • -
  • If the video is in Texture format, set this parameter to the width of Texture.
  • -
  • If the video frame format is set to 12, do not use this field.
  • -
  • When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion.
  • -
-
- - height - Height of the incoming video frame. - - - textureID - Texture ID of the frame. This parameter only applies to video data in Texture format. - - - syncMode - Set whether to enable the synchronization mode. After enabling, the SDK waits while Texture processing. This parameter only applies to video data in Texture format.
    -
  • : Enable sync mode.
  • -
  • : Disable sync mode.
  • -
-
- - transform - Additional transform of Texture frames. This parameter only applies to video data in Texture format. - - - eglContext11 - EGLContext11. This parameter only applies to video data in Texture format. - - - eglContext14 - EGLContext14. This parameter only applies to video data in Texture format. - - - eglContext - This parameter only applies to video data in Texture format.
    -
  • When using the OpenGL interface (javax.microedition.khronos.egl.*) defined by Khronos, set eglContext to this field.
  • -
  • When using the OpenGL interface (android.opengl.*) defined by Android, set eglContext to this field.
  • -
-
- - eglType - This parameter only applies to video data in Texture format. Texture ID of the video frame. - - - textureId - This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix. - - - matrix - This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix. - - - metadataBuffer - This parameter only applies to video data in Texture format. The MetaData buffer. The default value is NULL. - - - metadataSize - This parameter only applies to video data in Texture format. The MetaData size. The default value is 0. - - - d3d11Texture2d - This parameter only applies to video data in Windows Texture format. It represents a pointer to an object of type ID3D11Texture2D, which is used by a video frame. - - - alphaBuffer - alphaBuf - -

The alpha channel data output by using portrait segmentation algorithm. This data matches the size of the video frame, with each pixel value ranging from [0,255], where 0 represents the background and 255 represents the foreground (portrait).

-

By setting this parameter, you can render the video background into various effects, such as transparent, solid color, image, video, etc.

- In custom video rendering scenarios, ensure that both the video frame and alphaBuffer are of the Full Range type; other types may cause abnormal alpha data rendering. -
-
- - fillAlphaBuffer - fillAlphaData - This parameter only applies to video data in BGRA or RGBA format. Whether to extract the alpha channel data from the video frame and automatically fill it into alphaBuffer:
    -
  • :Extract and fill the alpha channel data.
  • -
  • : (Default) Do not extract and fill the Alpha channel data.
  • -
- For video data in BGRA or RGBA format, you can set the Alpha channel data in either of the following ways:
    -
  • Automatically by setting this parameter to .
  • -
  • Manually through the alphaBuffer parameter.
  • -
-
- - - - - - textureSliceIndex - This parameter only applies to video data in Windows Texture format. It represents an index of an ID3D11Texture2D texture object used by the video frame in the ID3D11Texture2D array. - - - cropLeft - Raw data related parameter. The number of pixels trimmed from the left. The default value is 0. - This parameter only applies to video data in non-Texture format. - This parameter only applies to raw video data. - - - cropTop - Raw data related parameter. The number of pixels trimmed from the top. The default value is 0. - This parameter only applies to video data in non-Texture format. - This parameter only applies to raw video data. - - - cropRight - Raw data related parameter. The number of pixels trimmed from the right. The default value is 0. - This parameter only applies to video data in non-Texture format. - This parameter only applies to raw video data. - - - cropBottom - Raw data related parameter. The number of pixels trimmed from the bottom. The default value is 0. - This parameter only applies to video data in non-Texture format. - This parameter only applies to raw video data. - - - rotation - Raw data related parameter. The clockwise rotation of the video frame. You can set the rotation angle as 0, 90, 180, or 270. The default value is 0. - - - timestamp - time - Timestamp (ms) of the incoming video frame. An incorrect timestamp results in frame loss or unsynchronized audio and video. - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_imediafilterextensiondelegate.dita b/en-US/en-US/dita/RTC-NG/API/class_imediafilterextensiondelegate.dita deleted file mode 100644 index 8a3beb3ee6e..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_imediafilterextensiondelegate.dita +++ /dev/null @@ -1,30 +0,0 @@ - - - - <ph keyref="AgoraMediaFilterExtensionDelegate" /> - Manages the media extensions. - -
-

- - - @protocol AgoraMediaFilterExtensionDelegate <NSObject> -- (NSString * _Nonnull)vendor; -@end - - - - - -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - vendor - The name of the extension provider. - -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/class_mediarecorderconfiguration.dita b/en-US/en-US/dita/RTC-NG/API/class_mediarecorderconfiguration.dita deleted file mode 100644 index 9cb5b33cecd..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_mediarecorderconfiguration.dita +++ /dev/null @@ -1,242 +0,0 @@ - - - - <ph keyref="MediaRecorderConfiguration" /> - The recording configuration. - -
-

- public static class MediaRecorderConfiguration { - public String storagePath; - public int containerFormat = CONTAINER_MP4; - public int streamType = STREAM_TYPE_BOTH; - public int maxDurationMs = 120000; - public int recorderInfoUpdateInterval = 0; - public int width; - public int height; - public int fps; - public int sample_rate; - public int channel_num; - public int videoSourceType; - - public MediaRecorderConfiguration(String storagePath, int containerFormat, int streamType, - int maxDurationMs, int recorderInfoUpdateInterval) { - this.storagePath = storagePath; - this.containerFormat = containerFormat; - this.streamType = streamType; - this.maxDurationMs = maxDurationMs; - this.recorderInfoUpdateInterval = recorderInfoUpdateInterval; - this.width = 1280; - this.height = 720; - this.fps = 30; - this.sample_rate = 48000; - this.channel_num = 1; - this.videoSourceType = 0; - } - - public MediaRecorderConfiguration(String storagePath, int containerFormat, int streamType, - int maxDurationMs, int recorderInfoUpdateInterval, int width, int height, int fps, - int sample_rate, int channel_num, int videoSourceType) { - this.storagePath = storagePath; - this.containerFormat = containerFormat; - this.streamType = streamType; - this.maxDurationMs = maxDurationMs; - this.recorderInfoUpdateInterval = recorderInfoUpdateInterval; - this.width = width; - this.height = height; - this.fps = fps; - this.sample_rate = sample_rate; - this.channel_num = channel_num; - this.videoSourceType = videoSourceType; - } - } - export class MediaRecorderConfiguration { - - public storagePath: string; - - public containerFormat: number = AgoraMediaRecorder.CONTAINER_MP4; - - public streamType: number = AgoraMediaRecorder.STREAM_TYPE_BOTH; - - public maxDurationMs: number = 120000; - - public recorderInfoUpdateInterval: number = 0; - public constructor(storagePath: string, containerFormat: number, streamType: number, - maxDurationMs: number, recorderInfoUpdateInterval: number) { - this.storagePath = storagePath; - this.containerFormat = containerFormat; - this.streamType = streamType; - this.maxDurationMs = maxDurationMs; - this.recorderInfoUpdateInterval = recorderInfoUpdateInterval; - } -} - __attribute__((visibility("default"))) @interface AgoraMediaRecorderConfiguration : NSObject -@property(copy, nonatomic) NSString* _Nonnull storagePath; -@property(assign, nonatomic) AgoraMediaRecorderContainerFormat containerFormat; -@property(assign, nonatomic) AgoraMediaRecorderStreamType streamType; -@property(assign, nonatomic) NSUInteger maxDurationMs; -@property(assign, nonatomic) NSUInteger recorderInfoUpdateInterval; -@property(assign, nonatomic) NSUInteger width; -@property(assign, nonatomic) NSUInteger height; -@property(assign, nonatomic) NSUInteger fps; -@property(assign, nonatomic) NSUInteger sample_rate; -@property(assign, nonatomic) NSUInteger channel_num; -@property(assign, nonatomic) AgoraVideoSourceType videoSourceType; -@end - struct MediaRecorderConfiguration { - const char* storagePath; - MediaRecorderContainerFormat containerFormat; - MediaRecorderStreamType streamType; - int maxDurationMs; - int recorderInfoUpdateInterval; - int width; - int height; - int fps; - int sample_rate; - int channel_num; - agora::rtc::VIDEO_SOURCE_TYPE videoSourceType; - - MediaRecorderConfiguration() - : storagePath(NULL), - containerFormat(FORMAT_MP4), - streamType(STREAM_TYPE_BOTH), - maxDurationMs(120000), - recorderInfoUpdateInterval(0), - width(1280), - height(720), - fps(30), - sample_rate(48000), - channel_num(1), - videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {} - MediaRecorderConfiguration(const char* path, MediaRecorderContainerFormat format, - MediaRecorderStreamType type, int duration, int interval) - : storagePath(path), - containerFormat(format), - streamType(type), - maxDurationMs(duration), - recorderInfoUpdateInterval(interval), - width(1280), - height(720), - fps(30), - sample_rate(48000), - channel_num(1), - videoSourceType(rtc::VIDEO_SOURCE_CAMERA_PRIMARY) {}}; - USTRUCT(BlueprintType) -struct FMediaRecorderConfiguration -{ - GENERATED_BODY() - - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaRecorderConfiguration") - FString storagePath; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaRecorderConfiguration") - EMediaRecorderContainerFormat containerFormat = EMediaRecorderContainerFormat::FORMAT_MP4; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaRecorderConfiguration") - EMediaRecorderStreamType streamType = EMediaRecorderStreamType::STREAM_TYPE_BOTH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaRecorderConfiguration") - int maxDurationMs; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaRecorderConfiguration") - int recorderInfoUpdateInterval; -}; - export class MediaRecorderConfiguration { - - storagePath?: string; - - containerFormat?: MediaRecorderContainerFormat; - - streamType?: MediaRecorderStreamType; - - maxDurationMs?: number; - - recorderInfoUpdateInterval?: number; -} - public struct MediaRecorderConfiguration { - public string storagePath; - public MediaRecorderContainerFormat containerFormat; - public MediaRecorderStreamType streamType; - public int maxDurationMs; - public int recorderInfoUpdateInterval; - }; - export class MediaRecorderConfiguration { - - storagePath?: string; - - containerFormat?: MediaRecorderContainerFormat; - - streamType?: MediaRecorderStreamType; - - maxDurationMs?: number; - - recorderInfoUpdateInterval?: number; -} - class MediaRecorderConfiguration { - - const MediaRecorderConfiguration( - {this.storagePath, - this.containerFormat, - this.streamType, - this.maxDurationMs, - this.recorderInfoUpdateInterval}); - - @JsonKey(name: 'storagePath') - final String? storagePath; - - @JsonKey(name: 'containerFormat') - final MediaRecorderContainerFormat? containerFormat; - - @JsonKey(name: 'streamType') - final MediaRecorderStreamType? streamType; - - @JsonKey(name: 'maxDurationMs') - final int? maxDurationMs; - - @JsonKey(name: 'recorderInfoUpdateInterval') - final int? recorderInfoUpdateInterval; - - factory MediaRecorderConfiguration.fromJson(Map<String, dynamic> json) => - _$MediaRecorderConfigurationFromJson(json); - - Map<String, dynamic> toJson() => _$MediaRecorderConfigurationToJson(this); -} -

-
-
-

-

-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - storagePath - The absolute path (including the filename extensions) of the recording file. For example:
    -
  • Windows: C:\Users\<user_name>\AppData\Local\Agora\<process_name>\example.mp4
  • -
  • iOS: /App Sandbox/Library/Caches/example.mp4
  • -
  • macOS: ~/Library/Logs/example.mp4
  • -
  • Android: /storage/emulated/0/Android/data/<package name>/files/agorasdk.log
  • -
- Ensure that the directory for the log files exists and is writable.
-
- - containerFormat - The format of the recording file. See . - The format of the recording file. Only is supported. - - - streamType - The recording content. See . - The recording content:
    -
  • : Only audio.
  • -
  • : Only video.
  • -
  • : (Default) Audio and video.
  • -
-
- - maxDurationMs - The maximum recording duration, in milliseconds. The default value is 120000. - - - recorderInfoUpdateInterval - The interval (ms) of updating the recording information. The value range is [1000,10000]. Based on the value you set in this parameter, the SDK triggers the callback to report the updated recording information. - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_recorderstreaminfo.dita b/en-US/en-US/dita/RTC-NG/API/class_recorderstreaminfo.dita deleted file mode 100644 index 784722659b0..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_recorderstreaminfo.dita +++ /dev/null @@ -1,104 +0,0 @@ - - - - <ph keyref="RecorderStreamInfo"/> - The information about the media streams to be recorded. - -
-

- public class RecorderStreamInfo { - public int uid; - public String channelId; - public int recorderStreamType; -} - export class RecorderStreamInfo { - - public uid: number = 0; - - public channelId: string; - public constructor() { - this.uid = 0; - this.channelId = ""; - } - public toString(): string { - return "channelId=" + this.channelId; - } -} - __attribute__((visibility("default"))) @interface AgoraRecorderStreamInfo: NSObject -@property (nonatomic, nonatomic) NSUInteger uid; -@property (nonatomic, copy) NSString *_Nonnull channelId; -@property (assign, nonatomic) AgoraRecorderStreamType type; -@end - struct RecorderStreamInfo { - const char* channelId; - uid_t uid; - RecorderStreamType type; - RecorderStreamInfo() : channelId(NULL), uid(0), type(RTC) {} - RecorderStreamInfo(const char* channelId, uid_t uid) - : channelId(channelId), uid(uid), type(RTC) {} - RecorderStreamInfo(const char* channelId, uid_t uid, RecorderStreamType) - : channelId(channelId), uid(uid), type(RTC) {} -}; - USTRUCT(BlueprintType) -struct FRecorderStreamInfo { - - GENERATED_BODY() - - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|RecorderStreamInfo") - FString channelId; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|RecorderStreamInfo") - int64 uid; - -}; - export class RecorderStreamInfo { - channelId?: string; - uid?: number; -} - public class RecorderStreamInfo - { - public string channelId; - public uint uid; - - }; - export class RecorderStreamInfo { - channelId?: string; - uid?: number; -} - @JsonSerializable(explicitToJson: true, includeIfNull: false) -class RecorderStreamInfo { - const RecorderStreamInfo({this.channelId, this.uid}); - - @JsonKey(name: 'channelId') - final String? channelId; - - @JsonKey(name: 'uid') - final int? uid; - - factory RecorderStreamInfo.fromJson(Map<String, dynamic> json) => - _$RecorderStreamInfoFromJson(json); - - Map<String, dynamic> toJson() => _$RecorderStreamInfoToJson(this); -}

-
-
-
- -
Since
-
v4.2.0
-
-
-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - channelId - The name of the channel in which the media streams publish. - - - uid - The ID of the user whose media streams you want to record. - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_screencaptureconfiguration.dita b/en-US/en-US/dita/RTC-NG/API/class_screencaptureconfiguration.dita deleted file mode 100644 index 88f57384eb8..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_screencaptureconfiguration.dita +++ /dev/null @@ -1,182 +0,0 @@ - - - - <ph keyref="ScreenCaptureConfiguration" /> - The configuration of the captured screen. - -
-

- - - #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC)) - -__attribute__((visibility("default"))) @interface AgoraScreenCaptureConfiguration: NSObject - -@property(assign, nonatomic) BOOL isCaptureWindow; - -@property(assign, nonatomic) UInt32 displayId; - -@property(assign, nonatomic) UInt32 windowId; - -@property(strong, nonatomic) AgoraScreenCaptureParameters* _Nonnull params; - -@property(assign, nonatomic) CGRect regionRect; - -@end -#endif - struct ScreenCaptureConfiguration { - bool isCaptureWindow; - int64_t displayId; - Rectangle screenRect; - int64_t windowId; - ScreenCaptureParameters params; - Rectangle regionRect; - - ScreenCaptureConfiguration() : isCaptureWindow(false), displayId(0) {} -}; - USTRUCT(BlueprintType) -struct FScreenCaptureConfiguration -{ - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - bool isCaptureWindow = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - int displayId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - FRectangle screenRect = FRectangle(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - int64 windowId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - FScreenCaptureParameters params = FScreenCaptureParameters(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ScreenCaptureConfiguration") - FRectangle regionRect = FRectangle(); - FScreenCaptureConfiguration(){} - FScreenCaptureConfiguration(const agora::rtc::ScreenCaptureConfiguration & AgoraData){ - isCaptureWindow = AgoraData.isCaptureWindow; - displayId = AgoraData.displayId; - screenRect = FRectangle(AgoraData.screenRect); - params = FScreenCaptureParameters(AgoraData.params); - regionRect = FRectangle(AgoraData.regionRect); - } - agora::rtc::ScreenCaptureConfiguration CreateAgoraData() const { - agora::rtc::ScreenCaptureConfiguration AgoraData; - AgoraData.isCaptureWindow = isCaptureWindow; - AgoraData.displayId = displayId; - AgoraData.screenRect = screenRect.CreateAgoraData(); - AgoraData.params = params.CreateAgoraData(); - AgoraData.regionRect = regionRect.CreateAgoraData(); - return AgoraData; - } - void FreeAgoraData(agora::rtc::ScreenCaptureConfiguration & AgoraData) const { - screenRect.FreeAgoraData(AgoraData.screenRect); - params.FreeAgoraData(AgoraData.params); - regionRect.FreeAgoraData(AgoraData.regionRect); - } -}; - export class ScreenCaptureConfiguration { - - isCaptureWindow?: boolean; - - displayId?: number; - - screenRect?: Rectangle; - - windowId?: any; - - params?: ScreenCaptureParameters; - - regionRect?: Rectangle; -} - public class ScreenCaptureConfiguration - { - public ScreenCaptureConfiguration() - { - isCaptureWindow = false; - displayId = 0; - } - - public bool isCaptureWindow { set; get; } - public uint displayId { set; get; } - public Rectangle screenRect { set; get; } - public uint windowId { set; get; } - public ScreenCaptureParameters parameters { set; get; } - public Rectangle regionRect { set; get; } - } - export class ScreenCaptureConfiguration { - - isCaptureWindow?: boolean; - - displayId?: number; - - screenRect?: Rectangle; - - windowId?: any; - - params?: ScreenCaptureParameters; - - regionRect?: Rectangle; -} - class ScreenCaptureConfiguration { - const ScreenCaptureConfiguration( - {this.isCaptureWindow, - this.displayId, - this.screenRect, - this.windowId, - this.params, - this.regionRect}); - - @JsonKey(name: 'isCaptureWindow') - final bool? isCaptureWindow; - @JsonKey(name: 'displayId') - final int? displayId; - @JsonKey(name: 'screenRect') - final Rectangle? screenRect; - @JsonKey(name: 'windowId') - final int? windowId; - @JsonKey(name: 'params') - final ScreenCaptureParameters? params; - @JsonKey(name: 'regionRect') - final Rectangle? regionRect; - factory ScreenCaptureConfiguration.fromJson(Map<String, dynamic> json) => - _$ScreenCaptureConfigurationFromJson(json); - Map<String, dynamic> toJson() => _$ScreenCaptureConfigurationToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property" /> - - - isCaptureWindow - Whether to capture the window on the screen:
    -
  • : Capture the window.
  • -
  • : (Default) Capture the screen, not the window.
  • -
-
- - displayId - (macOS only) The display ID of the screen.This parameter takes effect only when you want to capture the screen on macOS. - The display ID of the screen. You do not need to set this parameter. - - - screenRect - (Windows only) The relative position of the shared screen to the virtual screen.This parameter takes effect only when you want to capture the screen on Windows. - - - windowId - (For Windows and macOS only) Window ID.This parameter takes effect only when you want to capture the window. - - - params - parameters - (For Windows and macOS only) The screen capture configuration. See . - - - regionRect - (For Windows and macOS only) The relative position of the shared region to the whole screen. See . If you do not set this parameter, the SDK shares the whole screen. If the region you set exceeds the boundary of the screen, only the region within in the screen is shared. If you set width or height in as 0, the whole screen is shared. - The relative position of the shared region to the whole screen. The data type is CGRect. - -
-
-
\ No newline at end of file diff --git a/en-US/en-US/dita/RTC-NG/API/class_screencapturesourceinfo.dita b/en-US/en-US/dita/RTC-NG/API/class_screencapturesourceinfo.dita deleted file mode 100644 index 854a71595af..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_screencapturesourceinfo.dita +++ /dev/null @@ -1,266 +0,0 @@ - - - - <ph keyref="ScreenCaptureSourceInfo"/> - The information about the specified shareable window or screen. The information is returned in . - -
-

- - - __attribute__((visibility("default"))) @interface AgoraScreenCaptureSourceInfo : NSObject -@property(assign, nonatomic) AgoraScreenCaptureSourceType type; -@property(assign, nonatomic) CGWindowID sourceId; -@property(copy, nonatomic) NSString* _Nonnull sourceName; -@property(strong, nonatomic) NSImage* _Nonnull thumbImage; -@property(strong, nonatomic) NSImage* _Nullable iconImage; -@property(copy, nonatomic) NSString* _Nonnull processPath; -@property(copy, nonatomic) NSString* _Nonnull sourceTitle; -@property(assign, nonatomic) CGRect position; -@property(assign, nonatomic) BOOL primaryMonitor; - -@end - - struct ScreenCaptureSourceInfo { - ScreenCaptureSourceType type; - int64_t sourceId; - const char* sourceName; - ThumbImageBuffer thumbImage; - ThumbImageBuffer iconImage; - const char* processPath; - const char* sourceTitle; - bool primaryMonitor; - bool isOccluded; - Rectangle position; -#if defined(_WIN32) - bool minimizeWindow; - int64_t sourceDisplayId; - ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr), - processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false), minimizeWindow(false), sourceDisplayId(-2) {} -#else - ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr), processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false) {} -#endif -}; - USTRUCT(BlueprintType) -struct FScreenCaptureSourceInfo { - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FENUMWRAP_ScreenCaptureSourceType type = FENUMWRAP_ScreenCaptureSourceType(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - int64 sourceId = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FString sourceName = ""; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FThumbImageBuffer thumbImage = FThumbImageBuffer(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FThumbImageBuffer iconImage = FThumbImageBuffer(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FString processPath = ""; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FString sourceTitle = ""; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - bool primaryMonitor = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - bool isOccluded = false; - - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - FRectangle position = FRectangle(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - bool minimizeWindow = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|FScreenCaptureSourceInfo") - int64 sourceDisplayId = 0; -#if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) - FScreenCaptureSourceInfo(){} - FScreenCaptureSourceInfo(const agora::rtc::ScreenCaptureSourceInfo & AgoraData){ - type = AgoraData.type; - sourceId = UABT::FromViewToInt(AgoraData.sourceId); - sourceName = UTF8_TO_TCHAR(AgoraData.sourceName); - thumbImage = FThumbImageBuffer(AgoraData.thumbImage); - iconImage = FThumbImageBuffer(AgoraData.iconImage); - processPath = UTF8_TO_TCHAR(AgoraData.processPath); - sourceTitle = UTF8_TO_TCHAR(AgoraData.sourceTitle); - primaryMonitor = AgoraData.primaryMonitor; - isOccluded = AgoraData.isOccluded; - position = FRectangle(AgoraData.position); -#if defined(_WIN32) - minimizeWindow = AgoraData.minimizeWindow; - sourceDisplayId = UABT::FromViewToInt(AgoraData.sourceDisplayId); -#endif - } - agora::rtc::ScreenCaptureSourceInfo CreateAgoraData() const { - agora::rtc::ScreenCaptureSourceInfo AgoraData; - AgoraData.type = static_cast<agora::rtc::ScreenCaptureSourceType>(type.GetRawValue()); - AgoraData.sourceId = UABT::ToView(sourceId); - SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.sourceName, sourceName) - AgoraData.thumbImage = thumbImage.CreateAgoraData(); - AgoraData.iconImage = iconImage.CreateAgoraData(); - SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.processPath, processPath) - SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.sourceTitle, sourceTitle) - AgoraData.primaryMonitor = primaryMonitor; - AgoraData.isOccluded = isOccluded; - AgoraData.position = position.CreateAgoraData(); -#if defined(_WIN32) - AgoraData.minimizeWindow = minimizeWindow; - AgoraData.sourceDisplayId = UABT::ToView(sourceDisplayId); -#endif - return AgoraData; - } - void FreeAgoraData(agora::rtc::ScreenCaptureSourceInfo & AgoraData) const { - SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.sourceName) - thumbImage.FreeAgoraData(AgoraData.thumbImage); - thumbImage.FreeAgoraData(AgoraData.iconImage); - SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.processPath) - SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.sourceTitle) - position.FreeAgoraData(AgoraData.position); - } -#endif -}; - export class ScreenCaptureSourceInfo { - - type?: ScreenCaptureSourceType; - - sourceId?: any; - - sourceName?: string; - - thumbImage?: ThumbImageBuffer; - - iconImage?: ThumbImageBuffer; - - processPath?: string; - - sourceTitle?: string; - - primaryMonitor?: boolean; - - position?: Rectangle; - - minimizeWindow?: boolean; - - sourceDisplayId?: any; -} - public class ScreenCaptureSourceInfo - { - public ScreenCaptureSourceType type; - public view_t sourceId; - public string sourceName; - public ThumbImageBuffer thumbImage; - public ThumbImageBuffer iconImage; - public string processPath; - public string sourceTitle; - public bool primaryMonitor; - public Rectangle position; - public view_t sourceDisplayId; - }; - - class ScreenCaptureSourceInfo { - const ScreenCaptureSourceInfo( - {this.type, - this.sourceId, - this.sourceName, - this.thumbImage, - this.iconImage, - this.processPath, - this.sourceTitle, - this.primaryMonitor, - this.position, - this.minimizeWindow, - this.sourceDisplayId}); - - @JsonKey(name: 'type') - final ScreenCaptureSourceType? type; - - @JsonKey(name: 'sourceId') - final int? sourceId; - - @JsonKey(name: 'sourceName') - final String? sourceName; - - @JsonKey(name: 'thumbImage') - final ThumbImageBuffer? thumbImage; - - @JsonKey(name: 'iconImage') - final ThumbImageBuffer? iconImage; - - @JsonKey(name: 'processPath') - final String? processPath; - - @JsonKey(name: 'sourceTitle') - final String? sourceTitle; - - @JsonKey(name: 'primaryMonitor') - final bool? primaryMonitor; - - @JsonKey(name: 'position') - final Rectangle? position; - - @JsonKey(name: 'minimizeWindow') - final bool? minimizeWindow; - - @JsonKey(name: 'sourceDisplayId') - final int? sourceDisplayId; - - factory ScreenCaptureSourceInfo.fromJson(Map<String, dynamic> json) => - _$ScreenCaptureSourceInfoFromJson(json); - - Map<String, dynamic> toJson() => _$ScreenCaptureSourceInfoToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - type - The type of the shared target. See . - - - sourceId - The window ID for a window or the display ID for a screen. - - - sourceName - The name of the window or screen. UTF-8 encoding. - - - thumbImage - The image content of the thumbnail. See . - - - iconImage - The image content of the icon. See . - - - processPath - The process to which the window belongs. UTF-8 encoding. - - - sourceTitle - The title of the window. UTF-8 encoding. - - - primaryMonitor - Determines whether the screen is the primary display:
    -
  • : The screen is the primary display.
  • -
  • : The screen is not the primary display.
  • -
-
- - position - The position of a window relative to the entire screen space (including all shareable screens). See . See . - - - minimizeWindow - (For Windows only) Whether the window is minimized:
    -
  • : The window is minimized.
  • -
  • : The window is not minimized.
  • -
-
- - sourceDisplayId - (For Windows only) Screen ID where the window is located. If the window is displayed across multiple screens, this parameter indicates the ID of the screen with which the window has the largest intersection area. If the window is located outside of the visible screens, the value of this member is -2. - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita b/en-US/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita deleted file mode 100644 index 1d52a7a1c16..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_videoencoderconfiguration.dita +++ /dev/null @@ -1,677 +0,0 @@ - - - - <ph keyref="VideoEncoderConfiguration"/> - Video encoder configurations. - -
-

- public class VideoEncoderConfiguration { - static public class VideoDimensions { - public int width; - public int height; - public VideoDimensions(int width, int height) { - this.width = width; - this.height = height; - } - public VideoDimensions() { - this.width = 0; - this.height = 0; - } - } - public final static VideoDimensions VD_120x120 = new VideoDimensions(120, 120); - public final static VideoDimensions VD_160x120 = new VideoDimensions(160, 120); - public final static VideoDimensions VD_180x180 = new VideoDimensions(180, 180); - public final static VideoDimensions VD_240x180 = new VideoDimensions(240, 180); - public final static VideoDimensions VD_320x180 = new VideoDimensions(320, 180); - public final static VideoDimensions VD_240x240 = new VideoDimensions(240, 240); - public final static VideoDimensions VD_320x240 = new VideoDimensions(320, 240); - public final static VideoDimensions VD_424x240 = new VideoDimensions(424, 240); - public final static VideoDimensions VD_360x360 = new VideoDimensions(360, 360); - public final static VideoDimensions VD_480x360 = new VideoDimensions(480, 360); - public final static VideoDimensions VD_640x360 = new VideoDimensions(640, 360); - public final static VideoDimensions VD_480x480 = new VideoDimensions(480, 480); - public final static VideoDimensions VD_640x480 = new VideoDimensions(640, 480); - public final static VideoDimensions VD_840x480 = new VideoDimensions(840, 480); - public final static VideoDimensions VD_960x540 = new VideoDimensions(960, 540); - public final static VideoDimensions VD_960x720 = new VideoDimensions(960, 720); - public final static VideoDimensions VD_1280x720 = new VideoDimensions(1280, 720); - public final static VideoDimensions VD_1920x1080 = new VideoDimensions(1920, 1080); - public final static VideoDimensions VD_2540x1440 = new VideoDimensions(2540, 1440); - public final static VideoDimensions VD_3840x2160 = new VideoDimensions(3840, 2160); - public enum FRAME_RATE { - FRAME_RATE_FPS_1(1), - FRAME_RATE_FPS_7(7), - FRAME_RATE_FPS_10(10), - FRAME_RATE_FPS_15(15), - FRAME_RATE_FPS_24(24), - FRAME_RATE_FPS_30(30), - FRAME_RATE_FPS_60(60); - private int value; - private FRAME_RATE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public enum ORIENTATION_MODE { - ORIENTATION_MODE_ADAPTIVE(0), - ORIENTATION_MODE_FIXED_LANDSCAPE(1), - ORIENTATION_MODE_FIXED_PORTRAIT(2); - private int value; - private ORIENTATION_MODE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public enum ENCODING_PREFERENCE { - PREFER_AUTO(-1), - PREFER_SOFTWARE(0), - PREFER_HARDWARE(1); - private int value; - private ENCODING_PREFERENCE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public enum COMPRESSION_PREFERENCE { - PREFER_COMPRESSION_AUTO(-1), - PREFER_LOW_LATENCY(0), - PREFER_QUALITY(1); - private int value; - private COMPRESSION_PREFERENCE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - static public class AdvanceOptions { - public ENCODING_PREFERENCE encodingPreference; - public COMPRESSION_PREFERENCE compressionPreference; - public boolean encodeAlpha; - public AdvanceOptions(ENCODING_PREFERENCE encodingPreference, - COMPRESSION_PREFERENCE compressionPreference, boolean encodeAlpha) { - this.encodingPreference = encodingPreference; - this.compressionPreference = compressionPreference; - this.encodeAlpha = encodeAlpha; - } - public AdvanceOptions() { - this.encodingPreference = ENCODING_PREFERENCE.PREFER_AUTO; - this.compressionPreference = COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO; - this.encodeAlpha = false; - } - } - public enum DEGRADATION_PREFERENCE { - MAINTAIN_AUTO(-1), - MAINTAIN_QUALITY(0), - MAINTAIN_FRAMERATE(1), - MAINTAIN_BALANCED(2), - MAINTAIN_RESOLUTION(3), - DISABLED(100); - private int value; - private DEGRADATION_PREFERENCE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public enum CODEC_CAP_MASK { - CODEC_CAP_MASK_NONE(0), - CODEC_CAP_MASK_HW_DEC(1), - CODEC_CAP_MASK_HW_ENC(2), - CODEC_CAP_MASK_SW_DEC(4), - CODEC_CAP_MASK_SW_ENC(8); - private int value; - private CODEC_CAP_MASK(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - ; - public enum MIRROR_MODE_TYPE { - MIRROR_MODE_AUTO(0), - MIRROR_MODE_ENABLED(1), - MIRROR_MODE_DISABLED(2); - private int value; - private MIRROR_MODE_TYPE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public enum VIDEO_CODEC_TYPE { - VIDEO_CODEC_NONE(0), - VIDEO_CODEC_VP8(1), - VIDEO_CODEC_H264(2), - VIDEO_CODEC_H265(3), - VIDEO_CODEC_GENERIC(6), - VIDEO_CODEC_AV1(12), - VIDEO_CODEC_VP9(13), - VIDEO_CODEC_GENERIC_JPEG(20); - private int value; - private VIDEO_CODEC_TYPE(int v) { - value = v; - } - public int getValue() { - return this.value; - } - } - public static final int STANDARD_BITRATE = 0; - public static final int COMPATIBLE_BITRATE = -1; - public static final int DEFAULT_MIN_BITRATE = -1; - public static final int DEFAULT_MIN_FRAMERATE = -1; - public static final int DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2; - public VideoDimensions dimensions; - public int frameRate; - public int minFrameRate; - public int bitrate; - public int minBitrate; - public ORIENTATION_MODE orientationMode; - public DEGRADATION_PREFERENCE degradationPrefer; - public MIRROR_MODE_TYPE mirrorMode; - public AdvanceOptions advanceOptions; - public VIDEO_CODEC_TYPE codecType; - public VideoEncoderConfiguration() { - this.dimensions = new VideoDimensions(960, 540); - this.frameRate = FRAME_RATE.FRAME_RATE_FPS_15.getValue(); - this.minFrameRate = DEFAULT_MIN_FRAMERATE; - this.bitrate = STANDARD_BITRATE; - this.minBitrate = DEFAULT_MIN_BITRATE; - this.orientationMode = ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; - this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_AUTO; - this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; - this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO, false); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - } - public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, - ORIENTATION_MODE orientationMode) { - this.dimensions = dimensions; - this.frameRate = frameRate.getValue(); - this.minFrameRate = DEFAULT_MIN_FRAMERATE; - this.bitrate = bitrate; - this.minBitrate = DEFAULT_MIN_BITRATE; - this.orientationMode = orientationMode; - this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_AUTO; - this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; - this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO, false); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - } - public VideoEncoderConfiguration(VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, - ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { - this.dimensions = dimensions; - this.frameRate = frameRate.getValue(); - this.minFrameRate = DEFAULT_MIN_FRAMERATE; - this.bitrate = bitrate; - this.minBitrate = DEFAULT_MIN_BITRATE; - this.orientationMode = orientationMode; - this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_AUTO; - this.mirrorMode = mirrorMode; - this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO, false); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - } - public VideoEncoderConfiguration( - int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode) { - this.dimensions = new VideoDimensions(width, height); - this.frameRate = frameRate.getValue(); - this.minFrameRate = DEFAULT_MIN_FRAMERATE; - this.bitrate = bitrate; - this.minBitrate = DEFAULT_MIN_BITRATE; - this.orientationMode = orientationMode; - this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_AUTO; - this.mirrorMode = MIRROR_MODE_TYPE.MIRROR_MODE_DISABLED; - this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO, false); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - } - public VideoEncoderConfiguration(int width, int height, FRAME_RATE frameRate, int bitrate, - ORIENTATION_MODE orientationMode, MIRROR_MODE_TYPE mirrorMode) { - this.dimensions = new VideoDimensions(width, height); - this.frameRate = frameRate.getValue(); - this.minFrameRate = DEFAULT_MIN_FRAMERATE; - this.bitrate = bitrate; - this.minBitrate = DEFAULT_MIN_BITRATE; - this.orientationMode = orientationMode; - this.degradationPrefer = DEGRADATION_PREFERENCE.MAINTAIN_AUTO; - this.mirrorMode = mirrorMode; - this.advanceOptions = new AdvanceOptions( - ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_COMPRESSION_AUTO, false); - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - } -} - export class VideoEncoderConfiguration{ - public dimensions:VideoDimensions = new VideoDimensions(960,540); - public frameRate:number = 15; - public bitrate:number = 0; - public minBitrate:number = -1; - public orientationMode:OrientationMode = OrientationMode.ORIENTATION_MODE_ADAPTIVE; - public degradationPrefer:DegradationPreference = DegradationPreference.MAINTAIN_QUALITY; - public mirrorMode:MirrorModeType = MirrorModeType.MIRROR_MODE_DISABLED; - public advanceOptions:AdvanceOptions = new AdvanceOptions(); - constructor() {} -} - __attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject -@property(assign, nonatomic) CGSize dimensions; -@property(assign, nonatomic) AgoraVideoCodecType codecType; -@property(assign, nonatomic) AgoraVideoFrameRate frameRate; -@property(assign, nonatomic) NSInteger bitrate; -@property(assign, nonatomic) NSInteger minBitrate; -@property(assign, nonatomic) AgoraVideoOutputOrientationMode orientationMode; -@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode; -@property (assign, nonatomic) AgoraDegradationPreference degradationPreference; - -- (instancetype _Nonnull)initWithSize:(CGSize)size - frameRate:(AgoraVideoFrameRate)frameRate - bitrate:(NSInteger)bitrate - orientationMode:(AgoraVideoOutputOrientationMode)orientationMode - mirrorMode:(AgoraVideoMirrorMode)mirrorMode; - -- (instancetype _Nonnull)initWithWidth:(NSInteger)width - height:(NSInteger)height - frameRate:(AgoraVideoFrameRate)frameRate - bitrate:(NSInteger)bitrate - orientationMode:(AgoraVideoOutputOrientationMode)orientationMode - mirrorMode:(AgoraVideoMirrorMode)mirrorMode; -@end - struct VideoEncoderConfiguration { - VIDEO_CODEC_TYPE codecType; - VideoDimensions dimensions; - int frameRate; - int bitrate; - int minBitrate; - ORIENTATION_MODE orientationMode; - DEGRADATION_PREFERENCE degradationPreference; - VIDEO_MIRROR_MODE_TYPE mirrorMode; - AdvanceOptions advanceOptions; - VideoEncoderConfiguration(const VideoDimensions& d, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_DISABLED) - : codecType(VIDEO_CODEC_NONE), - dimensions(d), - frameRate(f), - bitrate(b), - minBitrate(DEFAULT_MIN_BITRATE), - orientationMode(m), - degradationPreference(MAINTAIN_AUTO), - mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_COMPRESSION_AUTO, false) {} - VideoEncoderConfiguration(int width, int height, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_DISABLED) - : codecType(VIDEO_CODEC_NONE), - dimensions(width, height), - frameRate(f), - bitrate(b), - minBitrate(DEFAULT_MIN_BITRATE), - orientationMode(m), - degradationPreference(MAINTAIN_AUTO), - mirrorMode(mirror), - advanceOptions(PREFER_AUTO, PREFER_COMPRESSION_AUTO, false) {} - VideoEncoderConfiguration(const VideoEncoderConfiguration& config) - : codecType(config.codecType), - dimensions(config.dimensions), - frameRate(config.frameRate), - bitrate(config.bitrate), - minBitrate(config.minBitrate), - orientationMode(config.orientationMode), - degradationPreference(config.degradationPreference), - mirrorMode(config.mirrorMode), - advanceOptions(config.advanceOptions) {} - VideoEncoderConfiguration() - : codecType(VIDEO_CODEC_NONE), - dimensions(FRAME_WIDTH_960, FRAME_HEIGHT_540), - frameRate(FRAME_RATE_FPS_15), - bitrate(STANDARD_BITRATE), - minBitrate(DEFAULT_MIN_BITRATE), - orientationMode(ORIENTATION_MODE_ADAPTIVE), - degradationPreference(MAINTAIN_AUTO), - mirrorMode(VIDEO_MIRROR_MODE_DISABLED), - advanceOptions(PREFER_AUTO, PREFER_COMPRESSION_AUTO, false) {} - VideoEncoderConfiguration& operator=(const VideoEncoderConfiguration& rhs) { - if (this == &rhs) return *this; - codecType = rhs.codecType; - dimensions = rhs.dimensions; - frameRate = rhs.frameRate; - bitrate = rhs.bitrate; - minBitrate = rhs.minBitrate; - orientationMode = rhs.orientationMode; - degradationPreference = rhs.degradationPreference; - mirrorMode = rhs.mirrorMode; - advanceOptions = rhs.advanceOptions; - return *this; - } -}; - USTRUCT(BlueprintType) -struct FVideoEncoderConfiguration -{ - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - EVIDEO_CODEC_TYPE codecType = EVIDEO_CODEC_TYPE::VIDEO_CODEC_NONE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - FVideoDimensions dimensions = FVideoDimensions(); - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - int frameRate = 15; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - int bitrate = 0; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - int minBitrate = -1; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - EORIENTATION_MODE orientationMode = EORIENTATION_MODE::ORIENTATION_MODE_ADAPTIVE; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - EDEGRADATION_PREFERENCE degradationPreference = EDEGRADATION_PREFERENCE::MAINTAIN_QUALITY; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - EVIDEO_MIRROR_MODE_TYPE mirrorMode = EVIDEO_MIRROR_MODE_TYPE::VIDEO_MIRROR_MODE_DISABLED; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoEncoderConfiguration") - FAdvanceOptions advanceOptions = FAdvanceOptions(); - FVideoEncoderConfiguration(){} - FVideoEncoderConfiguration(const agora::rtc::VideoEncoderConfiguration & AgoraData){ - codecType = static_cast<EVIDEO_CODEC_TYPE>(AgoraData.codecType); - dimensions = FVideoDimensions(AgoraData.dimensions); - frameRate = AgoraData.frameRate; - bitrate = AgoraData.bitrate; - minBitrate = AgoraData.minBitrate; - orientationMode = static_cast<EORIENTATION_MODE>(AgoraData.orientationMode); - degradationPreference = static_cast<EDEGRADATION_PREFERENCE>(AgoraData.degradationPreference); - mirrorMode = static_cast<EVIDEO_MIRROR_MODE_TYPE>(AgoraData.mirrorMode); - advanceOptions = FAdvanceOptions(AgoraData.advanceOptions); - } - agora::rtc::VideoEncoderConfiguration CreateAgoraData() const { - agora::rtc::VideoEncoderConfiguration AgoraData; - AgoraData.codecType = static_cast<agora::rtc::VIDEO_CODEC_TYPE>(codecType); - AgoraData.dimensions = dimensions.CreateAgoraData(); - AgoraData.frameRate = frameRate; - AgoraData.bitrate = bitrate; - AgoraData.minBitrate = minBitrate; - AgoraData.orientationMode = static_cast<agora::rtc::ORIENTATION_MODE>(orientationMode); - AgoraData.degradationPreference = static_cast<agora::rtc::DEGRADATION_PREFERENCE>(degradationPreference); - AgoraData.mirrorMode = static_cast<agora::rtc::VIDEO_MIRROR_MODE_TYPE>(mirrorMode); - AgoraData.advanceOptions = advanceOptions.CreateAgoraData(); - return AgoraData; - } - void FreeAgoraData(agora::rtc::VideoEncoderConfiguration& AgoraData) const { - dimensions.FreeAgoraData(AgoraData.dimensions); - advanceOptions.FreeAgoraData(AgoraData.advanceOptions); - } -}; - export class VideoEncoderConfiguration { - - codecType?: VideoCodecType; - - dimensions?: VideoDimensions; - - frameRate?: number; - - bitrate?: number; - - minBitrate?: number; - - orientationMode?: OrientationMode; - - degradationPreference?: DegradationPreference; - - mirrorMode?: VideoMirrorModeType; - - advanceOptions?: AdvanceOptions; -} - public class VideoEncoderConfiguration - { - public VIDEO_CODEC_TYPE codecType; - public VideoDimensions dimensions; - public int frameRate; - public int bitrate; - public int minBitrate; - public ORIENTATION_MODE orientationMode; - public DEGRADATION_PREFERENCE degradationPreference; - public VIDEO_MIRROR_MODE_TYPE mirrorMode; - public AdvanceOptions advanceOptions; - - public VideoEncoderConfiguration(VideoDimensions d, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED) - { - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - this.dimensions = d; - this.frameRate = f; - this.bitrate = b; - this.minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; - this.orientationMode = m; - this.degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; - this.mirrorMode = mirror; - this.advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - } - - public VideoEncoderConfiguration(int width, int height, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED) - { - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - this.dimensions = new VideoDimensions(width, height); - this.frameRate = f; - this.bitrate = b; - this.minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; - this.orientationMode = m; - this.degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; - this.mirrorMode = mirror; - this.advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - } - - public VideoEncoderConfiguration(VideoEncoderConfiguration config) - { - this.codecType = config.codecType; - this.dimensions = config.dimensions; - this.frameRate = config.frameRate; - this.bitrate = config.bitrate; - this.minBitrate = config.minBitrate; - this.orientationMode = config.orientationMode; - this.degradationPreference = config.degradationPreference; - this.mirrorMode = config.mirrorMode; - this.advanceOptions = config.advanceOptions; - } - - public VideoEncoderConfiguration() - { - this.codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_NONE; - this.dimensions = new VideoDimensions((int)FRAME_WIDTH.FRAME_WIDTH_960, (int)FRAME_HEIGHT.FRAME_HEIGHT_540); - this.frameRate = (int)FRAME_RATE.FRAME_RATE_FPS_15; - this.bitrate = (int)BITRATE.STANDARD_BITRATE; - this.minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; - this.orientationMode = ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; - this.degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; - this.mirrorMode = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED; - this.advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); - } - - public VideoEncoderConfiguration(VIDEO_CODEC_TYPE codecType, VideoDimensions dimensions, int frameRate, int bitrate, int minBitrate, ORIENTATION_MODE orientationMode, DEGRADATION_PREFERENCE degradationPreference, VIDEO_MIRROR_MODE_TYPE mirrorMode, AdvanceOptions advanceOptions) - { - this.codecType = codecType; - this.dimensions = dimensions; - this.frameRate = frameRate; - this.bitrate = bitrate; - this.minBitrate = minBitrate; - this.orientationMode = orientationMode; - this.degradationPreference = degradationPreference; - this.mirrorMode = mirrorMode; - this.advanceOptions = advanceOptions; - } - } - export class VideoEncoderConfiguration { - - codecType?: VideoCodecType; - - dimensions?: VideoDimensions; - - frameRate?: number; - - bitrate?: number; - - minBitrate?: number; - - orientationMode?: OrientationMode; - - degradationPreference?: DegradationPreference; - - mirrorMode?: VideoMirrorModeType; - - advanceOptions?: AdvanceOptions; -} - class VideoEncoderConfiguration { - const VideoEncoderConfiguration( - {this.codecType, - this.dimensions, - this.frameRate, - this.bitrate, - this.minBitrate, - this.orientationMode, - this.degradationPreference, - this.mirrorMode, - this.advanceOptions}); - - @JsonKey(name: 'codecType') - final VideoCodecType? codecType; - - @JsonKey(name: 'dimensions') - final VideoDimensions? dimensions; - - @JsonKey(name: 'frameRate') - final int? frameRate; - - @JsonKey(name: 'bitrate') - final int? bitrate; - - @JsonKey(name: 'minBitrate') - final int? minBitrate; - - @JsonKey(name: 'orientationMode') - final OrientationMode? orientationMode; - - @JsonKey(name: 'degradationPreference') - final DegradationPreference? degradationPreference; - - @JsonKey(name: 'mirrorMode') - final VideoMirrorModeType? mirrorMode; - - @JsonKey(name: 'advanceOptions') - final AdvanceOptions? advanceOptions; - - factory VideoEncoderConfiguration.fromJson(Map<String, dynamic> json) => - _$VideoEncoderConfigurationFromJson(json); - - Map<String, dynamic> toJson() => _$VideoEncoderConfigurationToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - dimensions - -

The dimensions of the encoded video (px). See . This parameter measures the video encoding quality in the format of length × width. The default value is 960 × 540. You can set a custom value.

-

Users can set the resolution by themselves, or directly select the desired resolution from the following list:

    -
  • : The video resolution is 120 × 120.
  • -
  • : The video resolution is 160 × 120.
  • -
  • : The video resolution is 180 × 180.
  • -
  • : The video resolution is 240 × 180.
  • -
  • : The video resolution is 320 × 180.
  • -
  • : The video resolution is 240 × 240.
  • -
  • : The video resolution is 320 × 240.
  • -
  • : The video resolution is 424 × 240.
  • -
  • : The video resolution is 360 × 360.
  • -
  • : The video resolution is 480 × 360.
  • -
  • : The video resolution is 640 × 360.
  • -
  • : The video resolution is 480 × 480.
  • -
  • : The video resolution is 640 × 480.
  • -
  • : The video resolution is 840 × 480.
  • -
  • : The video resolution is 960 × 540.
  • -
  • : The video resolution is 960 × 720.
  • -
  • : The video resolution is 1280 × 720.
  • -
  • : The video resolution is 1920 × 1080.
  • -
  • : The video resolution is 2540 × 1440.
  • -
  • : The video resolution is 3840 × 2160.
  • -
- -
    -
  • Whether the 720p resolution or above can be supported depends on the device. If the device cannot support 720p, the frame rate will be lower than the set value.
  • -
  • The default value is 960 × 540.
  • -

-
-
- - codecType - The codec type of the local video stream. See . - - - frameRate - The frame rate (fps) of the encoding video frame. The default value is 15. See . - The frame rate (fps) of the encoding video frame. The default value is 15.
    -
  • (1): 1 fps.
  • -
  • (7): 7 fps.
  • -
  • (10): 10 fps.
  • -
  • (15): 15 fps.
  • -
  • (24): 24 fps.
  • -
  • (30): 30 fps.
  • -
  • (60): 60 fps. - For Windows and macOS only.
  • -
-
- - bitrate - -

The encoding bitrate (Kbps) of the video. See . This parameter does not need to be set; keeping the default value is sufficient. The SDK automatically matches the most suitable bitrate based on the video resolution and frame rate you have set. For the correspondence between video resolution and frame rate, see .

-
    -
  • (0): (Recommended) Standard bitrate mode.
  • -
  • (-1): Adaptive bitrate mode. In general, Agora suggests that you do not use this value.
  • -
-
- - minBitrate - -

The minimum encoding bitrate (Kbps) of the video.

-

The SDK automatically adjusts the encoding bitrate to adapt to the network conditions. Using a value greater than the default value forces the video encoder to output high-quality images but may cause more packet loss and sacrifice the smoothness of the video transmission. Unless you have special requirements for image quality, Agora does not recommend changing this value.

- This parameter only applies to the interactive streaming profile.
-
- - orientationMode - The orientation mode of the encoded video. See . - - - degradationPreference - Video degradation preference under limited bandwidth. See .When this parameter is set to (1) or (2), orientationMode needs to be set to (0) at the same time, otherwise the setting will not take effect. - - - mirrorMode - -

Sets the mirror mode of the published local video stream. It only affects the video that the remote user sees. See .

- -

Sets the mirror mode of the published local video stream. It only affects the video that the remote user sees.

    -
  • (0): The SDK determines whether to enable the mirror mode. The SDK disables mirror mode by default.
  • -
  • (1): Enables the mirror mode for remote users.
  • -
  • (2): Disables the mirror mode for remote users.
  • -

- By default, the video is not mirrored.
-
- - advanceOptions - Advanced options for video encoding. See . - -
-
- Method - - - initWithSize - Specifies the video resolution and initializes the object. See . - - - initWithWidth - Specifies the video width and height, and initializes the object. See . - - -
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_videoframe.dita b/en-US/en-US/dita/RTC-NG/API/class_videoframe.dita deleted file mode 100644 index 772429d63c2..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_videoframe.dita +++ /dev/null @@ -1,910 +0,0 @@ - - - - <ph keyref="VideoFrame"/> - Configurations of the video frame. - -
-

- public class VideoFrame implements RefCounted { - - public interface Buffer extends RefCounted { - - @CalledByNative("Buffer") int getWidth(); - - @CalledByNative("Buffer") int getHeight(); - - @CalledByNative("Buffer") I420Buffer toI420(); - - @Override @CalledByNative("Buffer") void release(); - - @Override @CalledByNative("Buffer") void retain(); - - @CalledByNative("Buffer") - Buffer cropAndScale( - int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, int scaleHeight); - - @CalledByNative("Buffer") @Nullable Buffer mirror(int frameRotation); - - @CalledByNative("Buffer") @Nullable Buffer rotate(int frameRotation); - - @CalledByNative("Buffer") - @Nullable - Buffer transform(int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, - int scaleHeight, int frameRotation); - } - - public interface I420Buffer extends Buffer { - - @CalledByNative("I420Buffer") ByteBuffer getDataY(); - - @CalledByNative("I420Buffer") ByteBuffer getDataU(); - - @CalledByNative("I420Buffer") ByteBuffer getDataV(); - @CalledByNative("I420Buffer") int getStrideY(); - @CalledByNative("I420Buffer") int getStrideU(); - @CalledByNative("I420Buffer") int getStrideV(); - } - - public interface I422Buffer extends Buffer { - @CalledByNative("I422Buffer") ByteBuffer getDataY(); - @CalledByNative("I422Buffer") ByteBuffer getDataU(); - @CalledByNative("I422Buffer") ByteBuffer getDataV(); - @CalledByNative("I422Buffer") int getStrideY(); - @CalledByNative("I422Buffer") int getStrideU(); - @CalledByNative("I422Buffer") int getStrideV(); - } - public interface RgbaBuffer extends Buffer { @CalledByNative("RgbaBuffer") ByteBuffer getData(); } - - public interface TextureBuffer extends Buffer { - - enum Type { - - OES(GLES11Ext.GL_TEXTURE_EXTERNAL_OES), - - RGB(GLES20.GL_TEXTURE_2D); - private final int glTarget; - private Type(final int glTarget) { - this.glTarget = glTarget; - } - public int getGlTarget() { - return glTarget; - } - } - enum ContextType { - EGL_CONTEXT_10, - EGL_CONTEXT_14; - } - Type getType(); - - @CalledByNative("TextureBuffer") int getTextureId(); - - Matrix getTransformMatrix(); - - @CalledByNative("TextureBuffer") EglBase.Context getEglBaseContext(); - @CalledByNative("TextureBuffer") Object getSourceTexturePool(); - @CalledByNative("TextureBuffer") long getNativeEglContext(); - @CalledByNative("TextureBuffer") int getEglContextType(); - @CalledByNative("TextureBuffer") float[] getTransformMatrixArray(); - - @CalledByNative("TextureBuffer") int getSequence(); - @CalledByNative("TextureBuffer") long getFenceObject(); - @CalledByNative("TextureBuffer") boolean is10BitTexture(); - } - public interface ColorSpace { - enum Range { - Invalid(0), - Limited(1), - Full(2); - private final int range; - private Range(int range) { - this.range = range; - } - public int getRange() { - return range; - }; - } - enum Matrix { - RGB(0), - BT709(1), - Unspecified(2), - FCC(4), - BT470BG(5), - SMPTE170M(6), - SMPTE240M(7), - YCOCG(8), - BT2020_NCL(9), - BT2020_CL(10), - SMPTE2085(11), - CDNCLS(12), - CDCLS(13), - BT2100_ICTCP(14); - private final int matrix; - private Matrix(int matrix) { - this.matrix = matrix; - } - public int getMatrix() { - return matrix; - }; - } - enum Transfer { - BT709(1), - Unspecified(2), - GAMMA22(4), - GAMMA28(5), - SMPTE170M(6), - SMPTE240M(7), - LINEAR(8), - LOG(9), - LOG_SQRT(10), - IEC61966_2_4(11), - BT1361_ECG(12), - IEC61966_2_1(13), - BT2020_10(14), - BT2020_12(15), - SMPTEST2084(16), - SMPTEST428(17), - ARIB_STD_B67(18); - private final int transfer; - private Transfer(int transfer) { - this.transfer = transfer; - } - public int getTransfer() { - return transfer; - } - } - enum Primary { - BT709(1), - Unspecified(2), - BT470M(4), - BT470BG(5), - kSMPTE170M(6), - kSMPTE240M(7), - kFILM(8), - kBT2020(9), - kSMPTEST428(10), - kSMPTEST431(11), - kSMPTEST432(12), - kJEDECP22(22); - private final int primary; - private Primary(int primary) { - this.primary = primary; - } - public int getPrimary() { - return primary; - } - } - Range getRange(); - Matrix getMatrix(); - Transfer getTransfer(); - Primary getPrimary(); - } - public enum SourceType { - kFrontCamera, - kBackCamera, - kUnspecified, - } - public enum AlphaStitchMode { - ALPHA_NO_STITCH(0), - ALPHA_STITCH_UP(1), - ALPHA_STITCH_BELOW(2), - ALPHA_STITCH_LEFT(3), - ALPHA_STITCH_RIGHT(4); - private final int stitchMode; - private AlphaStitchMode(int stitchMode) { - this.stitchMode = stitchMode; - } - public int value() { - return stitchMode; - } - } - - private Buffer buffer; - - private int rotation; - - private long timestampNs; - private ColorSpace colorSpace; - private SourceType sourceType; - private float sampleAspectRatio; - - private AlphaStitchMode alphaStitchMode = AlphaStitchMode.ALPHA_NO_STITCH; - private VideoFrameMetaInfo metaInfo = new VideoFrameMetaInfo(); - - private @Nullable ByteBuffer alphaBuffer; - private long nativeAlphaBuffer; - - public VideoFrame(Buffer buffer, int rotation, long timestampNs) { - this(buffer, rotation, timestampNs, new WrappedNativeColorSpace(), null, 0L, 1.0f, - SourceType.kUnspecified.ordinal()); - } - @CalledByNative - public VideoFrame(Buffer buffer, int rotation, long timestampNs, ColorSpace colorSpace, - ByteBuffer alphaBuffer, long nativeAlphaBuffer, float sampleAspectRatio, int sourceType) { - if (buffer == null) { - throw new IllegalArgumentException("buffer not allowed to be null"); - } - if (rotation % 90 != 0) { - throw new IllegalArgumentException("rotation must be a multiple of 90"); - } - this.buffer = buffer; - this.rotation = rotation; - this.timestampNs = timestampNs; - this.colorSpace = colorSpace; - this.alphaBuffer = alphaBuffer; - this.nativeAlphaBuffer = nativeAlphaBuffer; - this.sampleAspectRatio = sampleAspectRatio; - this.sourceType = SourceType.values()[sourceType]; - } - @CalledByNative - public SourceType getSourceType() { - return sourceType; - } - public float getSampleAspectRatio() { - return sampleAspectRatio; - } - - @CalledByNative - public Buffer getBuffer() { - return buffer; - } - - @CalledByNative - public int getRotation() { - return rotation; - } - @CalledByNative - public int getAlphaStitchMode() { - return alphaStitchMode.value(); - } - @CalledByNative - public void setAlphaStitchMode(int stitchMode) { - alphaStitchMode = AlphaStitchMode.values()[stitchMode]; - } - - @CalledByNative - public long getTimestampNs() { - return timestampNs; - } - @CalledByNative - public VideoFrameMetaInfo getMetaInfo() { - return metaInfo; - } - - public int getRotatedWidth() { - if (rotation % 180 == 0) { - return (alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_LEFT - || alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_RIGHT) - ? buffer.getWidth() / 2 - : buffer.getWidth(); - } - return (alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_UP - || alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_BELOW) - ? buffer.getHeight() / 2 - : buffer.getHeight(); - } - - public int getRotatedHeight() { - if (rotation % 180 == 0) { - return (alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_UP - || alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_BELOW) - ? buffer.getHeight() / 2 - : buffer.getHeight(); - } - return (alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_LEFT - || alphaStitchMode == AlphaStitchMode.ALPHA_STITCH_RIGHT) - ? buffer.getWidth() / 2 - : buffer.getWidth(); - } - - public void replaceBuffer(Buffer buffer, int rotation, long timestampNs) { - release(); - this.buffer = buffer; - this.rotation = rotation; - this.timestampNs = timestampNs; - } - @CalledByNative - public ColorSpace getColorSpace() { - return colorSpace; - } - public void setColorSpace(ColorSpace colorSpace) { - this.colorSpace = colorSpace; - } - @CalledByNative - private int getColorSpaceRange() { - if (colorSpace == null) { - return ColorSpace.Range.Invalid.getRange(); - } - return colorSpace.getRange().getRange(); - } - @CalledByNative - private int getColorSpaceMatrix() { - if (colorSpace == null) { - return ColorSpace.Matrix.Unspecified.getMatrix(); - } - return colorSpace.getMatrix().getMatrix(); - } - @CalledByNative - private int getColorSpaceTransfer() { - if (colorSpace == null) { - return ColorSpace.Transfer.Unspecified.getTransfer(); - } - return colorSpace.getTransfer().getTransfer(); - } - @CalledByNative - private int getColorSpacePrimary() { - if (colorSpace == null) { - return ColorSpace.Primary.Unspecified.getPrimary(); - } - return colorSpace.getPrimary().getPrimary(); - } - @CalledByNative - public ByteBuffer getAlphaBuffer() { - return alphaBuffer; - } - public void retainAlphaBuffer() { - JniCommon.nativeAddRef(nativeAlphaBuffer); - } - public void releaseAlphaBuffer() { - JniCommon.nativeReleaseRef(nativeAlphaBuffer); - } - public void fillAlphaData(ByteBuffer buffer) { - alphaBuffer = buffer; - } - - @Override - public void retain() { - buffer.retain(); - } - - @Override - @CalledByNative - public void release() { - buffer.release(); - } -} - export class VideoFrame { - public buffer:ArrayBuffer | null = null; - public yBuffer: ArrayBuffer | null = null; - public uBuffer: ArrayBuffer | null = null; - public vBuffer: ArrayBuffer | null = null; - - public rotation:number = 0; - public timestamp:number = 0; - public yStride:number = 0; - public uStride:number = 0; - public vStride:number = 0; - public width:number = 0; - public height:number = 0; - public type:VideoBufferType = VideoBufferType.RAW_DATA; - public format:VideoPixelFormat = VideoPixelFormat.VIDEO_PIXEL_NV21; - constructor(type:VideoBufferType,format:VideoPixelFormat) { - this.type = type; - this.format = format; - } -} - __attribute__((visibility("default"))) @interface AgoraOutputVideoFrame : NSObject - -@property (nonatomic, assign) NSInteger type; -@property (nonatomic, assign) int width; -@property (nonatomic, assign) int height; -@property (nonatomic, assign) int yStride; -@property (nonatomic, assign) int uStride; -@property (nonatomic, assign) int vStride; -@property (nonatomic, assign) uint8_t* _Nullable yBuffer; -@property (nonatomic, assign) uint8_t* _Nullable uBuffer; -@property (nonatomic, assign) uint8_t* _Nullable vBuffer; -@property (nonatomic, assign) int rotation; -@property (nonatomic, assign) int64_t renderTimeMs; -@property (nonatomic, assign) int avSyncType; - -@property(assign, nonatomic) CVPixelBufferRef _Nullable pixelBuffer; -@property (nonatomic, assign) uint8_t* _Nullable alphaBuffer; -@property (nonatomic, assign) AgoraAlphaStitchMode alphaStitchMode; - -@property(nonatomic, strong) NSDictionary *_Nonnull metaInfo; -@property(nonatomic, strong) AgoraColorSpace* _Nullable colorSpace; -@end - -struct VideoFrame { - VideoFrame(): - type(VIDEO_PIXEL_DEFAULT), - width(0), - height(0), - yStride(0), - uStride(0), - vStride(0), - yBuffer(NULL), - uBuffer(NULL), - vBuffer(NULL), - rotation(0), - renderTimeMs(0), - avsync_type(0), - metadata_buffer(NULL), - metadata_size(0), - sharedContext(0), - textureId(0), - d3d11Texture2d(NULL), - alphaBuffer(NULL), - alphaStitchMode(NO_ALPHA_STITCH), - pixelBuffer(NULL), - metaInfo(NULL){ - memset(matrix, 0, sizeof(matrix)); - } - - VIDEO_PIXEL_FORMAT type; - - int width; - - int height; - - int yStride; - - int uStride; - - int vStride; - - uint8_t* yBuffer; - - uint8_t* uBuffer; - - uint8_t* vBuffer; - - int rotation; - - int64_t renderTimeMs; - - int avsync_type; - - uint8_t* metadata_buffer; - - int metadata_size; - - void* sharedContext; - - int textureId; - - void* d3d11Texture2d; - - float matrix[16]; - - uint8_t* alphaBuffer; - - ALPHA_STITCH_MODE alphaStitchMode; - - void* pixelBuffer; - - IVideoFrameMetaInfo* metaInfo; - - ColorSpace colorSpace; -}; - USTRUCT(BlueprintType) -struct FVideoFrame { - - GENERATED_BODY() - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - EVIDEO_PIXEL_FORMAT type; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int width; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int height; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int yStride; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int uStride; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int vStride; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int rotation; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<int64> yBuffer; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<int64> uBuffer; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<int64> vBuffer; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int64 renderTimeMs; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int avsync_type; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<int64> metadata_buffer; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int metadata_size; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int64 sharedContext; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - int textureId; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<float> matrix; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<int64> alphaBuffer; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoFrame") - TArray<float> pixelBuffer; -}; - export class VideoFrame { - - type?: VideoPixelFormat; - - width?: number; - - height?: number; - - yStride?: number; - - uStride?: number; - - vStride?: number; - - yBuffer?: Uint8Array; - - uBuffer?: Uint8Array; - - vBuffer?: Uint8Array; - - rotation?: number; - - renderTimeMs?: number; - - avsync_type?: number; - - metadata_buffer?: Uint8Array; - - metadata_size?: number; - - textureId?: number; - - matrix?: number[]; - - alphaBuffer?: Uint8Array; - - alphaStitchMode?: AlphaStitchMode; - -} - public class VideoFrame - { - public VIDEO_PIXEL_FORMAT type; - - public int width; - - public int height; - - public int yStride; - - public int uStride; - - public int vStride; - - public byte[] yBuffer; - - public IntPtr yBufferPtr; - - public byte[] uBuffer; - - public IntPtr uBufferPtr; - - public byte[] vBuffer; - - public IntPtr vBufferPtr; - - public int rotation; - - public long renderTimeMs; - - public int avsync_type; - - public IntPtr metadata_buffer; - - public int metadata_size; - - public IntPtr sharedContext; - - public int textureId; - - public IntPtr d3d11Texture2d; - - public float[] matrix; - - public byte[] alphaBuffer; - - public ALPHA_STITCH_MODE alphaStitchMode; - }; - export class VideoFrame { - - type?: VideoPixelFormat; - - width?: number; - - height?: number; - - yStride?: number; - - uStride?: number; - - vStride?: number; - - yBuffer?: Uint8Array; - - uBuffer?: Uint8Array; - - vBuffer?: Uint8Array; - - rotation?: number; - - renderTimeMs?: number; - - avsync_type?: number; - - metadata_buffer?: Uint8Array; - - metadata_size?: number; - - textureId?: number; - - matrix?: number[]; - - alphaBuffer?: Uint8Array; - - alphaStitchMode?: AlphaStitchMode; - -} - @JsonSerializable(explicitToJson: true, includeIfNull: false) -class VideoFrame { - const VideoFrame( - {this.type, - this.width, - this.height, - this.yStride, - this.uStride, - this.vStride, - this.yBuffer, - this.uBuffer, - this.vBuffer, - this.rotation, - this.renderTimeMs, - this.avsyncType, - this.metadataBuffer, - this.metadataSize, - this.textureId, - this.matrix, - this.alphaBuffer, - this.alphaStitchMode, - this.pixelBuffer, - this.metaInfo}); - - @JsonKey(name: 'type') - final VideoPixelFormat? type; - - @JsonKey(name: 'width') - final int? width; - - @JsonKey(name: 'height') - final int? height; - - @JsonKey(name: 'yStride') - final int? yStride; - - @JsonKey(name: 'uStride') - final int? uStride; - - @JsonKey(name: 'vStride') - final int? vStride; - - @JsonKey(name: 'yBuffer', ignore: true) - final Uint8List? yBuffer; - - @JsonKey(name: 'uBuffer', ignore: true) - final Uint8List? uBuffer; - - @JsonKey(name: 'vBuffer', ignore: true) - final Uint8List? vBuffer; - - @JsonKey(name: 'rotation') - final int? rotation; - - @JsonKey(name: 'renderTimeMs') - final int? renderTimeMs; - - @JsonKey(name: 'avsync_type') - final int? avsyncType; - - @JsonKey(name: 'metadata_buffer', ignore: true) - final Uint8List? metadataBuffer; - - @JsonKey(name: 'metadata_size') - final int? metadataSize; - - @JsonKey(name: 'textureId') - final int? textureId; - - @JsonKey(name: 'matrix') - final List<double>? matrix; - - @JsonKey(name: 'alphaBuffer', ignore: true) - final Uint8List? alphaBuffer; - - @JsonKey(name: 'alphaStitchMode') - final AlphaStitchMode? alphaStitchMode; - - @JsonKey(name: 'pixelBuffer', ignore: true) - final Uint8List? pixelBuffer; - - @VideoFrameMetaInfoConverter() - @JsonKey(name: 'metaInfo') - final VideoFrameMetaInfo? metaInfo; - - factory VideoFrame.fromJson(Map<String, dynamic> json) => - _$VideoFrameFromJson(json); - - Map<String, dynamic> toJson() => _$VideoFrameToJson(this); -} -

-
-
-

Note that the buffer provides a pointer to a pointer. This interface cannot modify the pointer of the buffer, but it can modify the content of the buffer.

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - type - The video type. See . - - - format - type - The pixel format. See . - - - - width - The width of the video, in pixels. - - - height - The height of the video, in pixels. - - - yStride - For YUV data, the line span of the Y buffer; for RGBA data, the total data length.When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion. - - - - uStride - For YUV data, the line span of the U buffer; for RGBA data, the value is 0.When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion. - - - - vStride - For YUV data, the line span of the V buffer; for RGBA data, the value is 0.When dealing with video data, it is necessary to process the offset between each line of pixel data based on this parameter, otherwise it may result in image distortion. - - - - yBuffer - For YUV data, the pointer to the Y buffer; for RGBA data, the data buffer. - - - uBuffer - For YUV data, the pointer to the U buffer; for RGBA data, the value is 0. - - - vBuffer - For YUV data, the pointer to the V buffer; for RGBA data, the value is 0. - - - I420Buffer - The buffer for I420 video frames, including YUV data. - - - I422Buffer - The buffer for I420 video frames, including YUV data. - - - TextureBuffer - The buffer for Texture video frames, which can be OES or RGB format. - - - buffer - - This parameter cannot be empty; otherwise, an error can occur.Buffer data. The methods associated with this parameter are as follows: - -
    -
  • getRotatedWidth: Gets the width of the rotated video frame.
  • -
  • getRotatedHeight: Gets the height of the rotated video frame.
  • -
  • replaceBuffer: Replaces the data in the buffer with the new video frames.
  • -
  • retain: Increments the reference count of the buffer by 1.
  • -
  • release: Decrements the reference count of the buffer by 1. When the count reaches 0, the buffer's resources are released.
  • -
-
-
- - rotation - The clockwise rotation of the video frame before rendering. Supported values include 0, 90, 180, and 270 degrees. - - - renderTimeMs - The Unix timestamp (ms) when the video frame is rendered. This timestamp can be used to guide the rendering of the video frame. This parameter is required. - - - timestampNs - The timestamp (ns) of a video frame. - - - avsync_type - avsyncType - Reserved for future use. - - - metadata_buffer - metadataBuffer - This parameter only applies to video data in Texture format. The MetaData buffer. The default value is NULL. - - - metadata_size - metadataSize - This parameter only applies to video data in Texture format. The MetaData size. The default value is 0. - - - sharedContext - This parameter only applies to video data in Texture format. EGL Context. - - - textureId - This parameter only applies to video data in Texture format. Texture ID. - - - d3d11Texture2d - This parameter only applies to video data in Windows Texture format. It represents a pointer to an object of type ID3D11Texture2D, which is used by a video frame. - - - matrix - This parameter only applies to video data in Texture format. Incoming 4 × 4 transformational matrix. The typical value is a unit matrix. - - - pixelBuffer - Fills the data to CVPixelBuffer. - - - colorSpace - The color space of a video frame. See . - - - sourceType - When using the SDK to capture video, this indicates the type of the video source.
    -
  • kFrontCamera: The front camera.
  • -
  • kBackCamera: The rear camera.
  • -
  • kUnspecified: (Default) The video source type is unknown.
  • -
-
- - sampleAspectRatio - The aspect ratio of a single pixel, which is the ratio of the width to the height of each pixel. - - - alphaBuffer - alphaBuf - -

The alpha channel data output by using portrait segmentation algorithm. This data matches the size of the video frame, with each pixel value ranging from [0,255], where 0 represents the background and 255 represents the foreground (portrait).

-

By setting this parameter, you can render the video background into various effects, such as transparent, solid color, image, video, etc.

-
  • In custom video rendering scenarios, ensure that both the video frame and alphaBuffer are of the Full Range type; other types may cause abnormal alpha data rendering.
  • -
  • Make sure that alphaBufferalphaBuf is exactly the same size as the video frame (width × height), otherwise it may cause the app to crash.
-
-
- - alphaStitchMode - When the video frame contains alpha channel data, it represents the relative position of alphaBuffer and the video frame. See .
    -
  • 0: (Default) Only video frame, that is, alphaBuffer is not stitched with the video frame.
  • -
  • (1): alphaBuffer is above the video frame.
  • -
  • (2): alphaBuffer is below the video frame.
  • -
  • (3): alphaBuffer is to the left of the video frame.
  • -
  • (4): alphaBuffer is to the right of the video frame.
  • -
-
- - metaInfo - -

The meta information in the video frame. To use this parameter, contact .

-
-
-
-
-
diff --git a/en-US/en-US/dita/RTC-NG/API/class_videosubscriptionoptions.dita b/en-US/en-US/dita/RTC-NG/API/class_videosubscriptionoptions.dita deleted file mode 100644 index a7ea5800c39..00000000000 --- a/en-US/en-US/dita/RTC-NG/API/class_videosubscriptionoptions.dita +++ /dev/null @@ -1,133 +0,0 @@ - - - - <ph keyref="VideoSubscriptionOptions"/> - Video subscription options. - -
-

- public class VideoSubscriptionOptions { - public enum REMOTE_VIDEO_STREAM_TYPE { - REMOTE_VIDEO_STREAM_HIGH, - REMOTE_VIDEO_STREAM_LOW, - } - - private REMOTE_VIDEO_STREAM_TYPE streamType; - - private Boolean encodedFrameOnly; - - public VideoSubscriptionOptions() {} - - public VideoSubscriptionOptions(REMOTE_VIDEO_STREAM_TYPE streamType, boolean encodedFrameOnly) { - this.encodedFrameOnly = encodedFrameOnly; - this.streamType = streamType; - } - - @CalledByNative - public int getStreamType() { - return streamType.ordinal(); - } - - @CalledByNative - public boolean isEncodedFrameOnly() { - return encodedFrameOnly; - } - - public void setEncodedFrameOnly(boolean encodedFrameOnly) { - this.encodedFrameOnly = encodedFrameOnly; - } - - public void setStreamType(REMOTE_VIDEO_STREAM_TYPE streamType) { - this.streamType = streamType; - } -} - - __attribute__((visibility("default"))) @interface AgoraVideoSubscriptionOptions: NSObject - -@property (nonatomic, assign) AgoraVideoStreamType type; -@property (nonatomic, assign) BOOL encodedFrameOnly; - -@end - struct VideoSubscriptionOptions { - Optional<VIDEO_STREAM_TYPE> type; - Optional<bool> encodedFrameOnly; - - VideoSubscriptionOptions() {} -}; - USTRUCT(BlueprintType) -struct FVideoSubscriptionOptions -{ - GENERATED_BODY() -public: - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|ChannelMediaOptions") - bool type_SetValue = false; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoSubscriptionOptions") - EVIDEO_STREAM_TYPE type = EVIDEO_STREAM_TYPE::VIDEO_STREAM_HIGH; - UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|VideoSubscriptionOptions") - EAgoraOptional encodedFrameOnly = EAgoraOptional::AGORA_NULL_VALUE; - FVideoSubscriptionOptions(){} - FVideoSubscriptionOptions(const agora::rtc::VideoSubscriptionOptions & AgoraData){ - SET_UEBP_OPTIONAL_VAL_ASSIGN_VAL(this->type,AgoraData.type,static_cast<EVIDEO_STREAM_TYPE>(AgoraData.type.value())) - SET_UEBP_OPTIONAL_VAL_BOOL(this->encodedFrameOnly,AgoraData.encodedFrameOnly) - } - agora::rtc::VideoSubscriptionOptions CreateAgoraData() const { - agora::rtc::VideoSubscriptionOptions AgoraData; - SET_AGORA_OPTIONAL_VAL_ASSIGN_VAL(AgoraData.type,this->type,static_cast<agora::rtc::VIDEO_STREAM_TYPE>(this->type)) - SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.encodedFrameOnly,this->encodedFrameOnly) - return AgoraData; - } - void FreeAgoraData(agora::rtc::VideoSubscriptionOptions& AgoraData) const { - } -}; - export class VideoSubscriptionOptions { - - type?: VideoStreamType; - - encodedFrameOnly?: boolean; -} - public class VideoSubscriptionOptions:OptionalJsonParse - { - public Optional<VIDEO_STREAM_TYPE> type = new Optional<VIDEO_STREAM_TYPE>(); - - public Optional<bool> encodedFrameOnly = new Optional<bool>(); - } - export class VideoSubscriptionOptions { - - type?: VideoStreamType; - - encodedFrameOnly?: boolean; -} - class VideoSubscriptionOptions { - const VideoSubscriptionOptions({this.type, this.encodedFrameOnly}); - - @JsonKey(name: 'type') - final VideoStreamType? type; - - @JsonKey(name: 'encodedFrameOnly') - final bool? encodedFrameOnly; - - factory VideoSubscriptionOptions.fromJson(Map<String, dynamic> json) => - _$VideoSubscriptionOptionsFromJson(json); - - Map<String, dynamic> toJson() => _$VideoSubscriptionOptionsToJson(this); -} -

-
-
- <text conref="../conref/conref_api_metadata.dita#conref_api_metadata/property"/> - - - streamType - type - The video stream type that you want to subscribe to. The default value is , indicating that the high-quality video streams are subscribed. See . - - - encodedFrameOnly - Whether to subscribe to encoded video frames only:
    -
  • : Subscribe to the encoded video data (structured data) only; the SDK does not decode or render raw video data.
  • -
  • : (Default) Subscribe to both raw video data and encoded video data.
  • -
-
-
-
-