关于视频编辑SDK的接入说明
一、运行环境
Android 4.1(api 16)以上;
处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86、MIPS暂不支持);推荐四核1.2GHz以上CPU
内存:1 GB以上;
二、注册申请AppKey和APPSECRET
1、 登录http://www.rdsdk.com 注册用户
2、 登录注册好的用户
3、 进入视频云管理 点击(新增)获取应用的 appkey 、appsecret
三、下载并导入SDK
1、 Android Studio 导入xpkUISdk
点击File--->Import Module,选择路径,填写“Module name”,默认为xpkUISdk,点击“finish”。
之后点击File--->Project Structure,选择你自己工程的Module,在Flavors选项卡中设置Min Sdk Version 不低于16
然后切换到Dependencies选项卡并点击右侧“+”号在弹出的下拉菜单选择Module Dependency点击。
弹出的小窗口中选择SDK相关的Modules,“OK”
添加成功后点击Project Structure设置界面的“OK”完成导入工作。
关于集成NDK SO库引发冲突解决办法如下:
步骤一:sdk library模块过滤
步骤二:application模块中过滤
编辑SDK NDK包含以下架构的SO库:
- armeabi-v7a
建议在Module的build.gradle文件中使用NDK的“abiFilter”配置,设置支持的SO库架构。
如果在添加“abiFilter”之后Android Studio出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
则在项目根目录的gradle.properties文件中添加:
android.useDeprecatedNdk=true
在集成NDK SO库时,请注意只保留支持的架构SO库,参考截图配置
Android studio上绑定SDK javadoc文档
Android Studio中使用SDK jar包时,会在$PROJECT_DIR$/.idea/libraries目录中生成xpkuisdk_$VERSTION$.xml文件,添加以下配置:
<JAVADOC >
<root url="file://$PROJECT_DIR$/../xpkUISdk/docs/xpkUISdk" />
</JAVADOC>
其中$PROJECT_DIR$为项目根目录;$VERSTION$代表SDK版本,当前为1.0.8,则该XML文件则为xpkuisdk_1_0_8.xml;
当前配置演示是以SDK demo项目进行的,需要根据实际集成环境进行修改。
参考如下截图:
添加完JAVADOC后,将是如下结果:
2、Eclipse导入xpkUISdk
3、 准备AndroidManifest.xml (权限,注册Activity)
a.添加权限:
b.注册必要的Activity:
如果不想影响当前项目的AndroidManifest.xml,Eclipse下可以合并xpkUISdk中的配置,修改project.properties文件如下:
android.library.reference.1=../xpkUISdk
manifestmerger.enabled=true
4、替换内置配音
替换对应音频文件和soundtrack.json
5、 调用sdk初始化
初始化成功后才能正常使用其他功能接口,还要注意系统权限的申请,否则SDK在系统api级别 >= 23(android 6.0+)下不能正常使用
6、指定配置参数
SDK初始化成功之后,需要部分自定义功能时需指定配置参数,不指定时也不会影响使用,只是按照默认配置进行调用。
a.界面配置类示例:
UIConfiguration uiConfig = new UIConfiguration.Builder()
//设置横竖屏(支持横屏,竖屏,自动)
.setOrientation(orientation)
//设置是否使用自定义相册(传false将调用秀拍客相册)
.useCustomAlbum(useCustomAlbum)
//设置是否开启向导化
.enalbeWizard(enable)
//设置视频默认比例
.setVideoProportion(proportion)
.get();
设置编辑导出功能模块显示与隐藏
uiConfig .setEditAndExportModuleVisibility(EditAndExportModules module,
boolean visibility)
其中EditAndExportModules 是编辑导出功能模块枚举
public enum EditAndExportModules {
/** 配乐 */
SOUNDTRACK,
/** 配音 */
DUBBING,
/** 滤镜 */
FILTER,
/** 字幕 */
TITLING,
/** 特效 */
SPECIAL_EFFECTS,
/** 片段编辑 */
CLIP_EDITING,
}
设置片段编辑功能模块显示与隐藏:
uiConfig .setClipEditingModuleVisibility(ClipEditingModules module,
boolean visibility)
其中ClipEditingModules 是片段编辑模块枚举
public enum ClipEditingModules {
/** 视频调速 */
VIDEO_SPEED_CONTROL,
/** 设置图片时长 */
IMAGE_DURATION_CONTROL,
/** 复制 */
COPY,
/** 图片视频编辑 */
EDIT,
/** 视频比例 */
PROPORTION,
/** 调序 */
SORT,
/** 截取 */
TRIM,
/** 分割 */
SPLIT,
}
若选择自定义相册,将会回调以下接口:
com.rd.xpkuisdk.ISdkCallBack.getVideo(context) //添加视频
com.rd.xpkuisdk.ISdkCallBack.getPhoto(context)//添加图片
在上述方法中调用自定义相册,选择视频或图片完成后,将它们的路径通过调用以下方法完成选择:
com.rd.xpkuisdk.XpkSdk.onCustomizeAlbum(
Contextcontext, //应用上下文
ArrayList<String> medialist //视频或图片路径集合
)
b.导出视频配置类示例:
ExportConfiguration exportConfig = new ExportConfiguration.Builder()
//设置保存导出视频时的码流 单位M
.setVideoBitRate(bitRate)
//设置导出视频时长 单位ms(设置为0或默认不设置将导出完整视频)
.setVideoDuration(exportVideoDuration)
//设置导出视频保存路径(设null将保存到默认路径)
.setSavePath(savePath)
//设置视频片尾图片路径(设null将没有片尾)
.setTrailerPath(trailerPath)
//设置视频片尾时长 单位ms(默认为2000ms)
.setTrailerDuration(trailerDuration)
.get();
c.录制拍摄配置类示例:
CameraConfiguration cameraConfig = new CameraConfiguration.Builder()
//设置限制录制的视频时长 单位为秒 0代表没有时间限制
.setVideoMaxTime(maxTime)
//确定是否支持拍照模式下点击拍照按钮立即返回
.setTakePhotoReturn(taskPhotoReturn)
//设置录制时启动默认页面方式
.setCameraUIType(type)
//录制时静音
.setAudioMute(mute)
.get();
其中CameraUIType可选常量定义如下:
//代表默认启动16:9宽屏录制界面并可切换到1:1界面
CameraConfiguration.WIDE_SCREEN_CAN_CHANGE
//代表默认启动1:1界面并可切换到16:9宽屏录制界面
CameraConfiguration.SQUARE_SCREEN_CAN_CHANGE
//代表默认启动1:1界面并不可切换到16:9宽屏录制界面
CameraConfiguration.ONLY_SQUARE_SCREEN
指定配置参数例子:
XpkSdk.getXpksdkService().initConfiguration(
exportConfig, //导出配置
uiConfig, //界面配置
cameraConfig //录制拍摄配置 );
四、录制视频
1、录制视频或拍照
进入该界面调用以下接口:
public static void com.rd.xpkuisdk.onXpkCamera(
Context context, //应用上下文
boolean gotoEdit //是否录制完成后,进入高级编辑界面
)
录制视频或录制视频并编辑导出完成后将会回调以下接口:
com.rd.xpkuisdk.ISdkCallBack.getVideoPath(
context, //应用上下文
exportType,//编辑导出或录制完成后的回调类型
videoPath//视频路径
)
其中回调类型exportType参数值定义如下:
XpkSdk.XPK_CAMERA_EDIT_EXPORT //gotoEdit为true时,代表录制完成并编辑导出后的返回
XpkSdk.XPK_CAMERA_EXPORT //gotoEdit为false时,代表只是录制完成后的返回
五、编辑视频
1、进入sdk的功能界面 (选择媒体资源)
void com.rd.xpkuisdk.XpkSdk.onXpkVideo(Context context//应用上下文)
2、进入sdk的编辑界面 (直接进入编辑界面)
void com.rd.xpkuisdk.XpkSdk.onXpkEdit(
Context context,//应用上下文
ArrayList<String> list //媒体路径集合(可用的图片或视频的路径)
)
3、进入sdk的截取界面 (直接进入截取界面)
通过以下接口可以直接进入截取界面:
void com.rd.xpkuisdk.XpkSdk.onXpkTrimVideo(
Context context, //应用上下文
String videoPath, //媒体路径
String savePath,//视频截取后的保存路径 设置null 将会保存到默认路径.../xpk/xpkVideos/
String title, //标题栏文字内容 设置null标题将会设为“截取”
int titleBarColor, //标题栏背景色
String buttonCancelText, //取消按钮文字 设置null 将会显示图标 ×
String buttonConfirmText, //确认按钮文字 设置null 将会显示图标√
int buttonColor //按钮背景色
);
完成截取需分为两个步骤,第一步是先确认截取返回方式,第二步通过返回方式将最终的结果通过对应的回调接口进行返回。
第一步:确认截取返回方式
确认截取返回方式时将会回调以下接口:
com.rd.xpkuisdk.ISdkCallBack.getVideoTrim(
context,//应用上下文
exportType //回调类型
)
其中回调类型exportType参数值定义如下:
XpkSdk.XPK_TRIMVIDEO_EXPORT //普通截取
XpkSdk.XPK_TRIMVIDEO_DURATION_EXPORT //定长截取
第二步:设置截取返回方式
通过以下接口完成截取返回方式设置:
void com.rd.xpkuisdk.XpkSdk.onVideoTrim(
Context context, //应用上下文
XpkSdk.XPK_TRIMVIDEO_DURATION_EXPORT //定长截取
RETURN_TRIM_TIME = 1//返回截取时间
截取界面将会返回截取视频的开始和结束时间 并执行以下回调:
com.rd.xpkuisdk.ISdkCallBack.getVideoTrimTime(
context, //应用上下文
exportType,//返回截取时间回调类型
startTime,//开始时间(单位ms)
endTime //结束时间(单位ms)
)
其中回调类型exportType参数值定义如下:
XpkSdk.XPK_TRIMVIDEO_EXPORT //普通截取
XpkSdk.XPK_TRIMVIDEO_DURATION_EXPORT //定长截取
int returnType //需要给定的截取返回方式
)
其中截取返回方式returnType 参数值定义如下:
RETURN_TRIM_VIDEO = 0//返回截取后视频
完成截取并导出视频后将会回调以下接口:
com.rd.xpkuisdk.ISdkCallBack.getVideoPath(
context, //应用上下文
exportType,//截取并导出视频回调类型
videoPath//截取并导出后的视频路径
)
其中回调类型exportType参数值定义如下:
XpkSdk.XPK_TRIMVIDEO_EXPORT //普通截取
4、导出视频
编辑完成后,根据导出配置生成视频,导出完成后将会回调以下接口:
com.rd.xpkuisdk.ISdkCallBack.getVideoPath(
context, //应用上下文
exportType,//导出视频回调类型
videoPath//视频路径
)
其中回调类型exportType参数值定义如下:
XpkSdk.XPK_EDIT_EXPORT //普通编辑导出完成后的返回
XpkSdk.XPK_CAMERA_EDIT_EXPORT //代表录制完成并编辑导出后的返回
六、响应退出
应用结束时,需调用一下SDK的退出接口XpkSdk.exitApp,一般是在最后退出Activity中的onDestroy方法内,具体实现参见demo。
七、使用自定义播放器
com.rd.xpkuisdk.ui.XpkVideoView
1、在布局文件中添加播放器
2、播放器初始化
void com.rd.xpkuisdk.XpkVideoView.setPlayerListener(XpkPlayerListener listener)
3、播放器接口
setVideoPath(String videoPath) //设置视频路径
boolean isPlaying() //判断播放器是否正在播放
void start() //开始播放
void pause() //暂停播放
int getCurrentPosition() //获取当前播放进度
void seekTo(int position) //跳到指定播放位置(单位ms)
int getDuration() //获取媒体时长,单位ms
八、分享视频
暂无
九、视频水印
添加水印的方法,参见截图,将一个PNG图片放在assets目录下,固定名称为watermark.png
十、打包混淆
需要在proguard.cfg文件中添加如下配置项:
-dontwarn com.rd.**
-keep class com.rd.** { *; }
关于视频编辑SDK的接入说明的更多相关文章
- Android 视频编辑 SDK
Android 视频编辑 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...
- iOS视频编辑SDK
IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x72 ...
- RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK
1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率 ...
- iOS/Android 视频编辑SDK
锐动天地为开发者提供短视频编辑.特效.直播.录屏.编解码.视频转换,等多种解决方案,涵盖PC.iOS.Android多平台.以市场为导向,不断打磨并创新技术,在稳定性,兼容性,硬件设备效率优化上千捶百 ...
- LanSoEditor_common ---android平台的视频编辑SDK
当前版本是LanSoEditor-v1.4 主要使用在音视频的: 裁剪,剪切,分离,合并,转换,拼接,水印,叠加,混合,转码等场合; 我们是针对android平台对ffmpeg做了硬件加速优化,经过多 ...
- LanSoEditor_advance1.8.0 视频编辑的高级版本
------------------------------------------2017年1月11日11:18:33------------------------------------- 我们 ...
- 视频编辑SDK---我们只提供API,任你自由设计炫酷的功能
面对相对复杂的视频编辑处理技术,你是否束手无策? 在短视频应用中,有一定技术难度的视频编辑技术中,我们提出了一种全新的解决方法:画板和画笔.短视频处理,用画板和画笔,就够了! 我们设计了极其简单易懂的 ...
- Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API
1 RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能 RDVECore包含了丰富的基础功能,对于编辑中的视频.图片 ...
- 学会这几步,简单集成视频编辑原子能力SDK
华为视频编辑服务6.2.0版本上线后,我们为大家带来了两大变化:分别是丰富多样的AI能力和灵活选择的集成方式.为让开发者更快上手使用,今天小编带来了视频编辑原子能力SDK的具体集成方法.快来试试吧! ...
随机推荐
- JavaWeb 后端 <九> 之 JDBC加强
一.大结果集的分页(重点,难点) 1.分批次查询:分页 2.基于数据库的分页:依赖的是数据库的分页语句(不同数据库是不同的) MySQL:每页显示10条. select * from XXX limi ...
- ubuntu输入某个目录测试该目录里.C文件里代码行数shell脚本
#!/bin/bash echo "★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★☆ ★☆ ★☆★" echo "★☆ 统计代码行数 ☆★&qu ...
- vb编程代码大全
数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值 直接表示:&Hx ...
- JAVA实用案例之水印开发
写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...
- MongoDB的Windows安装
一.下载MongoDB安装文件 下载地址:http://pan.baidu.com/s/1nvEuDD3 二.双击下载的文件,根据向导一直到finish.比如安装目录为 d:\mongodb 1.创建 ...
- 51nod_1677:treecnt
题目是求一棵n节点树中对于C(n,k)颗子树,每棵子树为在n个节点中选不同的k个节点作为树的边界点,这样的所有子树共包含多少条边. 问题可以转化一下,对每一条边,不同的子树中可能包含可能不包含这条边, ...
- 微信小程序怎么用?线下商家最适合玩小程序
随着微信小程序不断地释放新功能,许多行业越来越关注小程序,目前已经有不少餐饮和线下传统零售企业开始谋划利用好小程序.但是,线下商业有着复杂的场景,如何针对自己行业的特点和需求开发出属于自己的小程序,是 ...
- Kibana5 数据探索使用(Discover功能)
认识Kibana Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口.可使用它对日志进行高效的搜索.可视化.分析等各种操作.Kibana的使用场景 ...
- ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常
简单说明:我们开发时多人开发,会频繁访问服务器数据库,结果当连接数大的时候,就会报ora-12516的错误,ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程"的异常 ...
- 准备 overlay 网络实验环境 - 每天5分钟玩转 Docker 容器技术(49)
为支持容器跨主机通信,Docker 提供了 overlay driver,使用户可以创建基于 VxLAN 的 overlay 网络.VxLAN 可将二层数据封装到 UDP 进行传输,VxLAN 提供与 ...