tencent cloud

Feedback

Last updated: 2024-02-29 11:12:43
    Tencent Effect SDK Core Interface Class XmagicApi.java, utilized for initializing the SDK, updating beauty metric values, invoking animated effects, amongst other features.

    Public Member Functions

    API
    Description
    XmagicApi
    constructor.
    Updates the attribute, it can be invoked in any thread (V3.3.0 and before).
    Performing bulk attribute updates can be invoked in any thread (V3.3.0 and previous).
    setEffect
    Establishing beauty enhancements, styling, filters, makeup applications, stickers, division and other effects can be invoked in any thread (New in V3.5.0 version)
    Setting up callback functions for animated hint text, designated to display hints on the frontend page.
    Configure the callback of facial keypoints and other data, callback will only be available with the License authorization required to acquire facial keypoints (such as Atomic Capability X102).
    Configure the callback for face, gesture, and body detection statuses.
    onPause
    Pause audio playback, which can be associated with the `onPause` lifetime affinity of `Activity`.
    onResume
    Resume rendering, can be paired with Activity onResume lifetime affinity.
    onDestroy
    Terminate `xmagic`, which necessitates its invocation within the `GL` thread.
    process
    The method for SDK rendering to accept data can be used within the camera data callback function.
    Invoke this function when only the cessation of the audio is necessitated, without the need to release the GL thread.
    It serves to establish the present angle of rotation of the mobile phone, thus adjusting the angle for AI to recognize faces based on this.
    The list of dynamic effect resources is introduced into the SDK for examination, executing afterwards the XmagicProperty.isSupport field represents whether the atomic capability is applicable. According to XmagicProperty.isSupport, the UI layer can implement click restrictions, or directly eliminate from the resource list.
    Pass in a list of dynamic effect resources and return the list of SDK atomic capabilities used by each resource.
    Return the atomic capability list supported by the current device.
    Determine whether the current device supports refinement (OpenGL3.0).
    Determine which beauties the current lic authorization supports. It only supports the detection of BEAUTY and BODY_BEAUTY types of beauty items. The detection result will be assigned to the XmagicProperty.isAuth field of each beauty object.
    Set the input data type, the default is Android camera data stream.
    Establish the log level of the SDK, the default is WARN. During the development and debugging stage, if needed, it can be set to Log.DEBUG. Be sure to set to Log.WARN or Log.ERROR upon official release, otherwise excessive logs will affect performance.
    Invoke after new XmagicApi().
    Whether to mute when using animation materials (Added in V2.5.0):
    Parameter: true indicates mute, false denotes non-mute.
    Activate the beautification enhancing pattern (Added in V2.5.1). By default, it is not activated.
    When it's disabled, the application layer can set the strength range for each beauty field between 0 to 1 or -1 to 1. If it exceeds the boundary, SDK will fixate to the boundary value. For example, if the application layer sets face-slimming component to 1.2, SDK will limit it to the maximum value of 1.0.
    After enabling the enhanced pattern, the application layer can set a broader range of values. For instance, if a greater face slimming effect is desired, you can set the slimming value to 1.2. The SDK will accept and use this value of 1.2 without correcting it to 1.0.
    Note:
    Upon enabling the enhancement pattern, the application layer must manage the maximum settable value for each beauty field, allowing users to adjust the value within such boundary parameters. We offer a reference value that you can adjust in accordance to product demand. However, we do not recommend exceeding our advised estimates as this could potentially deteriorate the beauty effect.
    Invoke this method to enable the high-performance pattern. Upon the activation of the high-performance pattern, the system CPU/GPU resources occupied by beauty filters are minimized, thereby reducing heat generation and latency issues in the mobile device. It is particularly suitable for prolonged use on low-end devices.
    Get the picture on the current texture
    Enable or disable a certain capability.

    XmagicApi

    constructor.
    XmagicApi(Context context, String resDir)
    XmagicApi(Context context, String resDir,OnXmagicPropertyErrorListener xmagicPropertyErrorListener)

    Parameter

    Parameter
    Type
    Meaning
    context
    Context
    context.
    resDir
    String
    Resource directory.
    If the SDK resources are built into assets, before the first use of the SDK, the resources need to be copied to the application's private directory. The resource path is set first via XmagicResParser.setResPath(new File(getFilesDir(), "xmagic").getAbsolutePath()), and then the resource copying is completed via XmagicResParser.copyRes(getApplicationContext()). See the TEMenuActivity.java document in the Demo for detailed information.
    If the SDK resources are downloaded from the internet, after a successful download, the resource path can be set by XmagicResParser.setResPath(validAssetsDirectory).
    Access the previously set path via XmagicResParser.getResPath().
    xmagicPropertyErrorListener
    OnXmagicPropertyErrorListener
    Error callback interface.
    Return the reference table for the meanings of error codes:
    Error code
    Meaning
    -1
    Unknown error.
    -100
    3D engine resource initialization failed.
    -200
    GAN materials are not supported.
    -300
    This device does not support this material component.
    -400
    The template JSON content is empty.
    -500
    The SDK version is too low.
    -600
    Splitting is not supported.
    -700
    OpenGL is not supported.
    -800
    Scripting is not supported.
    5000
    The resolution of the split background image exceeds 2160x3840.
    5001
    Insufficient memory required to segment the background image.
    5002
    Failed to parse the video segmentation of the background.
    5003
    Background video segment exceeds 200 seconds.
    5004
    Background video segment format unsupported.
    5005
    Background image segment possesses rotation angle

    updateProperty,updateProperties

    Modifies either a single beauty effect or multiple beauty effects, dynamic effects, filters in bulk, and can be invoked from any thread.
    void updateProperty(XmagicProperty<?> p)
    void updateProperties(List<XmagicProperty<?>> properties)

    Parameter

    Parameter
    Meaning
    XmagicProperty<?> p
    Tencent Effect data entity class.
    Taking "Skin Smoothing" as an example, an instance can be created as follows: new XmagicProperty<>(Category.BEAUTY, null, null, BeautyConstant.BEAUTY_SMOOTH, new XmagicPropertyValues(0, 100, 50, 0, 1));
    To take '2D Animated Effect Bunny Paste' as an example, you can instantiate a new instance in the following manner: new XmagicProperty<>(Category.MOTION, "video_tutujiang", "path of the effect file", null, null);
    
    If you want a certain animation/beauty/masking material to be overlaid on the current material, set the mergeWithCurrentMotion of that material's XmagicProperty object to true. For a detailed explanation of material overlay, see Material Overlay.
    
    For more examples, please refer to the configuration information in the assets/beauty_panel folder of the Demo project.

    XmagicPropertybeauty parameter description

    Beauty filter
    Attribute Field
    Description
    category
    Category.BEAUTY
    ID
    null
    Special case:
    The respective ID values for Natural, Goddess, and Handsome in the Face Slimming feature are: BeautyConstant.BEAUTY_FACE_NATURE_ID, BeautyConstant.BEAUTY_FACE_FEMALE_GOD_ID, BeautyConstant.BEAUTY_FACE_MALE_GOD_ID
    The ID value in the lipstick is: XmagicConstant.BeautyConstant.BEAUTY_LIPS_LIPS_MASK
    The ID value in the blush is:XmagicConstant.BeautyConstant.BEAUTY_MAKEUP_MULTIPLY_MULTIPLY_MASK
    The ID value in 3D is:XmagicConstant.BeautyConstant.BEAUTY_SOFTLIGHT_SOFTLIGHT_MASK
    resPath
    null
    Special Case: Lipstick, blush, and three-dimensional resPath represent the paths of resource images. For details, please refer to the `assets/beauty_panel/advanced_beauty.json` file in the Demo.
    effkey
    Mandatory, refer to the Demo
    Example: Brightening BeautyConstant.BEAUTY_WHITEN
    effValue
    Mandatory, refer to the assets/beauty_panel/advanced_beauty.json file in the Demo, the demo project parses this file to construct an XmagicPropertyValues object, for XmagicPropertyValues attribute values, see beauty parameter description
    Body beautification
    Attribute Field
    Description
    category
    Category.BODY_BEAUTY
    ID
    null
    resPath
    null
    effkey
    Mandatory, refer to the Demo
    Example: Long-legged BeautyConstant.BODY_LEG_STRETCH
    effValue
    Mandatory, refer to the assets/beauty_panel/beauty_body.json file in the Demo. In the demo project, parse this file to construct an XmagicPropertyValues object. The values of XmagicPropertyValues' properties can be seen in Beauty Parameters Explanation
    Filters
    Attribute Field
    Description
    category
    Category.LUT
    ID
    Image name, required
    Sample: dongjing_lf.png
    The "none" ID corresponds to XmagicProperty.ID_NONE
    resPath
    Filter image path, mandatory, "none" setting as null
    effkey
    null
    effValue
    Mandatory,"None" Setting as null. It is an XmagicPropertyValues object, for the property values of XmagicPropertyValues see Beauty parameters explanation
    Animated Effects
    Attribute Field
    Description
    category
    Category.MOTION
    ID
    Resource folder name, required
    Example: video_lianliancaomei
    The "none" ID corresponds to XmagicProperty.ID_NONE
    resPath
    Mandatory, refer to the Demo
    effkey
    null
    effValue
    null
    Makeup
    Attribute Field
    Description
    category
    Category.MAKEUP
    ID
    Resource folder name, required
    Example: video_xuejiezhuang
    The "none" ID corresponds to XmagicProperty.ID_NONE
    resPath
    Mandatory, refer to the Demo
    effkey
    Mandatory. The value is: makeup.strength"None" Setting is null
    effValue
    Mandatory, "None" Setting is null. This is an XmagicPropertyValues object, for the values of various properties of XmagicPropertyValues, see Beauty Parameter Explanation
    Keying
    Attribute Field
    Description
    category
    Category.SEGMENTATION
    ID
    Resource folder name, required
    Example: video_segmentation_blur_45
    The "none" ID corresponds to XmagicProperty.ID_NONE
    From the Definition, the ID value must use: XmagicConstant.SegmentationId.CUSTOM_SEG_ID
    resPath
    Mandatory, refer to the Demo
    effkey
    null (excluding custom definition background), the value of the custom definition background is the selected resource path
    effValue
    null

    setEffect(Added in V3.5.0)

    You can configure beautification, shaping, filtering, makeup, stickers, partitioning, and other effects on any thread. For specific parameters, please refer to Beautification Parameters Explanation.
    void setEffect(String effectName, int effectValue, String resourcePath, Map<String, String> extraInfo)

    setTipsListener

    Establish the callback for animated effect cues, utilized for displaying prompts onto the frontend page. For instance, certain materials might instruct users to nod their heads, extend their palms, or make a heart shape.
    void setTipsListener(XmagicApi.XmagicTipsListener effectTipsListener)

    Parameter

    Parameter
    Meaning
    XmagicApi.XmagicTipsListener effectTipsListener
    Implementation class of the callback function, callbacks are not necessarily executed in the main thread.

    setYTDataListener(this interface was removed in version 3.0.0, the feature has been migrated to the onAIDataUpdated method in XmagicAIDataListener)

    Configure callbacks for facial landmark information and other data.
    void setYTDataListener(XmagicApi.XmagicYTDataListener ytDataListener)
    Configuring the callback for face information and other data
    
    public interface XmagicYTDataListener {
    void onYTDataUpdate(String data)
    }
    onYTDataUpdate returns a JSON string structure, providing a maximum of five facial information:
    {
    "face_info":[{
    "trace_id":5,
    "face_256_point":[
    180.0,
    112.2,
    ...
    ],
    "face_256_visible":[
    0.85,
    ...
    ],
    "out_of_screen":true,
    "left_eye_high_vis_ratio:1.0,
    "right_eye_high_vis_ratio":1.0,
    "left_eyebrow_high_vis_ratio":1.0,
    "right_eyebrow_high_vis_ratio":1.0,
    "mouth_high_vis_ratio":1.0
    },
    ...
    ]
    }

    Field Description

    Field
    Type
    Range
    Description
    trace_id
    int
    [1,INF)
    Face ID. The same ID points to the same face in the process of continuous stream fetching.
    face_256_point
    float
    [0,screenWidth] or [0,screenHeight]
    512 values in total for 256 facial keypoints. (0,0) is the top-left corner of the screen.
    face_256_visible
    float
    [0,1]
    Visibility of the 256 facial keypoints.
    out_of_screen
    bool
    true/false
    Whether the face is out of the screen.
    left_eye_high_vis_ratio
    float
    [0,1]
    Percentage of the highly visible points of the left eye.
    right_eye_high_vis_ratio
    float
    [0,1]
    Percentage of the highly visible points of the right eye.
    left_eyebrow_high_vis_ratio
    float
    [0,1]
    Percentage of the highly visible points of the left eyebrow.
    right_eyebrow_high_vis_ratio
    float
    [0,1]
    Percentage of the highly visible points of the right eyebrow.
    mouth_high_vis_ratio
    float
    [0,1]
    Percentage of the highly visible points of the mouth.

    Parameter

    Parameter
    Meaning
    XmagicApi.XmagicYTDataListener ytDataListener
    Callback function implementation class.

    setAIDataListener

    Upon detection of faces, bodies, and gestures, the spatial information of these parts will be returned via a callback:
    onFaceDataUpdated: Once beauty mode is enabled, there will be a callback. When a face is detected, a List<FaceData> is returned. If no face is detected, an empty List is returned.
    onHandDataUpdated: A callback is established when gestures are recognized after setting the gesture animation. No callbacks occur under any other circumstances.
    onBodyDataUpdated: Callback when the body shaping properties are set and the body is recognized. It does not callback in other situations.
    public interface OnAIDataListener {
    
    void onFaceDataUpdated(List<TEFaceData> faceDataList);
    void onHandDataUpdated(List<TEHandData> handDataList);
    void onBodyDataUpdated(List<TEBodyData> bodyDataList);
    void onAIDataUpdated(String jsonString); // This method is a new addition in version 3.0.0, and the data structure aligns with the preceding XmagicYTDataListener interface's data
    }

    onPause

    Pause rendering, which can be bound with Activity's onPause lifetime affinity. Currently, only onPauseAudio is called internally.
    void onPause()

    onResume

    Resume rendering, can be paired with Activity onResume lifetime affinity.
    void onResume()

    onDestroy

    Clears GL thread resources and needs to be called within the GL thread. Sample code:
    // Refer to the sample code in `TECameraBaseActivity.java`
    public void onGLContextDestroy() { if (this.mXMagicApi != null) { this.mXMagicApi.onDestroy(); this.mXMagicApi = null; } }

    process

    The method for SDK rendering to accept data can be used within the camera data callback function.
    // Render the texture
    int process(int srcTextureId, int srcTextureWidth, int srcTextureHeight)
    // Render the bitmap
    Bitmap process(Bitmap bitmap, boolean needReset)

    Parameter

    Parameter
    Meaning
    int srcTextureId
    The texture that needs to be rendered. The type is: OpenGL 2D texture format, and the pixel format is RGBA.
    id int srcTextureWidth
    Width of the texture that needs to be rendered.
    int srcTextureHeight
    Height of the texture that needs to be rendered.
    Bitmap bitmap
    The recommended maximum size is 2160 x 4096. Larger images have poor face recognition results or cannot get faces recognized and are likely to cause OOM problems. Shrink such images first before passing them in.
    boolean needReset
    Switch the image.
    First time using partition.
    Initial use of animated effects.
    First-time usage of makeup.
    For these scenarios, the needReset Setting should be set to `true`.

    onPauseAudio

    Invoke this function when only the cessation of the audio is necessitated, without the need to release the GL thread.
    void onPauseAudio()

    sensorChanged

    Used to determine the current rotation angle of the phone, so as to adjust the basis for AI to recognize the angle of the face. This needs to be called in the callback function of the G-sensor.
    void sensorChanged(SensorEvent event, Sensor accelerometer)

    Parameter

    Parameter
    Meaning
    SensorEvent event
    Event entity class returned by the gyroscope sensor callback function onSensorChanged.
    Sensor accelerometer
    Sample G-sensor.

    isDeviceSupport

    version 3.5.0 and later
    /**
    * Check whether the current device supports this material
    * @param motionResPath The path of the material file
    * @return true means supported, false means not supported
    */
    boolean isDeviceSupport(String motionResPath)
    version 3.3.0 and earlier
    Transmit the list of animated effect resources into the SDK for verification. After execution, the XmagicProperty.isSupport field signifies if the resource is serviceable. Based on XmagicProperty.isSupport, click control can be enacted at the UI level, or it can be directly expunged from the resource list.
    void isDeviceSupport(List<XmagicProperty<?>> assetsList)

    Parameter

    Parameter
    Meaning
    List<XmagicProperty<?>> assetsList
    List of animated effect materials to be checked.

    getPropertyRequiredAbilities

    Inputs an animated effect resources list, returns the SDK atomic abilities list used for each resource. The usage scenario of this method: If you have purchased or created a number of animated effect materials, by invoking this method, it will returning a list of atomic abilities required for each material. For instance, material 1 requires abilities A, B, C while material 2 need abilities B, C, D. Subsequently, you maintain such a list of abilities on your server. Later on, when a user wants to download the animated effect materials from the server, the user first accesses the list of atomic abilities that his mobile has through the getDeviceAbilities method (for example, this phone possess abilities A, B, C, but lacks D), transmits this abilities list to the server. The server, on determining the device does not have ability D, therefore does not issue material 2 to the user.

    Parameter

    Parameter
    Meaning
    List<XmagicProperty<?>> assets
    List of animated effect resources for which to check the atomic capabilities.

    Return

    Returned value Map<XmagicProperty<?>,ArrayList<String>> :
    key: animated effect resource material entity class.
    value: list of used atomic capabilities.

    getDeviceAbilities

    It returns the atomic capability table that the current device supports. To be used in conjunction with the getPropertyRequiredAbilities method. For more details, please refer to the description of the getPropertyRequiredAbilities.
    Map<String,Boolean> getDeviceAbilities()

    Return

    Return value Map<String,Boolean>:
    key: atomic capability name (corresponding to the material capability name).
    value: whether it is supported by the current device.

    isSupportBeauty

    Determine whether the current device supports refinement (OpenGL3.0).
    boolean isSupportBeauty()

    Return

    Return value boolean: Determines whether the beauty filter is supported.

    isBeautyAuthorized

    Determine which beauty or body modifier features the current License authorization supports. Only detection of BEAUTY and BODY_BEAUTY types are supported. The resultant evaluation will be allocated to each beauty object's XmagicProperty.isAuth field. If the isAuth field returns false, the entrances for these features can be concealed in the UI.
    void isBeautyAuthorized(List<XmagicProperty<?>> properties)

    Parameter

    Parameter
    Meaning
    List<XmagicProperty<?>> properties
    Beauty filters that need to be checked.

    setXmagicStreamType

    Sets the input data type, which is Android camera data stream (XmagicApi.PROCESS_TYPE_CAMERA_STREAM) by default.
    void setXmagicStreamType(int type)

    Parameter

    Parameter
    Meaning
    int type
    Data source type, there are two options:
    XmagicApi.PROCESS_TYPE_CAMERA_STREAM: camera data source.
    XmagicApi.PROCESS_TYPE_PICTURE_DATA: Image data source.

    setXmagicLogLevel

    Setting the log level of the SDK, the default is WARN. During the development debugging stage if necessary, it can be set to Log.DEBUG.. When officially released, it must be set to Log.WARN or Log.ERROR otherwise, an immense amount of logs will adversely affect performance.
    Invoke after new XmagicApi().

    setAudioMute

    Whether to mute when using animation materials (Added in V2.5.0):
    Parameter: true indicates mute, false denotes non-mute.

    enableEnhancedMode

    Activate the beautification enhancing pattern (Added in V2.5.1). By default, it is not activated.
    When inactive, the strength range of each beauty option in the application layer can be set from 0 to 1 or -1 to 1. If this range is exceeded, the SDK will take the boundary value. For instance, if the application layer sets the face-thinning to 1.2, the SDK determines that this surpasses the maximum value of 1.0, and internally adjusts the face-thinning value to 1.0.
    After enabling the enhanced pattern, the application layer can set a broader range of values. For instance, if a greater face slimming effect is desired, you can set the slimming value to 1.2. The SDK will accept and use this value of 1.2 without correcting it to 1.0.
    Upon activation of the enhanced pattern, it becomes the responsibility of the application layer to manage the maximal values of each beauty setting, allowing users to adjust within this range. We provide a set of reference values which you may adjust freely according to product requirements, though we advise not exceeding our recommended values to avoid potential degradation of beauty effects. The reference values are as follows:
    Beauty Item Name
    In enhanced pattern, recommended maximum value (magnification factor)
    Whitening, shortening the face, V-face, eye distance, nose position, removal of laugh lines, lipstick, three-dimensional appearance
    1.3
    Eye lightening
    1.5
    Blush
    1.8
    Other
    1.2

    Material Overlapping (Added in 3.0.1.2)

    If you wish to stack a certain dynamic effect, make-up or division material on the current material, then set the XmagicProperty object of said material 'mergeWithCurrentMotion' to true. For other property Settings see Beauty Parameter Settings.
    Points to Note on Material Overlay:
    1. Clients are required to manage the compatibility of their materials for overlaying. Here are two examples:
    Example 1: Effect A turns the face into an imperial concubine's visage, and Effect B transforms it into a fairytale-like appearance. The overlay of these two effects may result in an unnaturally distorted image.
    Example 2: Effect A represents rabbit ears, while Effect B represents pig ears. When combined, two types of ears are presented.
    Case 1 and Case 2 are not conducive to superimposition. If Effect A is a pair of rabbit ears, and Effect B is blowing a kiss, these two effects won't conflict and are hence suitable for superimposition.
    2. Only the overlay of simple materials is supported. Simple materials refer to single animation capabilities, or single makeup effects, or single background removal, etc. Complex materials refer to those that contain multiple effects. There is no clear definition between simple and complex materials. It is recommended that customers thoroughly test and manage which materials can be overlaid and which cannot.
    3. When combined, effects triggered by actions (such as stretching out a hand to trigger a certain effect, smiling to instigate a specific effect, and so on) are classified as complex effects. These need to be placed in the forefront, with simpler effects overlaid behind them.
    4. Usage example: The anchor uses effect A, then the audience gifts effect B. Effect B is applied on top of effect A. After a period of time, effect B disappears, returning to effect A. The setting process is as follows:
    4.1 Setting special effect A, mergeWithCurrentMotion Setting is false.
    4.2 Setting special effect B, mergeWithCurrentMotion Setting is true.
    4.3 After a brief period, proceed with Setting A, ensuring mergeWithCurrentMotion Setting is set to false.

    setDowngradePerformance(Added in V3.1.0)

    Upon activating the advanced performance pattern, the resources consumed by the beautification function on your system's CPU/GPU are diminished, effectively mitigating the heating and lagging issues of your mobile device, making it particularly beneficial for extended utilization on lower-end devices.
    Note: After enabling the high performance pattern, the following beauty options will be unavailable:
    1. Ocular region: Eye width, eye height, removal of eye bags .
    2. Eyebrows: Angle, Distance, Height, Length, Thickness, Eyebrow Peak.
    3. Mouth: The Smiling Lips.
    4. Facial: Slimming (natural, goddess, handsome), jaw reduction, wrinkle removal, and nasolabial fold removal. It is recommended to use "face shape" to achieve the comprehensive effect of large eyes and slim face.
    void boolean setDowngradePerformance()

    exportCurrentTexture

    Get the picture on the current texture
    void exportCurrentTexture(ExportTextureCallback callback)

    setFeatureEnableDisable

    Enable or disable a feature.
    void setFeatureEnableDisable(String featureName, boolean enable)

    Parameter

    Parameter
    Meaning
    String featureName
    feature Name
    Values:
    XmagicConstant.FeatureName.ANIMOJI_52_EXPRESSION facial expressions feature.
    XmagicConstant.FeatureName.BODY_3D_POINT 3D body data feature.
    XmagicConstant.FeatureName.HAND_DETECT gesture detection.
    XmagicConstant.FeatureName.WHITEN_ONLY_SKIN_AREA Brightening only applies to skin.
    XmagicConstant.FeatureName.SEGMENTATION_SKIN segmentation skin.
    XmagicConstant.FeatureName.SMART_BEAUTY smart beauty(reducing the intensity of beauty and makeup effects for males and babies).
    boolean enable
    "true" indicates enabling a capability, while "false" indicates disabling a capability.
    Note: If it is in downgrade mode, enabling skin segmentation is not allowed.

    Static properties and methods

    API
    Description
    VERSION
    The SDK version number can be obtained through XmagicApi.VERSION (Added in V3.5.0)
    Setting libPath.
    Transfer the content located within the directories Light3DPlugin, LightCore, LightHandPlugin, LightBodyPlugin, LightSegmentPlugin under application assets to your designated directory.
    Copy the AI model files downloaded by the client to the corresponding folders.

    setLibPathAndLoad

    Setting the path for SO and triggering a load. If SO is built into the assets, there is no need to invoke this method. If SO is dynamically downloaded, it must be invoked before authentication and new XmagicApi.
    Passing in null indicates loading the so from the default path. Please ensure that the so is built into the APK package.
    Pass in non-null: such as data/data/package name/files/xmagic_libs, the so will be loaded from this directory.
    static boolean setLibPathAndLoad(String path)

    Parameter

    Parameter
    Meaning
    String path
    so: denotes the path to the library.

    addAiModeFilesFromAssets

    Transfer the content located within the directories Light3DPlugin, LightCore, LightHandPlugin, LightBodyPlugin, LightSegmentPlugin under application assets to your designated directory.
    context applicationcontext.
    resDir serves as the root directory for storing beautification resources. This directory corresponds to the path passed when creating an xmagicApi object.
    Returned values:
    0: Copy successful
    -1: denotes that the context is null
    -2: denotes an IO error
    static int addAiModeFilesFromAssets(Context context, String resDir)

    Parameter

    Parameter
    Meaning
    Context context
    applicationcontext.
    String resDir
    Designated as the root directory for storing beautification resources, this directory corresponds to the path input when creating the xmagicApi object.

    addAiModeFiles

    Copy the AI model files downloaded by the client to the corresponding folders.
    inputResDir is the directory of the successfully downloaded model files.
    resDir serves as the root directory for storing beautification resources. This directory corresponds to the path passed when creating an xmagicApi object.
    Returned values:
    0: denotes success
    -1:inputResDir is not exists
    -2: Signifies an IO error
    static int addAiModeFiles(String inputResDir, String resDir)

    Parameter

    Parameter
    Meaning
    String inputResDir
    The folder containing the successfully downloaded model files.
    String resDir
    Designated as the root directory for storing beautification resources, this directory corresponds to the path input when creating the xmagicApi object.
    
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support