文档中心>智能创作

自定义配置

最近更新时间:2022-06-09 15:26:33

我的收藏

用户自定义配置

新版本优化并完善了用户配置部分,支持更清晰、丰富、以及更细粒度的配置,旨在通过修改配置项的方式满足大部分用户的应用场景,减少不必要的代码开发,具体配置项及相关控制内容如下所示:

配置项说明

配置项主要包含以下几方面:
theme:UI 相关配置。
common:通用配置。
camera:相机页相关配置。
edit:编辑页相关配置。
export:导出页相关配置。
source:自定义资源。
说明
后续会根据用户反馈不断完善。
// 主题配置
theme: {
primaryColor: "rgba(255,88,76)", // 主题色
textColor: "#fff", // 文字色
disableColor: "#ddd", // 禁用色
backgroundColor: "#000", // 整体背景色
button: { // 按钮配置
default: { // 默认状态
backgroundColor: "#ff584c",
textColor: "#fff"
},
disable: { // 禁用状态
backgroundColor: "#ddd",
textColor: "#fff"
}
}
},
// 通用配置
common: {
clipMaxDuration: 60, // 裁切时长的默认限制
clipMinDuration: 1, // 裁切时长最短限制
chooseMaxDuration: 1000, // 选择视频的默认时长限制
imgDisplayDuration: 3, // 单张图片默认展示时间(秒)
allMediaNum: 9, // 所有素材数量限制
videoMediaNum: 5, // 视频素材数量限制
},
// 相机页配置
camera: {
videoMaxDuration: 30, // 可拍摄总时长,小程序限制最多拍摄30秒
modeTypes: ['album', 'camera', 'template'], // 资源入口控制
defaultMode: 'camera', // 默认入口
chooseMediaTypes: ['image', 'video'], // 可选资源类型
},
// 编辑页配置
edit: {
editMode: ['album', 'manual'], // 编辑模式,album:影集模式、manual:普通模式
},
// 导出页配置
export: {
exportPagePath: "../export/index", // 导出页面路径
},
// 自定义资源
source: {
// 自定义音乐
music: [{
Name: '音乐名称',
key: 'music1',
previewImage: "https://xxx.png"
src: 'https://xxx.mp3',
}, {
Name: '音乐名称',
key: 'music2',
previewImage: "https://xxx.png"
src: 'https://xxx.mp3',
}],
// 自定义滤镜
filters: {
tabs: [{
key: 'tab-1',
name: '滤镜',
list: [{
key: 'filter1',
name: '测试1',
src: "https://xxx.png",
previewImage: "https://xxx.jpg",
}, {
key: 'filter2',
name: '测试2',
src: "https://xxx.png",
previewImage: "https://xxx.jpg",
}]
}]
},
// 自定义特效
effects: {
tabs: [{
key: 'tab1',
name: '特效',
list: [{
key: 'effect1',
name: "特效1",
previewImage: 'https://xxx.png',
is_alpha: true,
alpha_url: 'https://xxx.mp4'
},
{
key: 'effect2',
name: "特效2",
previewImage: 'https://xxx.png',
is_alpha: true,
alpha_url: 'https://xxx.mp4'
}]
}]
},
// 自定义贴纸
stickers: {
tabs: [{
key: 'tab1',
name: '贴纸',
list: [
{
key: "sticker1",
name: "贴纸1",
previewImage: "https://xxx.png",
zipUrl: "https://xxx.zip"
},
]
}, {
key: 'tab2',
name: '表情',
list: [
{
key: "sticker2",
name: "表情2",
previewImage: "https://xxx.png",
zipUrl: "https://xxx.zip"
},
]
}]
},
// 自定义字体,1.8.0以上版本
fonts: {
fontList: [
{
name: '字体1',
family: 'font1',
url: 'https://xxx.ttf'
}, {
name: '字体2',
family: 'font2',
url: "https://xxx.ttf"
}
],
// 花字和文字模板制作教程暂未开放,敬请期待
stickers: [],
huazi: []
},
// 自定义字体,1.8.0以下版本
fonts: [{
name: '字体1',
family: 'font1',
url: 'https://xxx.ttf'
}, {
name: '字体2',
family: 'font2',
url: "https://xxx.ttf"
}],
// 自定义模板
templates: {
tabs: [{
key: 'tab1',
name: '模板',
list: [
{
"name": "朋友圈",
"key": "pengyouquan",
"thumbUrl": "https://xxx.jpg",
"previewUrl": "https://xxx.mp4",
"resourceUrl": "https://xxx.zip",
"count": 3,
"isTrack": true
}
]
}]
}
}
推荐通过插件的内置方法 initPlugin 向插件注入自定义配置,旧的 clip 组件配置 settings 属性的方式局限性较大,已不推荐
<!-- 初始化逻辑通常写在app.js中-->
const plugin = requirePlugin("myPlugin") // "myPlugin" 为 app.json 中配置的插件别名
App({
onLaunch: function () {
if(plugin.initPlugin){
const settings = {
……
}
plugin.initPlugin(settings) // 手动初始化插件
}
}
})
注意
用户提供自定义配置时,需要严格遵循上述数据结构,可以缺省某些参数,但是不可以随意修改其名称。插件会提供一份默认的配置项,然后根据用户传入的数据做 deep merge。
// 这样也是正确的(只配置了导出页相关),其他配置用插件默认值
{
export: {
exportPagePath: "../export/index", // 导出页面路径
}
}

UI 自定义

快速接入模式旨在通过最少的代码量(入口、出口组件)将视频剪辑的功能添加到主体小程序中,故内部的交互完全由插件自身实现,因此是不支持交互的自定义的。
但是可以通过配置相关主题色配置,实现简单的换肤功能,我们以上述第二种注入配置的方式为例,具体如下:
const plugin = requirePlugin("myPlugin") // "myPlugin" 为 app.json 中配置的插件别名
App({
onLaunch: function () {
if(plugin.initPlugin){
const settings = {
theme: {
primaryColor: "rgb(60,179,113)", // 主题色
button: { // 按钮配置
default: { // 默认状态
backgroundColor: "rgb(60,179,113)",
textColor: "#fff"
},
disable: { // 禁用状态
backgroundColor: "#ddd",
textColor: "#fff"
}
}
},
}
plugin.initPlugin(settings) // 手动初始化插件
}
}
})
通过配置主题色和按钮默认颜色为 rgb(60,179,113),便实现了换肤的功能,颜色相关配置涉及透明度计算,请使用 RGB 或16进制形式。

img



素材自定义

为了更方便用户自定义与扩展,插件将现有的内置资源:音乐、滤镜、特效、字体、贴纸(表情)、模板列表向用户开放,上述内置资源可以通过以下方式获取,以获取内置滤镜列表为例:
const plugin = requirePlugin("myPlugin") // "myPlugin" 为 app.json 中配置的插件别名
App({
async onLaunch () {
const musicList = await plugin.getFilterList
// 类似接口:
// musicList 内置音乐列表
// getEffectList 内置特效列表
// getStickerList 内置贴纸列表
// getTemplateList 内置模板列表
// getFontList 内置字体列表
}
})
内置素材可以在插件中直接使用,若有自定义的需求,如增加滤镜、贴纸等,详情请参见 自定义素材,详细介绍了各种类型素材的自定义方式。