Android視頻壓縮並且上傳
一,做視頻上傳首先第一步要從相冊裏選取視頻,這一步。我的上篇博客中已經講過了。
需要的看上篇博客的地址:https://www.cnblogs.com/wzqnxd/p/10038881.html
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 66 && resultCode == RESULT_OK && null != data) { Uri selectedVideo = data.getData(); String[] filePathColumn = {MediaStore.Video.Media.DATA}; Cursor cursor = getContentResolver().query(selectedVideo, filePathColumn, null, null, null); cursor.moveToFirst(); int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String videopath = cursor.getString(columnIndex); cursor.close(); submit_vd_ad.setText(VIDEOPATH); } if (resultCode != Activity.RESULT_OK) { return; } }
看這裏的代碼videopath ,就是選擇好視頻後的地址了。
二,得到了視頻的地址,我們一般就要對視頻進行壓縮了,也就是我們今天的重點。
視頻壓縮,網上的例子和demo五花八門,比比皆是。但是你下載下來,一運行總是存在這樣那樣的問題,無法滿足自己的需求。可能你差一步就成功了,但是最終你還是有不明白的地方放棄了。
今天android君,就給大家推薦一個非常好用的視頻壓縮工具,並且是踩完坑的介紹。呵呵
這裏先附上庫的github鏈接地址:https://github.com/Tourenathan-G5organisation/SiliCompressor。
自己親自試了一下,壓縮的速度還挺快的,而且壓縮完視頻清晰度也是不錯的,極力推薦使用,最主要的是使用也很方便就是一句代碼的事,並附帶加上註意事項(非常重要)
new Thread() { @Override public void run() { super.run(); try { /** * 視頻壓縮 * 第一個參數:視頻源文件路徑 * 第二個參數:壓縮後視頻保存的路徑 */ String comPressPath = SiliCompressor.with(getActivity()).compressVideo(filePath, dirPath); // if (!StringUtil.isEmpty(comPressPath)) { // notCompressedVideo.setCompressPath(comPressPath); // compressVideo(); // } else { // stopCompress("失敗"); // } } catch (URISyntaxException e) { e.printStackTrace(); } } }.start();
這裏有兩個問題需要註意:1,就是要放到子線程執行。
2,(重要):都看到只需要執行一行代碼,但是裏面的參數你弄懂了嗎。第一個參數一目了然不需多講,就是我們返回的文件地址。
第二個參數是壓縮後保存的路徑,註意這個地址一定要是你目錄中存在的,這個地址你如果寫不對基本你就會一直搞不對。例如你的地址是storage/0,那麽返回的comPressPath就是storage/0/xxx;
你如果真沒弄對弄懂。就這樣寫肯定沒錯。
String path= SiliCompressor.with(activity).compressVideo(videopath ,Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath());
好了,講到這裏就可以上傳了。你們可以參考我的demo;
demo中用了原生HttpURLConnection提交文件上傳(用的這種)和okttp兩種方式(我註釋掉了,可以直接打開);
有問題歡迎留言,稍後奉上demo下載地址和項目截圖;
地址:https://download.csdn.net/download/heishuai123/10816897
Android視頻壓縮並且上傳