Skip to content

初始化 SDK

SDK 提供构造函数方式初始化编辑器。

基本用法

ts
const sdk = new PomegranateEditorSDK(document.getElementById('dom-id'), {
  accessKey: 'your-accessKey',
  eid: 'your-eid',
  logourl?: 'your-logo-url', // 非必填  logo图片地址
  logoStyle?: { css style }, // 非必填 logo样式
  name?: 'your-name', // 非必填 编辑器名称
  peStyle?: { css style }, // 非必填 编辑器Container样式
  vid?: number, // 非必填 视频id  用户重新编辑视频时传入使用或者查看草稿时
  nvid?: number, // 非必填 新创建的视频id  用来保存草稿 用户重新编辑视频时传入使用
  source?: string  // 非必填  渠道标识
  // 克隆音色前钩子
  beforeCreateVoice:(data: {  // 回参
    file: File,  // 文件
    type: string, // 文件类型
  }) => {
    return new Promise((resolve,reject) => {
      // 如果需要在这里查询余额或做些其他操作,resolve 继续进行  reject 停止进行
      //  不需要的话直接 resolve();
      getUserBalance().then(res => {  // 查询余额示例函数
        resolve();
       }).catch(err => {
        reject('余额不足'); // 返回错误信息
       })
    })
  },
  // 克隆音色后钩子
  afterCreateVoice: (data: { // 回参
    voiceId: number,  // 音色id
    subject: string, // 音色名称
    price: number, // 本次消耗算力
  }) => {
    return new Promise((resolve,reject) => {
      //  需要的话进行扣费或者记录信息后 resolve 继续进行
      //  不需要的话直接 resolve();
      deductUserBalance().then(res => {  // 扣费示例函数
        resolve();
       })
    })
  },
  // 克隆数字人前钩子
  beforeCreateAvatar: (data: { // 回参
    file: File,  // 文件
    type: string, // 文件类型
  }) => {
    return new Promise((resolve,reject) => {
      // 同上  如果需要在这里查询余额或做些其他操作,resolve 继续进行  reject 停止进行
      //  不需要的话直接 resolve();
     resolve();
    })
  },
  // 克隆数字人后钩子
  afterCreateAvatar:(data: { // 回参
    avatarId: number,  // 数字人id
    subject: string, // 数字人名称
    price: number, // 本次消耗算力
    isCloneVoiceboolean, // 是否克隆音色
  }) => {
    return new Promise((resolve,reject) => {
      //   同上  需要的话进行扣费或者记录信息后 resolve 继续进行
      //  不需要的话直接 resolve();
      resolve();
    })
  },
  // 创建视频前钩子
  beforeCreateVideo:(data: { // 回参
    duration: number,  // 视频时长 单位ms
  }) => {
    return new Promise((resolve,reject) => {
      // 同上  如果需要在这里查询余额或做些其他操作,resolve 继续进行  reject 停止进行
      //  不需要的话直接 resolve();
     resolve();
    })
  },
  // 创建视频后钩子
  afterCreateVideo: (data: { // 回参
      id: number, // 视频id
      length: number, // 视频时长 单位ms
      progress: number, // 进度
      status: string,  // 状态 pending|ready|failed
      subject: string, // 视频名称
      uid: number, // 用户id
      videoAddress: string, // 视频地址
      createTime: number, // 创建时间
      price: number, // 本次消耗算力
  }) => {
    return new Promise((resolve,reject) => {
      //   同上  需要的话进行扣费或者记录信息后 resolve 继续进行
      //  不需要的话直接 resolve();
     
      //  注意:由于SDK不能进行页面跳转,请在此钩子函数中跳转到作品列表页面, 不然如果继续点击生成视频会提示错误
      resolve();
    })
  },
  // 获得编辑状态视频id钩子,用于草稿功能。  非必填
  preEditingVideo?: (data: { // 回参
      vid: number, // 视频id
  }) => {
    // 接入方需将视频vid存起来后将状态置为编辑中,重新进入编辑页面时传入vid即可
  }
});