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}
方法 | 说明 |
设置视频特效插件基础参数 | |
添加视频特效插件 | |
删除视频特效插件 | |
设置视频特效插件回调函数 |
属性 | 类型 | 说明 |
id | string | 插件 ID |
deviceId | string | 摄像头设备 ID |
方法 | 说明 |
启用或禁用视频特效插件 | |
设置视频特效插件参数 |
枚举 | 说明 |
视频数据格式 |
import TUIRoomEngine, {TUIVideoEffectPluginManager,TUIVideoPixelFormat} from '@tencentcloud/tuiroom-engine-electron';const videoEffectPluginManager: TUIVideoEffectPluginManager = TUIRoomEngine.getVideoEffectPluginManager();videoEffectPluginManager.setVideoPluginFormat(TUIVideoPixelFormat.kVideoPixelFormat_I420);
参数 | 类型 | 校验 | 默认值 | 说明 |
pixelFormat | - | - | 视频数据格式 |
void
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
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
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 | - | - | 回调函数 |
void
参数 | 类型 | 校验 | 默认值 | 说明 |
flag | boolean | - | - | 是否启用 |
void
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
枚举项 | 类型 | 描述 |
kVideoPixelFormat_I420 | number | I420 |
kVideoPixelFormat_BGRA32 | number | BGRA32 |
kVideoPixelFormat_RGBA32 | number | RGBA32 |
本页内容是否解决了您的问题?