开发
API

tt.createStickerManager

基础库 2.32.0 开始支持本方法,低版本需做兼容处理,这是一个同步方法。

获取传入贴纸 ID 对应的算法管理器。

语法

tt.createStickerManager(stickerId);

参数说明

stickerId

类型默认值必填说明最低支持版本
string需要使用的贴纸的 ID2.32.0

返回值

一个贴纸管理器 StickerManager

代码示例

开发者工具中预览

Page({
  onLoad: function () {
    console.log("Welcome to Mini Code");
  },

  onReady: function () {
    tt.createSelectorQuery()
      .select("#myCanvas")
      .node()
      .exec((res) => {
        this.canvas = res[0].node;
        this.gl = this.canvas.getContext("webgl");
        this.render = require("./render");
        this.render.initRenderContext(this.gl);
      });
  },
  requestEffectCamera: function () {
    this.effectCameraStream = tt.createEffectCameraStream(this);
    this.effectCameraStream.onRequest(() => {
      this.effectCameraStream.play();
    });
    this.effectCameraStream.onPlay((video) => {
      this.video = video;
      this.videoTexture = this.render.createTexture(
        this.gl,
        video.width,
        video.height
      );
      this.processedTexture = this.render.createTexture(
        this.gl,
        video.width,
        video.height
      );
      console.log("video size: ", video.width, video.height);
      this.render.renderVideoToTexture(this.gl, this.video, this.videoTexture);
      const paint = () => {
        console.log("paint");
        this.render.renderVideoToTexture(
          this.gl,
          this.video,
          this.videoTexture
        );
        this.processor.paintToTexture(this.videoTexture, this.processedTexture);
        this.render.renderToScreen(this.gl, this.processedTexture);
        this.canvas.requestAnimationFrame(paint);
      };
      paint();
    });
    this.effectCameraStream.request();
  },
  requestSticker: function () {
    console.log("request sticker");
    this.stickerManager = tt.createStickerManager("1404075");
    this.stickerManager.onLoad((processor) => {
      console.log("sticker loaded");
      this.processor = processor;
    });
    this.stickerManager.onError((err) => {
      console.log("sticker load failed, ", err);
    });
    this.stickerManager.load();
    console.log("start request sticker");
  },
});

Bug & Tip

  • Tip: 非授权开发者仅支持 IDE 扫码使用
点击纠错
评价此篇文档