本發(fā)明涉及家用智能設(shè)備領(lǐng)域,尤其涉及異步快速加載視頻縮略圖的方法。
背景技術(shù):
現(xiàn)今家用智能設(shè)備的發(fā)展和網(wǎng)絡(luò)的聯(lián)系越來(lái)越緊密,通過(guò)網(wǎng)絡(luò)的方式將眾多的電子設(shè)備聯(lián)系到了一起,各種設(shè)備之間互聯(lián)的技術(shù)也日趨成熟。如一種智能設(shè)備的互聯(lián)也已經(jīng)開(kāi)始廣泛的進(jìn)入普通用戶的家庭,通過(guò)與電視機(jī)連接實(shí)現(xiàn)了多媒體的功能。如實(shí)現(xiàn)媒體功能,需要大量的視頻資源才能滿足用戶的需求,用戶在視頻資源庫(kù)內(nèi)挑選視頻資源時(shí),特別是挑選自己喜歡的視頻資源,需要事先了解視頻的內(nèi)容,需要從其他途徑去了解,對(duì)于不熟悉或者一無(wú)所知的視頻資源需要?jiǎng)t需要播放該視頻,進(jìn)行拖動(dòng)播放去了解,對(duì)于用戶而言,這樣的體驗(yàn)是非常原始的,通常篩選合適的視頻資源就花去了大量的時(shí)間。對(duì)于這樣的缺陷,現(xiàn)有的做法是通過(guò)文字簡(jiǎn)介,讓用戶了解其內(nèi)容,但文字簡(jiǎn)介內(nèi)容是比較單薄的,通過(guò)對(duì)視頻截圖的方式,讓用戶更快更直觀地了解視頻內(nèi)容,如何快速加載視頻縮略圖是我們需要解決的問(wèn)題。。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題,在不影響界面流暢性的前提下,快速地加載多個(gè)視頻縮略圖顯示在界面上,其包括以下技術(shù)方案:
異步快速加載視頻縮略圖的方法,包括:
步驟1,智能設(shè)備開(kāi)啟一個(gè)限定同一時(shí)間里的加載視頻縮略圖任務(wù)的數(shù)量的線程池;
步驟2,智能設(shè)備建立一個(gè)內(nèi)存管理,以及本地文件緩存管理;
步驟3,智能設(shè)備界面需要顯示視頻縮略圖時(shí),將開(kāi)啟一個(gè)子線程在線程池里面運(yùn)行;
步驟4,子線程根據(jù)視頻的地址,生成一個(gè)32位的md5值的URL,通過(guò)該URL去查找縮略圖,保存該縮略圖;
步驟5,智能設(shè)備將視頻縮略圖進(jìn)行解析并顯示。
首先查找內(nèi)存以及本地文件緩存中是否存在該視頻的縮略圖數(shù)據(jù),如果存在,那么將直接獲取該數(shù)據(jù)進(jìn)行解析并顯示在界面中。
內(nèi)存以及本地文件緩存中,沒(méi)有保存縮略圖時(shí),將從視頻的原文件中,截取該視頻縮略圖,截取之后,將該視頻縮略圖數(shù)據(jù),存儲(chǔ)到內(nèi)存以及本地文件緩存中。
本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果:
本發(fā)明通過(guò)內(nèi)存或者本地文件緩存中獲取數(shù)據(jù),可以大大的提高加載視頻縮略圖的速度。
附圖說(shuō)明
圖1為本發(fā)明的移動(dòng)端同步模擬智能設(shè)備界面的改良方法的流程框圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)的描述。
如圖1所示,在本發(fā)明前具體實(shí)施例中,方法包括:
S1,智能設(shè)備開(kāi)啟一個(gè)限定同一時(shí)間里的加載視頻縮略圖任務(wù)的數(shù)量的線程池;
S2,智能設(shè)備建立一個(gè)內(nèi)存管理,以及本地文件緩存管理;
S3,智能設(shè)備界面需要顯示視頻縮略圖時(shí),將開(kāi)啟一個(gè)子線程在線程池里面運(yùn)行;
S4,子線程根據(jù)視頻的地址,生成一個(gè)32位的md5值的URL,通過(guò)該URL去查找縮略圖,保存該縮略圖;
S5,智能設(shè)備將視頻縮略圖進(jìn)行解析并顯示。
以下對(duì)上述步驟進(jìn)行詳細(xì)說(shuō)明。
本發(fā)明的智能設(shè)備是一個(gè)擁有智能系統(tǒng)的家用多媒體設(shè)備,除了安裝的系統(tǒng)軟件,硬件部分包括CPU、存儲(chǔ)器等等。本本發(fā)明的視頻投射技術(shù)中,還包括用于與智能設(shè)備連接,并顯示智能設(shè)備內(nèi)容的顯示裝置。首先,在智能設(shè)備的后臺(tái)開(kāi)啟一個(gè)線程池,將加載視頻縮略圖的子線程都放在該線程池中運(yùn)行,提高子線程的開(kāi)啟速度,限定同一時(shí)間內(nèi)子線程運(yùn)行的數(shù)量,避免因過(guò)量的線程導(dǎo)致智能設(shè)備運(yùn)行緩慢。
同時(shí)在后臺(tái)創(chuàng)建一個(gè)內(nèi)存管理類,Android系統(tǒng)提供了LruCache這個(gè)類,可以限定可使用的最大內(nèi)存值,并且在系統(tǒng)的內(nèi)存不足時(shí),系統(tǒng)會(huì)自動(dòng)地回收該內(nèi)存以保證系統(tǒng)的流暢性。
創(chuàng)建一個(gè)本地文件緩存管理類,將數(shù)據(jù)直接以文件的形式保存在本地,并且限定可使用的最大空間。
智能設(shè)備的界面需顯示視頻縮略圖時(shí),可以在后臺(tái)創(chuàng)建一個(gè)線程,將視頻地址以及需要顯示的控件傳遞到線程中,然后將該線程添加到線程池里面,由線程池去管理該線程的運(yùn)行。
上述線程運(yùn)行時(shí),首先根據(jù)視頻的地址,按照MD5的加密算法生成一個(gè)URL(URL也可以理解為是一個(gè)標(biāo)記),將需要顯示的界面控件打上這個(gè)標(biāo)記,當(dāng)視頻縮略圖獲取完成之后,再次判斷,該控件的標(biāo)記是否與當(dāng)前的一致,如果一致才進(jìn)行顯示,如果不一致,那么將直接結(jié)束這個(gè)線程。這樣可以防止,多線程同時(shí)使用這個(gè)控件時(shí)造成縮略圖顯示錯(cuò)誤的問(wèn)題。
根據(jù)生成的URL去檢索內(nèi)存中是否存在該縮略圖數(shù)據(jù),如果存在,那么直接從內(nèi)存中取出該數(shù)據(jù)進(jìn)行顯示,這時(shí)候,整個(gè)加載流程結(jié)束,并且從內(nèi)存中取數(shù)據(jù)速度是最快的。
如果內(nèi)存中沒(méi)有該數(shù)據(jù),那么根據(jù)生成的URL去檢索本地文件緩存中是否存在該縮略圖數(shù)據(jù),如果存在,那么從本地文件緩存中獲取數(shù)據(jù),將該數(shù)據(jù)保存在內(nèi)存中,便于下次獲取時(shí)能夠從內(nèi)存中快速地取得數(shù)據(jù),然后解析該數(shù)據(jù)顯示在界面中,這時(shí)候,整個(gè)加載流程結(jié)束。速度相比于從內(nèi)存中稍慢。
如果沒(méi)有從內(nèi)存以及本地緩存中獲取到數(shù)據(jù)的話,那么將直接根據(jù)原文件,截取對(duì)應(yīng)的視頻縮略圖,截取完成之后,將該數(shù)據(jù)保存在內(nèi)存以及本地文件緩存中,用于下一次顯示的時(shí)候,能夠從內(nèi)存或者本地級(jí)存中快速的獲取數(shù)據(jù)解析并顯示。
以上內(nèi)容僅為本發(fā)明的較佳實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。