一種Android系統中視頻縮略圖的生成方法和系統的制作方法
【專利摘要】本發明公開了一種Android系統中視頻縮略圖的生成方法和系統,其中,所述方法包括:首先,根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;然后將所述數據信息轉化為jepg格式的數據信息,并根據所述jepg格式的數據信息生成一位圖保存下來;最后將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。使相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,擴展了Android系統本身創建縮略圖的方法,且所述生成方法步驟簡單,生成的視頻縮略圖容易管理、易于為第三方應用使用,同時,該生成方法還具有效率高、資源消耗少等優點,具有很好的推廣應用前景。
【專利說明】一種Android系統中視頻縮略圖的生成方法和系統
【技術領域】
[0001]本發明涉及Android系統【技術領域】,尤其涉及一種Android系統中視頻縮略圖的生成方法和系統。
【背景技術】
[0002]縮略圖是一種代表網頁上或計算機中圖片經壓縮方式處理后的小圖,其中通常會包含指向完整大小的圖片的超鏈接。因其小巧,加載速度非常快,故用于快速瀏覽,起到圖片文件預覽及目錄的作用。[0003]基于Android系統的camera (相機)應用程序,已支持多種存儲設備的錄制視頻的存儲。因此,在錄制視頻之后對視頻的縮略圖的生成也不能采用原來的Android系統的方式進行生成,因為原先的Android系統的視頻縮略圖的生成是基于sd卡存儲設備的,對于其他存儲路徑例如:內存、U盤等都是不支持的(不支持的原因在于:由于android系統本身設計并沒有支持U盤存儲和flash存儲等,因此在設計視頻縮略圖的時候并沒有考慮需要支持除sd以外的其他存儲設備)。
[0004]同時,由于硬件在處理速度以及效率的原因,原生的Android系統的生成視頻縮略圖的方法比較耗費資源(特別在現在智能電視上面)當硬件本身的性能達不到,或者系統中其他需求需要消耗大量的硬件資源的時候,硬件本身就需要有更加強大的性能,解決的方法必須增加硬件性能。
[0005]現有的Android系統成生視頻縮略圖的方法消耗大量資源,影響系統整體性能。因此在很多系統當中對視頻縮略圖都采用屏蔽的方式,這樣大大影響了系統的用戶體驗效果O
[0006]有鑒于此,現有技術有待改進和提聞。
【發明內容】
[0007]鑒于現有技術的不足,本發明目的在于提供一種Android系統中視頻縮略圖的生成方法和系統。旨在解決現有技術的Android系統中生成視頻縮略圖時存在的系統耗費資源過大的問題。
[0008]本發明的技術方案如下:
一種Android系統中視頻縮略圖的生成方法,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,其中,所述生成方法依次包括以下步驟:
A、根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;
B、將所述數據信息轉化為^pg格式的數據信息,并根據所述^pg格式的數據信息生成位圖保存;
C、將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖;
所述的Android系統中視頻縮略圖的生成方法,其中,還包括步驟:
D、當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。[0009]所述的Android系統中視頻縮略圖的生成方法,其中,還包括步驟:
E、第三方應用通過獲取所述位圖實現調用視頻縮略圖。
[0010]所述的Android系統中視頻縮略圖的生成方法,其中,所述步驟A中具體包括:
Al、定義一 previewCalIback函數,并重寫所述函數中的onPreviewFrame函數,所述
onPreviewFrame 函數包括 data 數據;
A2、通過onPreviewFrame函數中的data數據,獲得設置監聽之后的當前視頻界面某一幀的數據信息。
[0011]所述的Android系統中視頻縮略圖的生成方法,其中,所述視頻縮略圖保存在相機應用程序所對應的存儲位置內。
[0012]所述的Android系統中視頻縮略圖的生成方法,其中,所述步驟D中刪除所述視頻縮略圖采用以下步驟:
創建deIeteVideoThumb函數,通過deIeteVideoThumb函數刪除所述視頻縮略圖。
[0013]所述的Android系統中視頻縮略圖的生成方法,其中,還包括步驟:
F、相機應用程序結束錄制視頻時,獲得視頻最后一幀的數據信息,并依次采用步驟B、C形成最后一巾貞的視頻縮略圖。
[0014]一種Android系統中視頻縮略圖的生成系統,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,其中,所述系統與相機應用程序的錄像模塊相連接,其中,所述系統包括:
采集單元,用于根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;
轉化單元,用于將所述數據信息轉化為j印g格式的數據信息,并根據所述j印g格式的數據信息生成一位圖保存下來;
對應單元,用于將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。
[0015]所述的Android系統中視頻縮略圖的生成系統,其中,還包括刪除單元,用于當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。
[0016]所述的Android系統中視頻縮略圖的生成系統,其中,還包括供應單元,用于第三方應用通過獲取所述位圖實現調用視頻縮略圖。
[0017]有益效果:
本發明的Android系統中視頻縮略圖的生成方法和系統,使相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,擴展了 Android系統本身創建縮略圖的方法,且所述生成方法步驟簡單,生成的視頻縮略圖容易管理、易于為第三方應用使用,同時,該生成方法還具有效率高、資源消耗少等優點,具有很好的推廣應用前景。
【專利附圖】
【附圖說明】
[0018]圖1為本發明的Android系統中視頻縮略圖的生成方法的流程圖。
[0019]圖2為本發明的Android系統中視頻縮略圖的生成系統的結構框圖。
【具體實施方式】
[0020]本發明提供一種Android系統中視頻縮略圖的生成方法和系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0021]請參閱圖1,其為本發明的Android系統中視頻縮略圖的生成方法的流程圖。如圖所示,所述Android系統中視頻縮略圖的生成方法,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,所述生成方法依次包括以下步驟:
51、根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;
52、將所述數據信息轉化為j印g格式的數據信息,并根據所述jpeg格式的數據信息生成一位圖保存下來;
53、將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。
[0022]下面分別針對上述步驟進行詳細描述:
所述步驟SI為根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息。具體來說,相機應用程序錄制視頻開始后,監聽視頻界面,并根據用戶的指令在監聽到的視頻界面的幀序列中選取一幅幀圖像,獲得所述幀圖像的數據信息。在本實施例中,通過定義一previewCalIback函數,并重寫所述函數中的onPreviewFrame函數,所述onPreviewFrame函數包括data數據;再通過onPreviewFrame函數中的data數據,獲得設置監聽之后的當前視頻界面某一幀的數據信息。
[0023]所述步驟S2為將所述數據信息轉化為j印g格式的數據信息,并根據所述j印g格式的數據信息生成一位圖保存下來。由于onPreviewFrame函數回調中傳來的數據(即某一幀的數據信息)為YUV數據源,因此需要首先把這個數據轉化成jepg格式的數據信息,才能生成位圖Bitmap。具體來說,通過Android系統的接口 YuvImage對象可以把YUV數據轉化成jepg格式的數據。然后再把jepg格式的數據生成一個位圖Bitmap。
[0024]在本實施例中,通過下述代碼即可實現將YUV數據轉化為相應的位圖數據: Bitmap:
yuvimage= new YuvImage(data, ImageFormat.NV21, width, height, null);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yuvimage.compressToJpeg(new Rect(0,0,widht,height),100,stream);
Bitmap bitmap = BitmapFactory.decodeByteArray(stream.toByteArray(), 0,
stream, size (),options)
所述步驟S3為將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。在本實施例中,在相機應用程序的視圖上顯示當前錄制視頻縮略圖中釆用了一個優化算法,進一步提高用戶體驗效果。算法如下:
在生成縮略圖模塊中,倉Il建一個更新縮略圖顯示的函數updateDisplay O,該函數實現動畫更新控制功能。該方法中釆用TransitionDrawable函數,通過TransitionDrawable的startTransition方法啟動動畫。
[0025]定義一個setViewImageDrawable (View v)函數,該函數實現的功能就是為了實現可以在視圖V上面顯示視頻縮略圖的方法。
[0026]Drawable thumbs [] ;//定義一個存儲縮略圖的數據 if thumbs 等于 null {
thumbs = new Drawable[2]
thumbs[I] = (Drawable) bitmap;drawable = thumbs[I]
}else {
thumbs[0] = thumbs[I]
thumbs[I] = (Drawable)bitmap;
mTransitionDrawabIe = TransitionDrawable (thumbs)
drawable = mTran s i t i onDrawabIe
}
v.setImageDrawabIe(drawable)
在本實施例中,本發明的Android系統中視頻縮略圖的生成方法通過相機應用程序把自身需要顯不的視圖提供給setViewImageDrawable,并通過TransitionDrawable函數實現動畫顯示縮略圖。再通過updateDisplay調用TransitionDrawable函數中的更新動畫方法,更新動畫。相機應用程序通過調用updateDisplay,啟動動畫顯示。
[0027]進一步地,所述的Android系統中視頻縮略圖的生成方法還包括步驟:
54、當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。在本實施例中,通過創建函數deIeteVideoThumb O ,用來刪除相機錄制視頻之后生成的視頻縮略圖文件,該deIeteVideoThumb O函數主要功能是為了刪除視頻縮略圖文件。當視頻錄像沒有保存成功,錄制視頻文件失敗時候以及其他異常情況導致需要刪除視頻縮略圖的時候使用。
[0028]更進一步地,所述的Android系統中視頻縮略圖的生成方法還包括步驟:
55、第三方應用通過獲取所述位圖實現調用視頻縮略圖。通過創建函數createVideoThumb O ,該函數的功能是在相機應用程序錄制視頻選擇的存儲位置(U盤、sd卡和內存)里面創建一個保存視頻縮略圖(在本步驟所述的視頻縮略圖指位圖)的文件。當開始錄制視頻的時候,根據錄制視頻時候選擇的存儲路徑,以及創建錄制視頻的名稱,使用生成縮略圖模塊中的createVideoThumb O方法創建一個名稱和錄制視頻名稱一樣的文件。注:文件的擴展名不一樣。視頻文件為3gp,縮略圖為jpg。該文件用來存儲錄制視頻的視頻縮略圖。
[0029]另外,所述的Android系統中視頻縮略圖的生成方法中,相機應用程序結束錄制視頻時,米用 setOneShotPreviewCallback(previewCalIback)函數啟動步驟一中定義的 previewCalIback 函數,該函數中的回調函數 onPreviewFrame (byte [] data, Cameracamera)會被觸發,onPreviewFrame (byte [] data, Camera camera)函數中 data 數據信息就是當前一幀的數據信息,這樣就達到了結束錄制視頻時候通過回調函數獲得當前相機的一中貞數據信息。
[0030]本發明還提供了一種Android系統中視頻縮略圖的生成系統,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,如圖2所示,所述系統與相機應用程序的錄像模塊相連接,其中,所述系統包括:
采集單元100,用于根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;
轉化單元200,用于將所述數據信息轉化為^pg格式的數據信息,并根據所述^pg格式的數據信息生成一位圖保存下來;
對應單元300,用于將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。
[0031]進一步地,所述的Android系統中 視頻縮略圖的生成系統中,還包括刪除單元,用于當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。
[0032]更進一步地,所述的Android系統中視頻縮略圖的生成系統中,還包括供應單元,用于第三方應用通過獲取所述位圖實現調用視頻縮略圖。
[0033]因為上述模塊的具體實施細節都在Android系統中視頻縮略圖的生成方法中進行了詳細描述,這里就不再贅述了。
[0034]綜上所述,本發明的Android系統中視頻縮略圖的生成方法和系統,其中,所述方法包括:首先,根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息;然后將所述數據信息轉化為^pg格式的數據信息,并根據所述^pg格式的數據信息生成一位圖保存下來;最后將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。使相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,擴展了 Android系統本身創建縮略圖的方法,且所述生成方法步驟簡單,生成的視頻縮略圖容易管理、易于為第三方應用使用,同時,該生成方法還具有效率高、資源消耗少等優點,具有很好的推廣應用前景。[0035]應當理解的是,本發明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
【權利要求】
1.一種Android系統中視頻縮略圖的生成方法,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,其特征在于,所述生成方法依次包括以下步驟: A、根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息; B、將所述數據信息轉化為^pg格式的數據信息,并根據所述^pg格式的數據信息生成位圖保存下來; C、將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。
2.根據權利要求1所述的Android系統中視頻縮略圖的生成方法,其特征在于,還包括步驟: D、當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。
3.根據權利要求1或2所述的Android系統中視頻縮略圖的生成方法,其特征在于,還包括步驟: E、第三方應用通過獲取所述位圖實現調用視頻縮略圖。
4.根據權利要求1所述的Android系統中視頻縮略圖的生成方法,其特征在于,所述步驟A中具體包括: Al、定義previewCalI back函數,并重寫所述函數中的onPreviewFrame函數,所述onPreviewFrame 函數包括 data 數據; A2、通過onPreviewFrame 函數中的data數據,獲得設置監聽之后的當前視頻界面某一幀的數據信息。
5.根據權利要求1所述的Android系統中視頻縮略圖的生成方法,其特征在于,所述視頻縮略圖保存在相機應用程序所對應的存儲位置內。
6.根據權利要求2所述的Android系統中視頻縮略圖的生成方法,其特征在于,所述步驟D中刪除所述視頻縮略圖采用以下步驟: 創建一 deIeteVideoThumb函數,通過所述deIeteVideoThumb函數刪除所述視頻縮略圖。
7.根據權利要求1所述的Android系統中視頻縮略圖的生成方法,其特征在于,還包括步驟: F、相機應用程序結束錄制視頻時,獲得視頻最后一幀的數據信息,并依次采用步驟B、C形成最后一幀的視頻縮略圖。
8.—種Android系統中視頻縮略圖的生成系統,用于相機應用程序在錄制視頻時在視圖上顯示視頻縮略圖,其特征在于,所述系統與相機應用程序的錄像模塊相連接,其中,所述系統包括: 采集單元,用于根據用戶指令獲取監聽到的視頻界面的相應幀的數據信息; 轉化單元,用于將所述數據信息轉化為j印g格式的數據信息,并根據所述j印g格式的數據信息生成一位圖保存下來; 對應單元,用于將所述位圖提供給相機應用程序的視圖上,形成視頻縮略圖。
9.根據權利要求8所述的Android系統中視頻縮略圖的生成系統,其特征在于,還包括刪除單元,用于當視頻錄像沒有保存成功或錄制視頻失敗時,刪除所述視頻縮略圖。
10.根據權利要求8或9所述的Android系統中視頻縮略圖的生成系統,其特征在于,還包括供應單元,用于第三方應用通過獲取所述位圖實現調用視頻縮略圖。
【文檔編號】G06F9/44GK103544221SQ201310457166
【公開日】2014年1月29日 申請日期:2013年9月30日 優先權日:2013年9月30日
【發明者】郝占峰 申請人:Tcl集團股份有限公司