tencent cloud

Tencent Real-Time Communication

소식 및 공지 사항
제품 업데이트
Tencent Cloud 오디오/비디오 단말 SDK 재생 업그레이드 및 권한 부여 인증 추가
TRTC 월간 구독 패키지 출시 관련 안내
제품 소개
제품 개요
기본 개념
제품 기능
제품 장점
응용 시나리오
성능 데이터
구매 가이드
Billing Overview
무료 시간 안내
Monthly subscription
Pay-as-you-go
TRTC Overdue and Suspension Policy
과금 FAQ
Refund Instructions
신규 사용자 가이드
Demo 체험
Call
개요(TUICallKit)
Activate the Service
Run Demo
빠른 통합(TUICallKit)
오프라인 푸시
Conversational Chat
온클라우드 녹화(TUICallKit)
AI Noise Reduction
UI 사용자 정의
Calls integration to Chat
Additional Features
No UI Integration
Server APIs
Client APIs
Solution
ErrorCode
릴리스 노트
FAQs
라이브 스트리밍
Billing of Video Live Component
Overview
Activating the Service (TUILiveKit)
Demo 실행
No UI Integration
UI Customization
Live Broadcast Monitoring
Video Live Streaming
Voice Chat Room
Advanced Features
Client APIs
Server APIs
Error Codes
Release Notes
FAQs
RTC Engine
Activate Service
SDK 다운로드
API 코드 예시
Usage Guidelines
API 클라이언트 API
고급 기능
RTC RESTFUL API
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
콘솔 가이드
애플리케이션 관리
사용량 통계
모니터링 대시보드
개발 보조
Solution
Real-Time Chorus
FAQs
과금 개요
기능 관련
UserSig 관련
방화벽 제한 처리
설치 패키지 용량 축소 관련 질문
Andriod 및 iOS 관련
Web 관련
Flutter 관련
Electron 관련
TRTCCalling Web 관련
멀티미디어 품질 관련
기타 질문
Protocols and Policies
컴플라이언스 인증
보안 백서
정보 보안에 관한 참고 사항
Service Level Agreement
Apple Privacy Policy: PrivacyInfo.xcprivacy
TRTC 정책
개인 정보 보호 정책
데이터 처리 및 보안 계약
용어집

Beauty Effects (iOS)

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-12-04 15:02:48
BaseBeautyStore is the module in AtomicXCore responsible for managing basic portrait beautification effects. This module enables you to easily add natural beautification features to your live streaming or video calling applications.

Core Features

Skin Smoothing: Configure smoothing intensity (0–9).
Skin Whitening: Configure whitening intensity (0–9).
Rosy Cheeks: Configure rosy intensity (0–9).
Effect Reset: Instantly restore all beautification parameters to default.
State Monitoring: Real-time access to currently applied beautification settings.

Core Concepts

Core Concept
Type
Core Responsibilities and Description
BaseBeautyState
struct
Represents the current state of the basic beautification module.
Contains the currently applied intensity values for smoothing (smoothLevel), whitening (whitenessLevel), and rosy (ruddyLevel).
BaseBeautyStore
class
The core management class for interacting with basic beautification features.
Implemented as a global singleton (shared). Responsible for setting parameters, resetting effects, and synchronizing state across the app.

Implementation

Step 1: Component Integration

Video Live Streaming: Please refer to Quick Start to integrate AtomicXCore and complete the setup of LiveCoreView.
Voice Chat Room: Please refer to Quick Start to integrate AtomicXCore and complete the setup of LiveCoreView.

Step 2: Obtain the Instance and Subscribe to State

Obtain the global singleton instance of BaseBeautyStore and subscribe to receive real-time updates of the current beautification parameter state.

Implementation

1. Obtain Singleton: Use BaseBeautyStore.shared() to access the global instance.
2. Subscribe to State: Subscribe to baseBeautyStore.baseBeautyState to receive real-time updates of BaseBeautyState.

Code Example

import Foundation
import AtomicXCore
import Combine

class BeautyManager {
// 1. Get the singleton instance
private let baseBeautyStore = BaseBeautyStore.shared
private var cancellables = Set<AnyCancellable>()
// Expose beauty status externally
let beautyStatePublisher = CurrentValueSubject<BaseBeautyState, Never>(BaseBeautyState())

init() {
// 2. Subscribe to the state
subscribeToBeautyState()
}
private func subscribeToBeautyState() {
baseBeautyStore.state
.subscribe()
.receive(on: DispatchQueue.main)
.assign(to: \\.value, on: beautyStatePublisher)
.store(in: &cancellables)
}
// ... Subsequent methods
}

Step 3: Set Beautification Parameters

When users adjust a beautification slider or select a preset, call the corresponding API to set the desired intensity.

Implementation

1. Get Intensity Value:
Obtain the intensity value set by the user from the UI control (such as a UISlider).
Note that the SDK interface accepts a parameter range of [0, 9], where 0 means the effect is off, and 9 means the effect is most prominent. You need to map the UI control value (e.g., 0.0 - 1.0 for a UISlider) to the 0 - 9 range.
2. Call API: Use setSmoothLevel(smoothLevel:), setWhitenessLevel(whitenessLevel:), and setRuddyLevel(ruddyLevel:) to set the smoothing, whitening, and rosy intensities.

Code Example

extension BeautyManager {
/// Set the smoothing level (Input range 0.0 ~ 1.0, converted internally to 0 ~ 9)
func updateSmoothLevel(uiLevel: Float) {
// Map UI's 0.0 ~ 1.0 to SDK's 0 ~ 9
let sdkLevel = uiLevel * 9.0
baseBeautyStore.setSmoothLevel(smoothLevel: sdkLevel)
}

/// Set the whitening level (Input range 0.0 ~ 1.0, converted internally to 0 ~ 9)
func updateWhitenessLevel(uiLevel: Float) {
let sdkLevel = uiLevel * 9.0
baseBeautyStore.setWhitenessLevel(whitenessLevel: sdkLevel)
}

/// Set the rosiness level (Input range 0.0 ~ 1.0, converted internally to 0 ~ 9)
func updateRuddyLevel(uiLevel: Float) {
let sdkLevel = uiLevel * 9.0
baseBeautyStore.setRuddyLevel(ruddyLevel: sdkLevel)
}
}

Step 4: Reset Beautification Effects

When users click "Reset" or "Disable Beauty," restore all beautification parameters to their default values (typically 0).

Implementation

Call API: Call the baseBeautyStore.reset() method.

Code Example

extension BeautyManager {
/// Reset all basic beauty effects
func resetBeautyEffects() {
baseBeautyStore.reset()
}
}

Advanced Features

Comparison: Basic vs. Advanced Beautification

AtomicXCore also provides advanced beautification features for more demanding scenarios:
Comparison Item
Basic Beautification (BaseBeautyStore)
Advanced Beautification (TEBeautyKit)
Core Features
Smoothing, Whitening, Rosy
Includes all basic features, plus V-shape face, eye distance adjustment, nose slimming, 3D stickers, filters, makeup, and more
Pricing
Free (included in AtomicXCore license)
Paid (Requires separate license)
Integration
Built-in by default; use BaseBeautyStore.shared() directly
Requires additional integration of the TEBeautyKit component and authentication
Recommended Scenarios
Scenarios with basic beautification needs and rapid implementation requirements
Scenarios requiring advanced beautification, shaping, stickers, filters, and other premium features

Integrating Advanced Beautification

To use advanced beautification features, refer to the Advanced Beauty documentation. After integrating and authenticating TEBeautyKit, use its APIs to control all beautification effects.

API Documentation

For detailed information on all public interfaces, properties, and methods of BaseBeautyStore and related classes, see the official API documentation for the AtomicXCore framework. The relevant stores referenced in this guide are:
Store/Component
Description
API Reference
LiveCoreView
Core view component for displaying and interacting with live video streams. Handles video rendering and view widgets, supports host streaming, audience co-hosting, host connections, and more.
DeviceStore
Controls audio/video devices: microphone (on/off, volume), camera (on/off, switch, quality), screen sharing, and real-time device status monitoring.
BaseBeautyStore
Basic beauty filters: adjust smoothing/whitening/rosiness (0-100), reset beauty status, and synchronize effect parameters.

FAQs

I adjusted the parameters, but there is no effect on the video.

Check the following:
1. Camera Status: Ensure the camera is turned on (e.g., via DeviceStore.shared().openLocalCamera). Beauty effects cannot apply to a black screen or audio-only stream.
2. SDK Conflict: If you have integrated TEBeautyKit, BaseBeautyStore APIs may be overridden. Use the TEBeautyKit APIs instead.
3. Value Range: Verify that you are passing values between 0 and 9. Passing 0 will result in no visible effect.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백