-
Notifications
You must be signed in to change notification settings - Fork 53
zanxiaofei edited this page Oct 30, 2017
·
3 revisions
在使用MV功能之前需要先制作集成MV资源的zip包,具体MV制作流程参考金山云短视频MV资源
集成MV功能需要执行以下几步:
- 从assets或者网络上拷贝MV资源zip包到SD卡
- 解压zip包
- 构建MV数据类KSYMVInfo
- 调用接口
applyMV(KSYMVInfo)
,使MV生效
App需要将MV资源包拷贝到sd卡中,然后对资源包进行解压
Demo中将MV在assets中集成,解压过程参考Demo中FileUtils.reloadMVResourceFromAssets
Demo中以zip的包名(除.zip外)作为MV的名称及解压后的路径名,因此zip包名必须和解压后的文件同名
Demo中MV选择列表Item使用了zip包名和zip包中的icon.png,此部分参考Demo中RecordActivity中addMVData
Demo中,如果解压后的资源文件存在,会check下载的资源包是否和sd卡中的资源包md5相同,若不同会重新解压,此部分参考Demo中RecordActivity中initMVSelectView
SDK提供以下几个数据类用于构建MV资源:
- KSYMVInfo mv最外层数据类,匹配config.json中的第一层数据
- KSYMVAVInfo mv音视频数据类,匹配config.json中的movie/music字段具体信息
- KSYMVFilterInfo mv滤镜数据类,匹配config.json中的filters中每一个滤镜的具体信息
- KSYMVFrameInfo mv的效果帧数据类,即事件,匹配config.json中的animations中的frames具体信息
SDK提供了两种种构建MV的方式:
- 传入MV资源文件路径进行构建(需要zip解压后的文件路径)
传入配置文件,SDK负责解析config.json文件并构造相关数据类
/**
* 通过mv的资源文件路径构建KSYMVInfo
* @param path mv资源文件路径
*/
public KSYMVInfo(String path)
- 传入MV具体配置信息来构建
在App层创建MV需要的各个数据类
其中config.json文件的解析,可以通过接口configMVFrom(String path)来完成
/**
* 传递构造好的MV信息来构造KSYMVInfo
* @param ver mv版本信息(1.0)
* @param loop 是否循环
* @param plat 平台(Android/IOS)
* @param movieInfo mv主视频文件信息
* @param musicInfo mv主音频文件信息
* @param filters mv涉及的所有滤镜信息
* @param frames mv配置的所有事件
*/
public KSYMVInfo(String ver, boolean loop, String plat, KSYMVAVInfo movieInfo,
KSYMVAVInfo musicInfo, ArrayList<KSYMVFilterInfo> filters,
ArrayList<KSYMVFrameInfo> frames)
/**
* 通过mv的资源文件路径构建KSYMVInfo
* @param path mv资源文件路径
*/
public void configMVFrom(String path)
/**
* 读取mv的config.json文件创建json字符串
* @param configPath config.json文件路径
* @return json字符串
*/
public String getMVConfigString(String configPath)
传入有效的 KSYMVInfo信息,即可启动对应的mv特效
接口传入null即可使mv无效,即关闭mv特效
/**
* start mv
* @param mvInfo mv info, null:cancel mv
*/
public void applyMV(KSYMVInfo mvInfo)