直播推流美颜

最近更新时间:2024-05-10 18:19:51

我的收藏
本文档指导您在 uniapp 项目中接入 webar 直播推流美颜,原生微信项目请参见 微信小程序端接入

准备工作

1. 微信公众平台 注册并登录小程序。
2. 微信公众平台 添加小程序插件:视立方 WEBAR
3. 符合接入要求,申请插件并申请试用视立方 WEBAR,详见 腾讯云视立方控制台

接入配置

1. 使用组件前需在 uniapp 工程的manifest.json中声明插件:
{
"mp-weixin": {
"plugins": {
"webarPlugin": {
"version": "1.0.1",
"provider": "wx04445cff065100ed"
}
}
}
}
2. 在 uniapp 项目根目录安装 npm 包: tencentcloud-webar-wx
npm install tencentcloud-webar-wx

使用 WebArPusher 组件接入美颜

设置美颜、滤镜、美妆、贴纸

WebArPusher 组件使用微信组件 live-pusher 进行封装,适用于直播推流场景下的美颜特效处理,美颜特效相关参数请参见 组件美颜特效属性说明
1. 在引入组件的页面的.vue文件中使用组件。
WebArPusher 会通过 created 事件返回 WebarContext,详情请参见 API 文档
<template>
<view>
<WebArPusher
enableVideoCustomRender
autopush
:url="pushUrl"
:licenseKey="licenseKey"
:appId="appId"
:authFunc="authFunc"
:plugin3d="plugin3d"
@created="onArCreated"
my-style="width: 100vw; height: 100vh"
class="webar"
/>
</view>
</template>

<script>
import WebArPusher from "tencentcloud-webar-wx/WebArPusher/WebArPusher.vue";
export default {
components: {
WebArPusher,// 此处A需大写
},
methods: {
// 此事件会返回 webarContext 实例,通过该实例调用 webar sdk的美颜方法。
onArCreated(sdk) {
const webarContext = sdk.detail || sdk; // uniapp 下事件有可能有detail也有可能没有
// 设置美颜
webarContext.setBeautify({
whiten: 0.5,
dermabrasion: 0.6,
});
// 设置滤镜
webarContext.setFilter(id, 1);
// 设置美妆、特效、贴纸
webarContext.setEffect([{ id, intensity: 1 }]);
},
},
};
</script>

设置虚拟背景

1. 在引入组件的页面的.vue文件中使用组件。
<template>
<view>
<WebArPusher
custom-effect
autopush
:url="pushUrl"
:licenseKey="licenseKey"
:appId="appId"
:authFunc="authFunc"
:plugin3d="plugin3d"
:background="backgroundUrl"
@created="onArCreated"
my-style="width: 100vw; height: 100vh"
class="webar"
/>
</view>
</template>
注意
1. WebArPusher 分为 美颜特效 和 虚拟背景,开启 enableVideoCustomRender 即为 美颜特效 模式,开启 custom-effect 即为 虚拟背景,两者不可同时使用。
2. WebArPusher 美颜特效模式仅支持 云直播接入,trtc 暂不支持。

组件美颜特效属性说明

属性
类型
默认值
必填
说明
licenseKey
string
""
腾讯云视立方 licenseKey
appId
string
""
腾讯云 appid
authFunc
async function
null
需返回 signature,timestamp,详见 WEBAR 鉴权方法,传递时请不要包含在对象中
plugin3d
function
null
3d 特效插件,开启 3d 贴纸时需传入
beautify
Object
null
初始美颜参数,取值范围:0 - 1,可用: whiten、dermabrasion、lift、shave、eye、chin
my-style
string
''
样式属性,同 style,vue3 项目需使用
background
string
''
虚拟背景图片 url,域名需加入小程序白名单
created
event
null
腾讯特效 SDK 初始化完成事件
ready
event
null
腾讯特效 SDK 加载完成事件
error
event
null
腾讯特效 SDK 错误事件

webarContext 实例方法

获取可用滤镜列表、美妆列表、贴纸列表及设置美颜、滤镜、美妆、贴纸等方法,详见 API 文档

鉴权方法 authFunc 生成方式

const config = {
appid: '您的腾讯云APPID',
token: '您的Token',
}
const authFunc = async function() {
const timestamp = Math.round(new Date().getTime() / 1000);
const signature = sha256(timestamp + config.token + config.appid + timestamp).toUpperCase();
return { signature, timestamp };
此方法仅测试时使用,为防止 token 泄露,发布时请使用服务端加密,详见 腾讯云-腾讯特效 SDK 官网文档

示例代码

详情请参见:示例项目