Skip to content

Commit

Permalink
[beauty] update after review
Browse files Browse the repository at this point in the history
  • Loading branch information
kelzr committed Sep 19, 2023
1 parent ff80b13 commit a0469c7
Show file tree
Hide file tree
Showing 15 changed files with 162 additions and 148 deletions.
12 changes: 6 additions & 6 deletions markdown/beauty/其他/beauty_overview.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
实时音视频互动中,美颜功能可以让用户展现更好的精神面貌,并提供有趣的贴纸特效。声网与第三方厂商合作,开发了声网场景化 API,使开发者能够方便地集成美颜功能。声网场景化 API,也称为 Beauty API,封装了声网 RTC SDK 和第三方美颜 SDK 的 API 调用逻辑,开发者只需几行代码就能在声网的实时音视频互动中使用第三方提供的丰富美颜功能。
实时音视频互动中,美颜功能可以让用户展现更好的精神面貌,并提供有趣的贴纸特效。声网与第三方厂商合作,开发了声网美颜场景化 API,使开发者能够方便地集成美颜功能。声网美颜场景化 API,也称为 Beauty API,封装了声网 RTC SDK 和第三方美颜 SDK 的 API 调用逻辑,开发者只需几行代码就能在声网的实时音视频互动中使用第三方提供的丰富美颜功能。

## 获取资源

声网目前已与商汤美颜、字节火山美颜、相芯美颜合作,提供美颜场景化 API,开发者可以根据自己的需求选择不同厂商进行集成。集成过程中,你可以参考如下资源:

|美颜厂商 | 场景化美颜版本号 |GitHub 示例项目 | 参考文档 |
|美颜厂商 | 美颜场景化 API 版本号 |GitHub 示例项目 | 参考文档 |
|-----|-----------|---------------|------------|
| 商汤 | 1.0.1.1| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_sensetime_android.md)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_sensetime_ios.md)</li><li>[实现美颜 (Android)](./beauty_integration_sensetime_android.md)</li><li>[实现美颜 (iOS)](./beauty_integration_sensetime_android.md)</li> |
| 字节火山 |1.0.2 或之后| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_bytedance_android.md)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_bytedance_ios.md)</li><li>[实现美颜 (Android)](./beauty_integration_bytedance_android.md)</li><li>[实现美颜 (iOS)](./beauty_integration_bytedance_android.md)</li> |
| 相芯 |1.0.2 或之后| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_faceunity_android.md)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_faceunity_ios.md)</li><li>[实现美颜 (Android)](./beauty_integration_faceunity_android.md)</li><li>[实现美颜 (iOS)](./beauty_integration_faceunity_android.md)</li> |
| 商汤 | 1.0.1.1| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_sensetime_android)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_sensetime_ios)</li><li>[实现美颜 (Android)](./beauty_integration_sensetime_android)</li><li>[实现美颜 (iOS)](./beauty_integration_sensetime_android)</li> |
| 字节火山 |1.0.2 或之后| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_bytedance_android)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_bytedance_ios)</li><li>[实现美颜 (Android)](./beauty_integration_bytedance_android)</li><li>[实现美颜 (iOS)](./beauty_integration_bytedance_android)</li> |
| 相芯 |1.0.2 或之后| <li>[Android 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/Android)</li><li>[iOS 项目](https://github.com/AgoraIO-Community/BeautyAPI/tree/main/iOS)</li> | <li>[跑通项目 (Android)](./beauty_run_github_project_faceunity_android)</li><li>[跑通项目 (iOS)](./beauty_run_github_project_faceunity_ios)</li><li>[实现美颜 (Android)](./beauty_integration_faceunity_android)</li><li>[实现美颜 (iOS)](./beauty_integration_faceunity_android)</li> |


## 版本说明
Expand All @@ -32,6 +32,6 @@

### 美颜 SDK

Beauty API 中封装的声网 RTC SDK 和第三方厂商美颜 SDK 版本请参考 [README](https://github.com/AgoraIO-Community/BeautyAPI/blob/main/README.zh.md)
Beauty API 中封装的声网 RTC SDK 和第三方厂商美颜 SDK 版本请参考 [README](https://github.com/AgoraIO-Community/BeautyAPI/blob/main/README.zh)

![](https://web-cdn.agora.io/docs-files/1694425497610)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
本文介绍如何通过声网场景化 API 集成商汤美颜到实时音视频中。
本文介绍如何通过声网美颜场景化 API 集成商汤美颜到实时音视频中。

## 示例项目

Expand All @@ -16,7 +16,7 @@
- 已联系商汤技术获取最新的美颜 SDK、美颜资源、美颜证书
- 已在项目中添加 Kotlin 插件

## 创建声网项目
### 创建声网项目

~f42d44d0-2ac7-11ee-b391-19a59cc2656e~

Expand Down Expand Up @@ -77,12 +77,12 @@
| SenseME.lic | app/src/main/assets/beauty_sensetime/license/SenseME.lic |


4. 将声网场景化 API 集成到你的项目中。添加 [Android/lib_sensetime/src/main/java/io/agora/beautyapi/sensetime](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/Android/lib_sensetime/src/main/java/io/agora/beautyapi/sensetime) 目录下的文件到项目中,具体文件如下:
4. 将声网美颜场景化 API 集成到你的项目中。添加 [Android/lib_sensetime/src/main/java/io/agora/beautyapi/sensetime](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/Android/lib_sensetime/src/main/java/io/agora/beautyapi/sensetime) 目录下的文件到项目中对应的目录下,具体文件如下:
- `utils` 文件夹
- `SenseTimeBeautyAPI.kt` 文件
- `SenseTimeBeautyAPIImpl.kt` 文件

为方便后续代码升级,请不要修改你添加的这些文件的名称。
<div class="alert note">为方便后续代码升级,请不要修改你添加的这些文件的名称。</div>

5. 添加网络及设备权限。

Expand Down Expand Up @@ -113,7 +113,7 @@

## 实现美颜

如下[时序图](#api-时序图)展示如何在直播间内实现美颜功能。声网 RTC SDK 承担实时音视频的业务,商汤美颜 SDK 提供美颜功能,声网 Beauty API 封装了两个 SDK 中的 API 调用逻辑以简化你需要实现的代码逻辑。通过 Beauty API,你可以实现基础美颜功能,但是如果你需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。
本节展示如何在直播间内实现美颜功能,参考 [API 时序图](#api-时序图)可查看总览。声网 RTC SDK 承担实时音视频的业务,商汤美颜 SDK 提供美颜功能,声网 Beauty API 封装了两个 SDK 中的 API 调用逻辑以简化你需要实现的代码逻辑。通过 Beauty API,你可以实现基础美颜功能,但是如果你还需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。

### 1. 初始化 RtcEngine

Expand Down Expand Up @@ -149,7 +149,7 @@ private val mSTRenderKit by lazy {

### 3. 初始化 Beauty API

调用 `createSenseTimeBeautyAPI` 创建 Beauty API 对象。Beauty API 对象是基于 `STRenderKit` 对象封装。
调用 `createSenseTimeBeautyAPI` 创建 Beauty API 对象。Beauty API 对象是声网基于 `STRenderKit` 对象封装。

```kotlin
// 创建 Beauty API 对象
Expand All @@ -166,6 +166,7 @@ private val mSenseTimeApi by lazy {
- 如果你使用声网模块采集视频,请传入 `CaptureMode.Agora`
- 如果自定义采集视频,请传入 `CaptureMode.Custom`
- `statsEnable`:是否开启美颜统计数据回调。`true` 代表开启,`false` 代表不开启。开启后,会有周期性的 `onBeautyStats` 回调事件。
- `statsDuration`:美颜统计数据回调的周期。单位为毫秒。
- `eventCallback`:你希望监听的回调事件。

```kotlin
Expand All @@ -183,6 +184,8 @@ mSenseTimeApi.initialize(
// 是否开启美颜统计数据
// 开启后,会有周期性的 onBeautyStats 回调事件
statsEnable = true,
// 设置美颜统计数据的统计区间为 1000 毫秒(默认)
statsDuration = 1000,
// 用于监听 Beauty API 的回调事件
eventCallback = object: IEventCallback{
override fun onBeautyStats(stats: BeautyStats) {
Expand Down Expand Up @@ -272,7 +275,7 @@ mRtcEngine.registerVideoFrameObserver(object : IVideoFrameObserver {

调用 `RtcEngine` 类的 `joinChannel` 加入频道,同时传入如下参数:

- `token`:用于鉴权的动态密钥。如果在[创建声网项目](#创建声网项目)时启用**调试模式**,那么 token 传空。如果启用**安全模式**,那么你先参考[使用 Token 鉴权](https://docportal.shengwang.cn/cn/live-streaming-premium-4.x/token_server_android_ng?platform=Android)在你的业务服务端生成 Token,然后在这个参数中传入
- `token`:用于鉴权的动态密钥。如果在[创建声网项目](#创建声网项目)时启用**调试模式**,那么 `token` 参数传空。如果启用**安全模式**,那么你先参考[使用 Token 鉴权](https://docportal.shengwang.cn/cn/live-streaming-premium-4.x/token_server_android_ng?platform=Android)在你的业务服务端生成 Token,然后将生成的 Token 传入该参数
- `channelId`:频道名。
- `options`:频道媒体设置选项。

Expand Down Expand Up @@ -303,20 +306,19 @@ mRtcEngine.joinChannel(null, mChannelName, 0, ChannelMediaOptions().apply {
- `DEFAULT`:默认且推荐的美颜参数。
- `CUSTOM`:开发者自定义的美颜参数。

不同的美颜参数会带来不同的美颜效果。如果你没有特殊偏好,推荐你使用 `DEFAULT`
不同的美颜参数会带来不同的美颜效果。如果你没有特殊美颜要求,推荐你使用 `DEFAULT`

```kotlin
mSenseTimeApi.setBeautyPreset(if (enable) BeautyPreset.DEFAULT else BeautyPreset.CUSTOM)
```

<div class="alert note">通过 Beauty API 的 <code>setBeautyPreset</code> 方法,你可以实现基础美颜功能。但是如果你需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。</div>
<div class="alert note">通过 Beauty API 的 <code>setBeautyPreset</code> 方法,你可以实现基础美颜功能。但是如果你还需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。</div>

### 8. 离开频道

调用 `RtcEngine` 类的 `leaveChannel` 离开频道。

```kotlin
// 离开 RTC 频道
mRtcEngine.leaveChannel()
```

Expand Down
38 changes: 18 additions & 20 deletions markdown/beauty/商汤/1.0.1.1/beauty_integration_sensetime_ios.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
本文介绍如何通过声网场景化 API 集成商汤美颜到实时音视频中。
本文介绍如何通过声网美颜场景化 API 集成商汤美颜到实时音视频中。

## 示例项目

Expand All @@ -17,7 +17,7 @@
- 已联系商汤技术获取最新的美颜 SDK、美颜资源、美颜证书


## 创建声网项目
### 创建声网项目

~f42d44d0-2ac7-11ee-b391-19a59cc2656e~

Expand Down Expand Up @@ -53,7 +53,7 @@
| SenseMe/st_mobil_sdk | iOS/SenseLib/st_mobile_sdk |
|SenseMe/st_mobil_sdk/license/SENSEME.lic | iOS/SenseLib/SENSEME.lic |

6. 将声网场景化 API 集成到你的项目中。添加 [iOS/BeautyAPi/BeautyAPI](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/iOS/BeautyAPi/BeautyAPI) 目录下的文件到项目中,具体文件如下:
6. 将声网美颜场景化 API 集成到你的项目中。添加 [iOS/BeautyAPi/BeautyAPI](https://github.com/AgoraIO-Community/BeautyAPI/tree/1.0.1.1/iOS/BeautyAPi/BeautyAPI) 目录下的文件到项目中对应的目录下,具体文件如下:

- `Render/SenseRender` 文件夹
- `SenseRender` 文件夹
Expand All @@ -62,9 +62,9 @@
- `BeautyConfig.h` 文件
- `BeautyConfig.m` 文件

为方便后续代码升级,请不要修改你添加的这些文件的名称。
<div class="alert note">为方便后续代码升级,请不要修改你添加的这些文件的名称。</div>

7. 将声网 RTC SDK 和商汤美颜依赖库集成到你的项目。开始前请确保你已安装 CocoaPods,如尚未安装 CocoaPods,参考 [Getting Started with CocoaPods](https://guides.cocoapods.org/using/getting-started.html#getting-started) 安装说明。
7. 将声网 RTC SDK 和商汤美颜依赖库集成到你的项目。

1. 在终端里进入项目根目录,并运行 `pod init` 命令。项目文件夹下会生成一个 `Podfile` 文本文件。
2. 打开 `Podfile` 文件,修改文件为如下内容。注意将 `Your App` 替换为你的 Target 名称。
Expand All @@ -82,20 +82,20 @@
```


8. 在终端内运行 <code>pod install</code> 命令安装声网 RTC SDK 和商汤美颜依赖。成功安装后,Terminal 中会显示 <code>Pod installation complete!</code>
8. 在终端内运行 <code>pod install</code> 命令安装声网 RTC SDK 和商汤美颜依赖。

9. 成功安装后,项目文件夹下会生成一个后缀为 <code>.xcworkspace</code> 的文件,通过 Xcode 打开该文件进行后续操作。
9. 成功安装后,Terminal 中会显示 <code>Pod installation complete!</code>项目文件夹下会生成一个后缀为 <code>.xcworkspace</code> 的文件,通过 Xcode 打开该文件进行后续操作。

## 实现美颜

如下[时序图](#api-时序图)展示如何在直播间内实现美颜功能。声网 RTC SDK 承担实时音视频的业务,商汤美颜 SDK 提供美颜功能,声网 Beauty API 封装了两个 SDK 中的 API 调用逻辑以简化你需要实现的代码逻辑。通过 Beauty API,你可以实现基础美颜功能,但是如果你需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。
本节展示如何在直播间内实现美颜功能,参考 [API 时序图](#api-时序图)可查看总览。声网 RTC SDK 承担实时音视频的业务,商汤美颜 SDK 提供美颜功能,声网 Beauty API 封装了两个 SDK 中的 API 调用逻辑以简化你需要实现的代码逻辑。通过 Beauty API,你可以实现基础美颜功能,但是如果你还需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。

### 1. 初始化 AgoraRtcEngineKit

调用声网 RTC SDK 中的 `sharedEngineWithConfig` 创建并初始化 `AgoraRtcEngineKit` 对象。同时调用 `enableVideo` 开启声网 SDK 的视频模块。

```swift
// 初始化声网 RtcEngine
// 初始化 AgoraRtcEngineKit
private lazy var rtcEngine: AgoraRtcEngineKit = {
let config = AgoraRtcEngineConfig()
// 传入你从控制台获取的声网项目的 APP ID
Expand All @@ -116,7 +116,7 @@ private lazy var rtcEngine: AgoraRtcEngineKit = {

### 2. 初始化美颜和 Beauty API

创建 SenseBeautyRender 和 Beauty API 对象。Beauty API 对象是基于 `SenseBeautyRender` 对象封装。
创建 SenseBeautyRender 和 Beauty API 对象。Beauty API 对象是声网基于 `SenseBeautyRender` 对象封装。


```swift
Expand Down Expand Up @@ -171,7 +171,7 @@ if result != 0 {
调用 Beauty API 的 `enable` 方法开启美颜。
```kotlin
```swift
beautyAPI.enable(true)
```
Expand All @@ -184,7 +184,6 @@ beautyAPI.enable(true)
使用声网模块采集视频视频时,调用 Beauty API 的 `setupLocalVideo` 开启本地视图。
```swift
// 设置本地视图
beautyAPI.setupLocalVideo(localView, renderMode: .hidden)
```
Expand Down Expand Up @@ -235,7 +234,7 @@ extension BeautyViewController: AgoraVideoFrameDelegate {
调用 `AgoraRtcEngineKit` 类的 `joinChannelByToken` 加入频道,同时传入如下参数:
- `token`:用于鉴权的动态密钥。如果在[创建声网项目](#创建声网项目)时启用**调试模式**,那么 token 传空。如果启用**安全模式**,那么你先参考[使用 Token 鉴权](https://docportal.shengwang.cn/cn/live-streaming-premium-4.x/token_server_android_ng?platform=Android)在你的业务服务端生成 Token,然后在这个参数中传入
- `token`:用于鉴权的动态密钥。如果在[创建声网项目](#创建声网项目)时启用**调试模式**,那么 将 `token` 参数传空。如果启用**安全模式**,那么你先参考[使用 Token 鉴权](https://docportal.shengwang.cn/cn/live-streaming-premium-4.x/token_server_android_ng?platform=Android)在你的业务服务端生成 Token,然后将生成的 Token 传入该参数
- `channelId`:频道名。
- `mediaOptions`:频道媒体设置选项。
Expand Down Expand Up @@ -274,20 +273,19 @@ if result != 0 {
- `BeautyPresetModeDefault`:默认且推荐的美颜参数。
- `BeautyPresetModeCustom`:开发者自定义的美颜参数。
不同的美颜参数会带来不同的美颜效果。如果你没有特殊偏好,推荐你使用 `BeautyPresetModeDefault`
不同的美颜参数会带来不同的美颜效果。如果你没有特殊美颜要求,推荐你使用 `BeautyPresetModeDefault`
```kotlin
```swift
beautyAPI.setBeautyPreset(.default)
```
<div class="alert note">通过 Beauty API 的 <code>setBeautyPreset</code> 方法,你可以实现基础美颜功能。但是如果你需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。</div>
<div class="alert note">通过 Beauty API 的 <code>setBeautyPreset</code> 方法,你可以实现基础美颜功能。但是如果你还需要更丰富的美颜效果,例如贴纸、美妆风格,你可以直接调用美颜 SDK 中的 API。</div>
### 7. 离开频道
调用 `AgoraRtcEngineKit` 类的 `leaveChannel` 离开频道。
```kotlin
// 离开 RTC 频道
```swift
rtcEngine.leaveChannel()
```
Expand All @@ -296,15 +294,15 @@ rtcEngine.leaveChannel()
调用 Beauty API 的 `destory` 销毁 Beauty API。
```kotlin
```swift
beautyAPI.destory()
```
<div class="alert note">Beauty API 1.0.1.1 版中 <code>destory</code>方法的命名存在笔误,会在 1.0.2 版本修正。</div>
调用 `AgoraRtcEngineKit``destroy` 销毁 `AgoraRtcEngineKit`
```kotlin
```swift
AgoraRtcEngineKit.destroy()
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ AGORA_APP_ID = "YOUR_APP_ID"

2. 用 Android Studio 打开 `BeautyAPI/Android` 文件夹。

3. 在 Android Studio 中,点击 **Sync Project with Gradle Files** 按钮,以让项目与 Gradle 文件同步。
3. 在 Android Studio 中,点击 **Sync Project with Gradle Files** 按钮,让项目与 Gradle 文件同步。

4. 待同步成功后,点击 `Run 'app'`。片刻后,美颜应用便会安装到你的 Android 设备上。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ git clone [email protected]:AgoraIO-Usecase/agora-ent-scenarios.git

1. 连接上 iOS 设备后,点击 `BeautyAPi.xcodeproj` 文件以通过 Xcode 打开项目,并在 **iOS Device** 选项中勾选上你的 iOS 设备

2. 在项目 **TARGETS** 下的 **Signing & Capabilities** 界面勾选 **Automatically manage signing**,配置你的苹果开发者账号和 **Bundle Identifier**。Bundle ID 用于在设备上唯一标识应用程序在开发应用时,你需要设置 Bundle ID在此处设置的 Bundle ID 需要与你申请商汤美颜 SDK 时提供的 Bundle ID 一致
2. 在项目 **TARGETS** 下的 **Signing & Capabilities** 界面勾选 **Automatically manage signing**,配置你的苹果开发者账号和 **Bundle Identifier**。Bundle ID 是设备上应用程序的唯一标识在开发应用时,你需要设置 Bundle ID在此处设置的 Bundle ID 需要与你申请商汤美颜 SDK 时提供的 Bundle ID 一致

3. 点击 <img src="https://web-cdn.agora.io/docs-files/1639710560035" width="25"/> 开始编译

Expand Down
Loading

0 comments on commit a0469c7

Please sign in to comment.