tencent cloud

文档反馈

TUIVideoEffectPluginManager

最后更新时间:2024-09-10 15:30:52

    简介

    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
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持