1. 程式人生 > 其它 >Web視訊通話時怎麼美顏?教你3步輕鬆搞定!

Web視訊通話時怎麼美顏?教你3步輕鬆搞定!

功能簡介

我們在視訊通話、直播等場景中,為使用者呈現出良好的肌膚狀態,打造獨特自然的美顏效果。我們需要使用到美顏功能,通過調整美白、磨皮、銳化以及紅潤的程度,輕鬆實現最佳的視訊效果。

那麼我們如何使用 ZEGO SDK 實現這樣的效果呢?

支援美顏功能的瀏覽器如下表:

瀏覽器 相容版本
Chrome 65 及以上
Firefox 70 及以上
Safari 12 ~14 或 15.2 及以上
Edge 80 及以上
移動端瀏覽器 不支援
微信內嵌網頁 不支援

示例原始碼下載

請參考 下載示例原始碼 獲取原始碼。

相關原始碼請檢視 “src/Examples/Others/EffectsBeauty” 目錄下的檔案。

前提條件

在實現美顏功能之前,請確保:

使用步驟

  1. createStream 獲取到媒體流後,通過 ZegoExpressEngine 例項呼叫 setEffectsBeauty 介面開啟基礎美顏功能,並可以根據需要通過 ZegoEffectsBeautyParam 的 4 個引數設定美顏效果。
  • smoothIntensity:磨皮,在保留臉部細節的基礎上進行磨皮,比如臉上的痣會保留。
  • whitenIntensity:美白,對畫面整體調高亮度來美白臉部。
  • rosyIntensity:紅潤,對畫面整體進行暖色處理。
  • sharpenIntensity:銳化,對畫面整體進行銳化處理,當畫面有些模糊時可以稍微調大銳化使輪廓清晰。

以上四個引數的取值範圍都為 0 ~ 100,取值越大美顏程度越高,預設值為 50。

  • 如果在推流前開啟美顏,需要等待美顏開啟完成後再呼叫 startPublishingStream 介面推流。
  • 美顏效果與對應的 MediaStream 繫結,當呼叫 useVideoDevicereplaceTrack 介面時不會改變 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);

獲取Demo

獲取本文的Demo、開發文件、技術支援。
獲取SDK的商務活動、熱門產品。
註冊即構ZEGO開發者帳號,快速開始。