Page History

Description

Last edited by 王琳

六、模块及流程说明

1、关键功能集成流程

1.1SDK鉴权

APP调用ShortVideoTask.shortVideoAuth(Callback callback)方法

在onInfo中获取到Authorization与x_amz_date,分别赋值给ak和amzDate

将ak/amzDate通过setAuthInfo初始化到AuthInfoManager中

通过checkAuth向视讯云请求鉴权

示例代码:

ShortVideoTask.shortVideoAuth(new Callback() {
            @Override
            public void onError(int i, String s) {
            }
            @Override
            public void onInfo(int i, Object o) {
                ShortVideoAuth shortVideoAuth = (ShortVideoAuth) o;
                final String authInfo = shortVideoAuth.getData().getAuthorization();
                final String date = shortVideoAuth.getData().getX_amz_date();
                //初始化鉴权信息

                AuthInfoManager.getInstance().setAuthInfo(getApplicationContext(),
                        authInfo, date);
                //添加鉴权结果回调接口(不是必须)
 AuthInfoManager.getInstance().addAuthResultListener(mCheckAuthResultListener);
                //开始申请鉴权
                AuthInfoManager.getInstance().checkAuth();
            }
        });

1.2录制

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

示例代码:录制文件,提供CNRecordKit来完成录制功能

配置参数:使用ShortVideoConfigDialog示例了录制参数的配置,参考ShortVideoActivity的onRecordClick函数

录制预览显示:调用CNRecordKit的startCameraPreview启动录制预览显示,参考RecordActiviyt的startCameraPreviewWithPermCheck()

录制开始:调用CNRecordKit的startRecord(string)开始了录制,参考RecordAcitvity的startRecord()函数

录制结束:调用CNRecordKit的stopRecord()停止录制,参考RecordAcitvity的stopRecord()函数 SDK内部当前没有控制录制时长,建议在3s~5分钟之间,Demo中控制的最短为5s

1.3编辑

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

示例代码:

启动编辑:调用CNEditKit的函数startEditPreview(string)来启动编辑预览,参考EditActivity中startEditPreview()函数

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

添加滤镜:只提供GPU滤镜的添加,参考EditAcitvity中initBeautyUI()函数,与推流库的滤镜设置方式基本相同

添加水印:参考EditActivity中onWaterMarkLogoClick()函数,只提供图片水印的添加,与推流库的图片水印基本相同

1.4合成

编辑结束,开始文件合成

示例代码

配置合成参数:使用ShortVideoConfigDialog示例了录制参数的配置,当前合成提供帧率、encodeType、videobitrate,后续会持续完善

开始合成:调用CNEditKit的函数startCompose(string)来开始合成,参考EditActivity的onNextClick(函数),合成过程的信息通过OnInfoListener和OnErrorListener来提供,消息通知参考mOnErrorListener和mOnInfoListener

1.5上传

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

示例代码

触发上传:接收到回调合成结束SHORTVIDEO_COMPOSE_FINISHED后,在回调接口中返回上传信息CNClientWrap.CNUploadInfo,即可触发上传,参考mOnInfoListener中相关处理

上传鉴权:接收到回调SHORTVIDEO_GET_UPLOAD_AUTH后,文件上传回调参考EditAcitvity中,mPutObjectResponseHandler

注:如果您的APP使用视讯云存储或者使用其他家云存储提供的存储或者CDN服务,上传阶段置为null即可。

1.6播放

上传文件后预览播放

示例代码

获取文件地址:上传文件时会返回播放地址;

开始预览播放:文件上传完成后,使用上面的播放地址进行播放