BaseBeautyState 是 AtomicXCore 中负责管理人像基础美颜效果的模块。通过它,您可以轻松为您的直播或通话应用添加自然的美颜效果。核心功能
磨皮效果调节:设置磨皮强度 (0-9)。
美白效果调节:设置美白强度 (0-9)。
红润效果调节:设置红润强度 (0-9)。
效果重置:一键恢复所有美颜参数至默认值。
状态监听:实时获取当前生效的美颜参数。
实现步骤
步骤1:组件集成
步骤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. 调用接口:分别调用
setSmoothLevel、setWhitenessLevel、setRuddyLevel 来设置磨皮、美白、红润的强度。代码示例
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)。
实现方式
调用接口:分别调用
setSmoothLevel、setWhitenessLevel、setRuddyLevel 并将参数设置为 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 文档
常见问题
我设置了美颜参数,为什么没有效果?
请检查以下几点:
1. 摄像头是否开启:必须先成功打开摄像头,美颜效果才能应用到视频流上。
2. 参数范围:请确认您传入的强度值在有效的范围内 (
0 到 9 之间的 float 值)。