需要添加直播接口

This commit is contained in:
cbb
2026-01-12 17:52:15 +08:00
parent 83fec2617c
commit 13af9eb303
281 changed files with 313157 additions and 104 deletions

View File

@@ -0,0 +1,173 @@
/**
* @module BaseBeautyState
* @module_description
* 基础美颜管理模块
* 核心功能:提供磨皮、美白、红润等基础美颜效果调节,支持实时美颜参数调整。
* 技术特点:支持实时美颜处理、参数平滑调节、性能优化等高级技术。
* 业务价值:为直播平台提供基础的美颜能力,提升用户形象和直播质量。
* 应用场景:美颜直播、形象优化、美颜调节、直播美化等需要美颜功能的场景。
*/
import { ref } from "vue";
import { SetSmoothLevelOptions, SetWhitenessLevelOptions, SetRuddyLevelOptions } from "@/uni_modules/tuikit-atomic-x";
import { getRTCRoomEngineManager } from "./rtcRoomEngine";
import { callUTSFunction, safeJsonParse } from "../utils/utsUtils";
/**
* 磨皮级别 取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @type {Ref<number>}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { smoothLevel } = useBaseBeautyState('your_live_id');
*
* // 监听磨皮级别变化
* watch(smoothLevel, (newLevel) => {
* console.log('磨皮级别:', newLevel);
* });
*
* // 获取当前磨皮级别
* const level = smoothLevel.value;
* console.log('当前磨皮级别:', level);
*/
const smoothLevel = ref<number>(0);
/**
* 美白级别 取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @type {Ref<number>}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { whitenessLevel } = useBaseBeautyState('your_live_id');
*
* // 监听美白级别变化
* watch(whitenessLevel, (newLevel) => {
* console.log('美白级别:', newLevel);
* });
*
* // 获取当前美白级别
* const level = whitenessLevel.value;
* console.log('当前美白级别:', level);
*/
const whitenessLevel = ref<number>(0);
/**
* 红润级别 取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @type {Ref<number>}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { ruddyLevel } = useBaseBeautyState('your_live_id');
*
* // 监听红润级别变化
* watch(ruddyLevel, (newLevel) => {
* console.log('红润级别:', newLevel);
* });
*
* // 获取当前红润级别
* const level = ruddyLevel.value;
* console.log('当前红润级别:', level);
*/
const ruddyLevel = ref<number>(0);
const realUiValues = ref({
whiteness: 0,
smooth: 0,
ruddy: 0
});
/**
* 设置磨皮级别
* @param {SetSmoothLevelOptions} params - 磨皮参数,取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @returns {void}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { setSmoothLevel } = useBaseBeautyState('your_live_id');
* setSmoothLevel({ smoothLevel: 5 });
*/
function setSmoothLevel(params: SetSmoothLevelOptions): void {
callUTSFunction("setSmoothLevel", params);
}
/**
* 设置美白级别
* @param {SetWhitenessLevelOptions} params - 美白参数,取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @returns {void}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { setWhitenessLevel } = useBaseBeautyState('your_live_id');
* setWhitenessLevel({ whitenessLevel: 6 });
*/
function setWhitenessLevel(params: SetWhitenessLevelOptions): void {
callUTSFunction("setWhitenessLevel", params);
}
/**
* 设置红润级别
* @param {SetRuddyLevelOptions} params - 红润参数,取值范围[0,9]: 0 表示关闭9 表示效果最明显
* @returns {void}
* @memberof module:BaseBeautyState
* @example
* import { useBaseBeautyState } from '@/uni_modules/tuikit-atomic-x/state/BaseBeautyState';
* const { setRuddyLevel } = useBaseBeautyState('your_live_id');
* setRuddyLevel({ ruddyLevel: 4 });
*/
function setRuddyLevel(params: SetRuddyLevelOptions): void {
callUTSFunction("setRuddyLevel", params);
}
function setRealUiValue(type: 'whiteness' | 'smooth' | 'ruddy', value: number): void {
realUiValues.value[type] = value;
}
function getRealUiValue(type: 'whiteness' | 'smooth' | 'ruddy'): number {
return realUiValues.value[type];
}
function resetRealUiValues(): void {
realUiValues.value.whiteness = 0;
realUiValues.value.smooth = 0;
realUiValues.value.ruddy = 0;
}
const onBeautyStoreChanged = (eventName: string, res: string): void => {
try {
if (eventName === "smoothLevel") {
const data = safeJsonParse<number>(res, 0);
smoothLevel.value = data;
} else if (eventName === "whitenessLevel") {
const data = safeJsonParse<number>(res, 0);
whitenessLevel.value = data;
} else if (eventName === "ruddyLevel") {
const data = safeJsonParse<number>(res, 0);
ruddyLevel.value = data;
}
} catch (error) {
console.error("onBeautyStoreChanged error:", error);
}
};
function bindEvent(liveID: string): void {
getRTCRoomEngineManager().on("beautyStoreChanged", onBeautyStoreChanged, liveID);
}
export function useBaseBeautyState(liveID: string) {
bindEvent(liveID);
return {
smoothLevel, // 磨皮级别状态
whitenessLevel, // 美白级别状态
ruddyLevel, // 红润级别状态
setSmoothLevel, // 设置磨皮级别方法
setWhitenessLevel, // 设置美白级别方法
setRuddyLevel, // 设置红润级别方法
realUiValues,
setRealUiValue,
getRealUiValue,
resetRealUiValues,
};
}
export default useBaseBeautyState;