TUIVideoEffectPluginManager
简介
TUIVideoEffectPluginManager
是视频特效插件管理器,支持对接第三方库,实现对视频数据的个性化处理,例如:接入第三方美颜库。安装方式:
// 使用 npmnpm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save// 使用 pnpmpnpm i @tencentcloud/tuiroom-engine-electron@2.4.0-alpha.3 --save// 使用 yarnyarn 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() 获取设备列表信息,包好设备 IDconst 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 |
方法 | 说明 |
启用或禁用视频特效插件 | |
设置视频特效插件参数 |
枚举定义
枚举 | 说明 |
视频数据格式 |
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() 获取设备列表信息,包好设备 IDconst 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() 获取设备列表信息,包好设备 IDconst 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 |