美颜(React Native)

最近更新时间:2026-04-28 15:05:24

我的收藏
BaseBeautyStateAtomicXCore 中负责管理人像基础美颜效果的模块。通过它,您可以轻松为您的直播或通话应用添加自然的美颜效果。

核心功能

磨皮效果调节:设置磨皮强度 (0-9)。
美白效果调节:设置美白强度 (0-9)。
红润效果调节:设置红润强度 (0-9)。
效果重置:一键恢复所有美颜参数至默认值。
状态监听:实时获取当前生效的美颜参数。

实现步骤

步骤1:组件集成

请参考 开播与观看 集成 AtomicXCore,并完成 LiveCoreView 的接入。

步骤2:获取实例并监听状态

获取 BaseBeautyState 的全局单例,并监听对应数据来实时获取当前的美颜参数状态。

实现方式

1. 获取单例:通过 useBaseBeautyState 来获取当前实例。
2. 监听状态:通过监听 BaseBeautyState 中的响应式数据来驱动 UI 的更新。

代码示例

import { useEffect } from 'react';
import { useBaseBeautyState } from 'react-native-tuikit-atomic-x/lib/module/atomic-x/state/BaseBeautyState';

// 1. 获取 BaseBeautyState 的实例
const { smoothLevel, whitenessLevel, ruddyLevel } = useBaseBeautyState();

// 2. 监听 smoothLevel、whitenessLevel、ruddyLevel 的实时变更,用于驱动 UI 变更
useEffect(() => {
console.log('smoothLevel:', smoothLevel);
}, [smoothLevel]);

useEffect(() => {
console.log('whitenessLevel:', whitenessLevel);
}, [whitenessLevel]);

useEffect(() => {
console.log('ruddyLevel:', ruddyLevel);
}, [ruddyLevel]);

步骤3:设置美颜参数

当用户拖动美颜滑块或点击预设按钮时,调用相应的接口设置美颜强度。

实现方式

1. 获取强度值:从 UI 控件获取用户设定的强度值。请注意,SDK 接口接收的参数范围是 [0, 9],其中 0 表示关闭效果,9 表示效果最明显。您需要将 UI 控件的值映射到 0 - 9 的范围。
2. 调用接口:分别调用 setSmoothLevelsetWhitenessLevelsetRuddyLevel 来设置磨皮、美白、红润的强度。

代码示例

import { useBaseBeautyState } from 'react-native-tuikit-atomic-x/lib/module/atomic-x/state/BaseBeautyState';

// 获取 BaseBeautyState 的实例
const { setSmoothLevel, setWhitenessLevel, setRuddyLevel } = useBaseBeautyState();

// 设置磨皮(参数范围 0-9)
const handleSetSmooth = (smoothLevel) => {
setSmoothLevel({ smoothLevel });
};

// 设置美白(参数范围 0-9)
const handleSetWhiteness = (whitenessLevel) => {
setWhitenessLevel({ whitenessLevel });
};

// 设置红润(参数范围 0-9)
const handleSetRuddy = (ruddyLevel) => {
setRuddyLevel({ ruddyLevel });
};

步骤4:重置美颜效果

当用户点击“重置”或“关闭美颜”按钮时,将所有美颜参数恢复到默认值(通常是0)。

实现方式

调用接口:分别调用 setSmoothLevelsetWhitenessLevelsetRuddyLevel 并将参数设置为 0。

代码示例

import { useBaseBeautyState } from 'react-native-tuikit-atomic-x/lib/module/atomic-x/state/BaseBeautyState';

// 获取 BaseBeautyState 的实例
const { setSmoothLevel, setWhitenessLevel, setRuddyLevel } = useBaseBeautyState();

// 重置美颜效果
const handleReset = () => {
setSmoothLevel({ smoothLevel: 0 });
setWhitenessLevel({ whitenessLevel: 0 });
setRuddyLevel({ ruddyLevel: 0 });
};

API 文档

关于 BaseBeautyState 及其相关类的所有公开接口、属性和方法的详细信息,请参阅 AtomicXCore 框架的官方 API 文档。本指南使用到的相关 Store 如下:
State
功能描述
API 文档
BaseBeautyState
基础美颜:调节磨皮 / 美白 / 红润(0-9 级),重置美颜状态,同步效果参数。
DeviceState
音视频设备控制:麦克风(开关 / 音量)、摄像头(开关 / 切换 / 画质)、屏幕共享,设备状态实时监听。

常见问题

我设置了美颜参数,为什么没有效果?

请检查以下几点:
1. 摄像头是否开启:必须先成功打开摄像头,美颜效果才能应用到视频流上。
2. 参数范围:请确认您传入的强度值在有效的范围内 (09 之间的 float 值)。