TUIVideoEffectPluginManager

最近更新时间:2024-09-03 18:25:12

我的收藏

简介

TUIVideoEffectPluginManager 是视频特效插件管理器,支持对接第三方库,实现对视频数据的个性化处理,例如:接入第三方美颜库。
安装方式
// 使用 npm
npm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save

// 使用 pnpm
pnpm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save

// 使用 yarn
yarn add @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3

使用示例:
import TUIRoomEngine, {
TUIVideoEffectPluginManager,
TUIVideoEffectPlugin,
TUIVideoPixelFormat
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();

videoEffectPluginManager.setVideoPluginFormat(TUIVideoPixelFormat.kVideoPixelFormat_I420);

videoEffectPluginManager.setCallback((pluginId: string, errorCode: number, errorMessage: string) => {
console.log(`plugin event - pluginId : ${pluginId}, errorCode : ${errorCode}, errorMessage : ${errorMessage}`);
});

const cameraId = ''; // 摄像头设备 ID,从 TUIDeviceManager.getDevicesList() 获取设备列表信息,包好设备 ID
const pluginId = `${cameraId}-${new Date().getTime()}`; // ID 可以随意设置,只要唯一、不重复就行
const plugin: TUIVideoEffectPlugin | null = videoEffectPluginManager.addVideoPlugin({
pluginId: pluginId,
deviceId: cameraId,
path: '', // 需要客户自研的视频数据预处理库文件路径
});

if (plugin) {
plugin.enable(true);
plugin.setParameter('{}'); // JSON string
}

API

TRTCVideoEffectPluginManager

视频特效插件管理器对象
方法
说明
设置视频特效插件基础参数
添加视频特效插件
删除视频特效插件
设置视频特效插件回调函数

TUIVideoEffectPlugin

视频特效插件
属性
类型
说明
id
string
插件 ID
deviceId
string
摄像头设备 ID
方法
说明
enable
启用或禁用视频特效插件
设置视频特效插件参数

枚举定义

枚举
说明
视频数据格式

API 详情

setVideoPluginFormat

设置视频特效插件基础参数
import TUIRoomEngine, {
TUIVideoEffectPluginManager,
TUIVideoPixelFormat
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();

videoEffectPluginManager.setVideoPluginFormat(TUIVideoPixelFormat.kVideoPixelFormat_I420);
参数
参数
类型
校验
默认值
说明
pixelFormat
-
-
视频数据格式
返回值 void

addVideoPlugin

import TUIRoomEngine, {
TUIVideoEffectPluginManager,
TUIVideoEffectPlugin,
TUIVideoPixelFormat
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();

videoEffectPluginManager.setVideoPluginFormat(TUIVideoPixelFormat.kVideoPixelFormat_I420);

videoEffectPluginManager.setCallback((pluginId: string, errorCode: number, errorMessage: string) => {
console.log(`plugin event - pluginId : ${pluginId}, errorCode : ${errorCode}, errorMessage : ${errorMessage}`);
});

const cameraId = ''; // 摄像头设备 ID,从 TUIDeviceManager.getDevicesList() 获取设备列表信息,包好设备 ID
const pluginId = `${cameraId}-${new Date().getTime()}`; // ID 可以随意设置,只要唯一、不重复就行
const plugin: TUIVideoEffectPlugin | null = videoEffectPluginManager.addVideoPlugin({
pluginId: pluginId,
deviceId: cameraId,
path: '', // 需要客户自研的视频数据预处理库文件路径
});

if (plugin) {
plugin.enable(true);
plugin.setParameter('{}'); // JSON string
}
参数
参数
类型
校验
默认值
说明
options
Record<string, string>
-
-
视频特效插件参数
options.pluginId
string
-
-
视频特效插件 ID
options.deviceId
string
-
-
摄像头设备 ID
options.path
string
-
-
视频特效插件动态库路径,Windows 平台下为 dll 文件,Mac 平台下为 dylib 文件
返回值 TUIVideoEffectPlugin|null

removeVideoPlugin

删除视频特效插件
import TUIRoomEngine, {
TUIVideoEffectPluginManager,
TUIVideoEffectPlugin
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();
const plugin: TUIVideoEffectPlugin;
if (plugin) {
videoEffectPluginManager.removeVideoPlugin(plugin.id, plugin.deviceId);
}
参数
参数
类型
校验
默认值
说明
pluginId
string
-
-
插件 ID
deviceId
string
-
-
设想头设备 ID
返回值 void

setCallback

设置视频特效插件回调函数
import TUIRoomEngine, {
TUIVideoEffectPluginManager,
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();
videoEffectPluginManager.setCallback((pluginId: string, errorCode: number, errorMessage: string) => {
console.log(`plugin event - pluginId : ${pluginId}, errorCode : ${errorCode}, errorMessage : ${errorMessage}`);
});
参数
参数
类型
校验
默认值
说明
callback
(pluginId: string, errorCode: number, errorMessage: string) => void
-
-
回调函数
pluginId - 插件ID
errorCode - 错误码。0、-1、-2、-3、-4、-5 是 SDK 内部定义错误码,其它错误码是插件自定义错误码。 注意:错误码:-1000 到 1000 是 SDK 预留错误码,用户自定义插件中,请使用这个范围以外的错误码。
0 表示 addVideoPlugin 成功
-1 插件库错误
-2 插件库缺少插件创建函数
-3 创建函数执行失败
-4 插件初始化函数执行失败
-5 插件加载资源函数执行失败
errorMessage - 错误信息
返回值 void

enable

启用或禁用视频特效插件
参数
参数
类型
校验
默认值
说明
flag
boolean
-
-
是否启用
返回值 void

setParameter

设置视频特效插件参数
import TUIRoomEngine, {
TUIVideoEffectPluginManager,
TUIVideoEffectPlugin,
TUIVideoPixelFormat
} from '@tencentcloud/tuiroom-engine-electron';

const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();

videoEffectPluginManager.setVideoPluginFormat(TUIVideoPixelFormat.kVideoPixelFormat_I420);

videoEffectPluginManager.setCallback((pluginId: string, errorCode: number, errorMessage: string) => {
console.log(`plugin event - pluginId : ${pluginId}, errorCode : ${errorCode}, errorMessage : ${errorMessage}`);
});

const cameraId = ''; // 摄像头设备 ID,从 TUIDeviceManager.getDevicesList() 获取设备列表信息,包好设备 ID
const pluginId = `${cameraId}-${new Date().getTime()}`; // ID 可以随意设置,只要唯一、不重复就行
const plugin: TUIVideoEffectPlugin | null = videoEffectPluginManager.addVideoPlugin({
pluginId: pluginId,
deviceId: cameraId,
path: '', // 需要客户自研的视频数据预处理库文件路径
});

if (plugin) {
plugin.enable(true);
plugin.setParameter('{}'); // JSON string
}
参数
参数
类型
校验
默认值
说明
param
string
支持 JSON.parse() 反序列化
-
JSON 字符串,参照会传给视频特效处理的动态库
返回值 void

枚举详情

TUIVideoPixelFormat

视频数据格式
枚举项
类型
描述
kVideoPixelFormat_I420
number
I420
kVideoPixelFormat_BGRA32
number
BGRA32
kVideoPixelFormat_RGBA32
number
RGBA32