每一个短视频系统源码的功能需求,搞清楚每一个需求的实现原理,哪部分是 UI 的,哪部分是核心的,前者写到 Demo 上,而后者则写入 SDK 里面。
优秀的短视频SDK,一定要尽可能避免把 UI 的界面和逻辑包含进去,不然短视频SDK的使用者,很难满足产品经理的 UI 和交互设计要求,做出差异化的效果。
一、属于短视频SDK 的部分:
1.提供视频的时长;
2.提供视频帧总数;
3.提供解码后的每一帧视频数据;
4.提供剪辑函数,参数为:起始和结束的时间戳;
5.完成剪辑处理,输出剪辑后的视频文件。
二、属于短视频UI 的部分:
1.用列表显示视频帧图像;
2.绘制左右游标,支持手势拖动;
3.根据视频的总时长和游标的位置,计算出起始和结束的时间点。
三、短视频热点功能剪辑,其关键点在于:
1.获取视频中的连续图像在列表中进行展示;
2.绘制左右游标,以确定剪辑的起始和结束的时间点;
3.读取视频文件,丢弃时间区间以外的视频帧,保留剩余视频帧。
如何让短视频 SDK 具有更好的可支持性呢 ?
四、关键在于一套健全而规范的日志系统,可以有效提高技术支持和开发者排查问题的速度和效率,那么,设计这样一套完善的日志系统,有哪些关键点呢 ?
1.支持配置SDK 的输出日志级别,如:ERROR, WARN, INFO, DEBUG, VERBOSE;
2.SDK 初始化的时候输出关键的排障信息,如:应用包名,SDK 版本,设备机型,系统 OS 版本,关键配置等;
3.规范的日志格式,如::::,可以快速方便地过滤出各个模块的运行状态;
4.健全的问题排查手册/文档,让每一个错误码都有文档可依,开发者可以完成简单初步的问题。
总而言之,设计一款优秀并且口碑好的短视频sdk,并不是简简单单堆积一些功能就够了,看上去功能丰富和实际开发过程中是否好用还有很大的差距。
原文地址:http://blog.51cto.com/13932627/2285333