素材选取过滤优化,过滤原因展示
需求上线时间:2021-09-26
需求背景:
素材上传后,选择素材页面如不符合条件的被过滤后,页面没有不符合素材,也没有相关提示,容易被客户误解为上传BUG,不方便排查问题。增加素材选取后过滤原因的展示
存在问题:
1、上传新素材提交后只显示保存成功,不符合条件的素材被过滤但在选取页面没有展示,没有原因提示
2、素材库添加素材缺少查看已过滤素材,提供查看入口给用户自己排查已上传但找不到素材的情况
需求点:
1、增加4个渠道(巨量引擎、千川、快手、腾讯)批量创建-选取素材–新建素材,新素材上传提交后只显示保存成功,不符合条件的素材被过滤,重新梳理过滤逻辑,并且选取页面增加展示过滤原因提示:
{素材名称}素材{素材规格} 不符合 ,建议{素材规格要求}
2、批量创建-选取素材(视频和图片)-增加查看【已过滤】的素材:全部、素材属性字段(视频码率、文件格式、文件大小、时长、尺寸、分辨率、音频码率
批量创建全渠道实现:
1、在上传素材成功的时候加一个提示;
2、在点击保存的时候的弹窗提示;
3、选择素材的页面加个蒙版提示;
具体实现的效果:
1、上传成功时:
2、点击保存时:
3、选择素材时:
系统各大渠道对应素材要过滤的条件
附jira链接:素材选取过滤优化,过滤原因展示
主要分为四种
1、素材文件本身的要求,比如长宽、文件大小、码率、帧率等;
2、文件的格式,如MP4、jpg、jpeg等;
3、小飞机本身对于素材的过滤,如横版竖版的比例是9:16,16:9等;
4、针对某个渠道额外处理,如快手的图片比例要求会更精确点;
现在的实现方案:
1、在creative.js里将素材的类型和过滤条件传到selectMaterial文件,获取这个文件内的素材类型的过滤条件,将这些条件传作为参数,调用统一获取过滤文本方法getMaterialTipsText();
封装的获取素材过滤文本如下:
主要分为两个方法
1、格式化传入的数据,处理统计过滤文本时字段大小写不统一,先做格式化字段均为小写字段;
2、根据过滤条件、文件格式、素材枚举,返回过滤的素材文本和他们的id集
getMaterialTipsText()获取过滤文本请求参数:
var filterParam = {
data: result, // 要过滤的素材对象数组
filter: self.$filter, // 过滤的条件,如长小于等于1280
fileType: self.$fileType, // 过滤的文件格式,如MP4
materialType: c.materialType, // 素材的枚举,如1、2是横版竖版视频,主要用于宽高比例过滤
};
var data = CommonUtil.getMaterialTipsText(filterParam) || {};
通过getMaterialTipsText()方法获取素材的过滤文本之后,根据需要渲染在对应得页面上,返回的数据j结构如下:
{ ids:[12121, 12122, 12323],
names: [‘素材名称1’, '‘素材名称2’, '‘素材名称3’],
text:[ [‘文件格式为MP4’, ‘宽度>=1280px’], [‘文件格式为MP4’, ‘宽度>=1280px’],
[‘文件格式为MP4’, ‘宽度>=1280px’] ] }
现在如果新增的素材过滤处理,只需要在调用getFormatMaterialData()格式化字段名,然后根据格式化的数据,传入过滤的条件到getMaterialTipsText()方法即可自动获取过滤文本;如过getMaterialTipsText()里没有要过滤的字段名,自行加一个进去里面就行
现在支持:
width
height
duration // 时长
resolution // 分辨率
videoBitRate // 视频码率
videoFrameRate // 帧率
audioBitRate // 音频码率
fileSize // 文件大小
支持区间过滤