Web視訊通話時怎麼美顏?教你3步輕鬆搞定!
阿新 • • 發佈:2022-05-27
功能簡介
我們在視訊通話、直播等場景中,為使用者呈現出良好的肌膚狀態,打造獨特自然的美顏效果。我們需要使用到美顏功能,通過調整美白、磨皮、銳化以及紅潤的程度,輕鬆實現最佳的視訊效果。
那麼我們如何使用 ZEGO SDK 實現這樣的效果呢?
支援美顏功能的瀏覽器如下表:
瀏覽器 | 相容版本 |
---|---|
Chrome | 65 及以上 |
Firefox | 70 及以上 |
Safari | 12 ~14 或 15.2 及以上 |
Edge | 80 及以上 |
移動端瀏覽器 | 不支援 |
微信內嵌網頁 | 不支援 |
示例原始碼下載
請參考 下載示例原始碼 獲取原始碼。
相關原始碼請檢視 “src/Examples/Others/EffectsBeauty” 目錄下的檔案。
前提條件
在實現美顏功能之前,請確保:
- 已在專案中整合 ZEGO Express SDK,實現基本的實時音視訊功能,詳情請參考 快速開始 - 整合 和 快速開始 - 實現流程。
- 已在 ZEGO 控制檯 建立專案,並申請有效的 AppID,詳情請參考 控制檯 - 專案管理 中的“專案資訊”。
使用步驟
- 在
createStream
獲取到媒體流後,通過 ZegoExpressEngine 例項呼叫setEffectsBeauty
介面開啟基礎美顏功能,並可以根據需要通過ZegoEffectsBeautyParam
的 4 個引數設定美顏效果。
- smoothIntensity:磨皮,在保留臉部細節的基礎上進行磨皮,比如臉上的痣會保留。
- whitenIntensity:美白,對畫面整體調高亮度來美白臉部。
- rosyIntensity:紅潤,對畫面整體進行暖色處理。
- sharpenIntensity:銳化,對畫面整體進行銳化處理,當畫面有些模糊時可以稍微調大銳化使輪廓清晰。
以上四個引數的取值範圍都為 0 ~ 100,取值越大美顏程度越高,預設值為 50。
- 如果在推流前開啟美顏,需要等待美顏開啟完成後再呼叫
startPublishingStream
介面推流。 - 美顏效果與對應的 MediaStream 繫結,當呼叫
useVideoDevice
、replaceTrack
介面時不會改變 MediaStream 的美顏效果。 - 美顏處理佔用資源並消耗效能,當不需要使用美顏時請及時呼叫
zg.setEffectsBeauty(localStream,false)
- 當呼叫
destroyStream
銷燬流的同時 SDK 會關閉美顏效果,其他情況 SDK 不會自動關閉美顏,需要自行呼叫zg.setEffectsBeauty(localStream,false)
關閉。
// 建立流,zg 為 ZegoExpressEngine 例項物件。
const localStream = await zg.createStream();
const enable = true;
// 開啟美顏
// setEffectsBeauty 是 Promise 非同步方法,非同步函式執行完美顏才完成開啟。
await zg.setEffectsBeauty(
localStream,
enable,
{
sharpenIntensity: 50,
whitenIntensity: 50,
rosyIntensity: 50,
smoothIntensity: 50
}
)
// 開始推流
// 如果是推流前開啟美顏,需要等待美顏開啟完成才能進行推流。
zg.startPublishingStream("stream1", localStream);
// 關閉美顏
await zg.setEffectsBeauty(localStream, false);