Skip to content
zanxiaofei edited this page Jul 7, 2017 · 43 revisions

金山云短视频编辑SDK主页

1. 集成说明

  • 短视频相关jar(必选)

libksysv.jar
可通过jcenter依赖:compile 'com.ksyun.media:libksysv-java:0.8.3'

  • 金山云Android融合库SDK(必选,当前版本暂时不支持使用jcenter来依赖融合库)

libksylive

  • KS3上传SDK(必须,可以不用ks3的功能,但是SDK内部集成了ks3的上传逻辑,所以必须依赖ks3关联jar)

通过jcenter方式依赖ks3的关联jar
volley及org.apache.http.Header依赖(同步获取ks3的token时使用)

dependencies {
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.ksyun.ks3:ks3androidsdk:1.4.1'
}
  • 动态贴纸相关库(可选)

faceunity_jar faceunity_so
demo中只集成了部分faceunity的贴纸,并且是临时鉴权,详细集成请移步魔方平台

2. 架构说明

图片名称

3. 关键类说明  

图片名称

4. 模块及流程说明  

4.1 关键功能集成流程:

4.1.1 SDK鉴权

鉴权需要向AppServer获取鉴权信息,并通过SDK的AuthInfoManager的checkAuth接口来完成。

  • 示例代码:参考ShortVideoActivity的onAuthClick函数
  • 流程说明:参考4.2中模块1:SDK鉴权
  • wiki:SDK鉴权

鉴权在合成前必须完成,否则影响合成

4.1.2 录制

准备待编辑文件,提供录制和本地文件导入两种方式来生成待编辑文件  

  • 示例代码: 录制文件,提供KSYRecordKit来完成录制功能
  • 配置录制参数:使用ShortVideoConfigDialog示例了录制参数的配置,参考ShortVideoActivity的onRecordClick函数
  • 录制预览显示:调用KSYRecordKit的startCameraPreview启动录制预览显示,参考RecordActiviyt的startCameraPreviewWithPermCheck()
  • 录制开始:调用KSYRecordKit的startRecord(string)开始了录制,参考RecordAcitvity的startRecord()函数
  • 录制结束:调用KSYRecordKit的stopRecord()停止录制,参考RecordAcitvity的stopRecord()函数

SDK内部当前没有限制录制时长,建议在3秒~5分钟之间,Demo中最短为5s

文件导入,Demo中提供了文件导入的示例代码,参考FileImportActivity(此部分不涉及与SDK交互)

  • 流程说明:参考4.2 中模块2:短视频录制和导入

4.1.3 编辑

输入编辑文件路径,启动EditActivity对第二步中生成的文件进行编辑,SDK提供KSYEditKit类来完成编辑功能  

  • 示例代码:
  • 启动编辑:调用KSYEditKit的函数startEditPreview(string)来启动编辑预览,参考EditActivity中startEditPreview()函数

只提供mp4、3gpp、mov三种文件的编辑,该函数会对文件格式进行check,不符合会抛出IllegalArgumentException异常

  • 添加滤镜:只提供GPU滤镜的添加,参考EditAcitvity中initBeautyUI()函数,与推流库的滤镜设置方式基本相同,参考内置美颜自定义GPU滤镜
  • 添加水印:参考EditActivity中onWaterMarkLogoClick()函数,只提供图片水印的添加,与推流库的图片水印基本相同,参考水印
  • 流程说明:参考4.2 中模块3:短视频预览编辑合成中的1~3步骤

4.1.4 合成

编辑结束,开始文件合成

  • 示例代码:
  • 配置合成参数:使用ShortVideoConfigDialog示例了录制参数的配置,当前合成提供帧率、encodeType、videobitrate,后续会持续完善
  • 开始合成:调用KSYEditKit的函数startCompose(string)来开始合成,参考EditActivity的onNextClick(函数),合成过程的信息通过OnInfoListener和OnErrorListener来提供,消息通知参考mOnErrorListener和mOnInfoListener,具体说明,请移步状态和错误回调

startCompose中会触发SDK鉴权检查,鉴权失败返回SHORTVIDEO_ERROR_SDK_AUTHFAILED消息,合成无法继续   调用KSYEditKit的getProgress()可以获取到合成进度,App需要自己启动Time来更新进度显示,参考ComposeAlertDialog中的composeStarted()函数

  • 流程说明:参考4.2 中模块3:短视频预览编辑合成中的4~8步骤

4.1.5 上传

文件合成结束,开始上传文件

  • 示例代码:
  • 触发上传:接收到回调合成结束SHORTVIDEO_COMPOSE_FINISHED后,在回调接口中返回上传信息KS3ClientWrap.KS3UploadInfo,即可触发上传,参考mOnInfoListener中相关处理
  • 上传鉴权:接收到回调SHORTVIDEO_GET_KS3AUTH后,需要向AppServer请求KS3鉴权Token,Token获取代码参考KS3TokenTask,在回调中返回Token信息,KS3Client会检查token是否正确,正确继续开始文件上传,错误,文件上传失败,文件上传回调参考EditAcitvity中,mPutObjectResponseHandler  

通过PutObjectResponseHandler的回调onTaskProgress(double progress)可以获取到上传进度

  • 流程说明:参考4.2 中模块4:短视频上传

4.1.6 播放

上传后文件预览播放

  • 示例代码
  • 获取文件地址:当接收到PutObjectResponseHandler的回调onTaskSuccess后,说明上传成功,可以开始获取上传后的文件播放地址,Demo中提供HttpRequestTask类来示例http请求,地址获取参考ComposeAlertDialog中的uploadFinished()函数
  • 开始预览播放:文件获取成功后,可以使用播放器对其进行播放,Demo中示例参考ComposeAlertDialog中的startPreview()

此部分不涉及与SDK交互  

  • 流程说明:参考4.2 中模块5:上传后文件预览播放

4.2 模块及流程图

不要被以下流程吓到哦,仔细阅读,对您集成有事半功倍的作用 图片名称  

5. 功能点详细说明

Clone this wiki locally