UNPKG

@tencentcloud/roomkit-web-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

91 lines (80 loc) 2.27 kB
import { isElectron, isWeChat } from '../../utils/environment'; import { IRoomService } from '../types'; import { TRTCBeautyStyle } from '../../constants/room'; interface IBasicBeauty { dispose(): void; initBasicBeauty(): Promise<void>; setBasicBeauty( style: TRTCBeautyStyle, beautyLevel: number, whitenessLevel: number, ruddinessLevel: number ): Promise<void>; setTestBasicBeauty( style: TRTCBeautyStyle, beautyLevel: number, whitenessLevel: number, ruddinessLevel: number ): Promise<void>; } export class BasicBeauty implements IBasicBeauty { constructor(service: IRoomService) { this.service = service; if (isElectron || isWeChat) return; this.bindEvent(); } public dispose() { this.service.lifeCycleManager.off('unmount', this.handleUnmount); } public async initBasicBeauty(): Promise<void> { if (!this.basicBeautyPluginReady && this.trtcCloud?.useBeautyStyle) { await this.trtcCloud.useBeautyStyle(); this.basicBeautyPluginReady = true; } } public async setBasicBeauty( style: TRTCBeautyStyle, beautyLevel: number, whitenessLevel: number, ruddinessLevel: number ): Promise<void> { await this.initBasicBeauty(); await this.trtcCloud.setBeautyStyle( style, beautyLevel, whitenessLevel, ruddinessLevel ); } public async setTestBasicBeauty( style: TRTCBeautyStyle, beautyLevel: number, whitenessLevel: number, ruddinessLevel: number ): Promise<void> { await this.initBasicBeauty(); await this.trtcCloud.callExperimentalAPI( JSON.stringify({ api: 'enableTestBeautyStyle', params: { style, beautyLevel, whitenessLevel, ruddinessLevel }, }) ); } private service: IRoomService; private basicBeautyPluginReady = false; private get trtcCloud() { return this.service.roomEngine?.instance?.getTRTCCloud(); } private bindEvent() { this.service.lifeCycleManager.on('unmount', this.handleUnmount); } private handleUnmount = async () => { await this.setBasicBeauty(TRTCBeautyStyle.TRTCBeautyStyleNature, 0, 0, 0); await this.setTestBasicBeauty( TRTCBeautyStyle.TRTCBeautyStyleNature, 0, 0, 0 ); }; }