Appearance
初始化 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, // 本次消耗算力
isCloneVoice: boolean, // 是否克隆音色
}) => {
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即可
}
});