一、运行环境 Android 4.1(api 16)以上; 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86、MIPS暂不支持);推荐四核1.2GHz以上CPU 内存:1 GB以上;
二、注册申请AppKey和APPSECRET2、 登录注册好的用户 3、 进入视频云管理 点击(新增)获取应用的 appkey 、appsecret
三、下载并导入SDK1、[size=1.17em] Android Studio 导入xpkUISdk点击File--->Import Module,选择路径,填写“Module name”,默认为xpkUISdk,点击“finish”。 之后点击File---> roject Structure,选择你自己工程的Module,在Flavors选项卡中设置Min Sdk Version 不低于16 然后切换到Dependencies选项卡并点击右侧“+”号在弹出的下拉菜单选择Module Dependency点击。 弹出的小窗口中选择SDK相关的Modules,“OK” 添加成功后点击Project Structure设置界面的“OK”完成导入工作。
关于集成NDK SO库引发冲突解决办法如下:步骤一:sdk library模块过滤
步骤二:application模块中过滤 编辑SDK NDK包含以下架构的SO库: 建议在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导入xpkUISdk3、 准备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界面 [url=]CameraConfiguration.WIDE_SCREEN_CAN_CHANGE[/url] //代表默认启动1:1界面并可切换到16:9宽屏录制界面 [url=]CameraConfiguration.SQUARE_SCREEN_CAN_CHANGE[/url] //代表默认启动1:1界面并不可切换到16:9宽屏录制界面 [url=]CameraConfiguration.ONLY_SQUARE_SCREEN[/url] 指定配置参数例子: 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.[url=]XpkSdk[/url].onXpkVideo([url=]Context[/url] context//应用上下文) 2、进入sdk的编辑界面 (直接进入编辑界面)void com.rd.xpkuisdk.[url=]XpkSdk[/url].onXpkEdit( [url=]Context[/url] context,//应用上下文 ArrayList<String> list //媒体路径集合(可用的图片或视频的路径) ) 3、进入sdk的截取界面 (直接进入截取界面)通过以下接口可以直接进入截取界面: void com.rd.xpkuisdk.[url=]XpkSdk[/url].onXpkTrimVideo( [url=]Context[/url] 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.** { *; }
|