關於視頻編輯SDK的接入說明,視頻編輯sdk接入

來源:互聯網
上載者:User

關於視頻編輯SDK的接入說明,視頻編輯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 

 

三、下載並匯入SDK1、 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項目進行的,需要根據實際Integration Environment進行修改。

參考如下:

 

 

添加完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.** { *; } 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.