件是否屬于第N類之前的相應(yīng)類別。該路徑比較模塊1062的具體功能及處理參見步驟S410。通過將每個(gè)音頻文件的父類路徑和預(yù)設(shè)的類別的路徑進(jìn)行逐類比較的方式,判斷每個(gè)音頻文件的所屬類別,判斷方式可靠,判斷結(jié)果準(zhǔn)確性好。
[0085]在一個(gè)例子中,相同路徑處理模塊1064,用于當(dāng)確定相應(yīng)的音頻文件屬于第N類之前的相應(yīng)類別時(shí),將相應(yīng)的音頻文件歸類至該類別并進(jìn)行鏈表存儲(chǔ)。該相同路徑處理模塊1064的具體功能及處理參見步驟S420。通過對(duì)確認(rèn)類別的音頻文件進(jìn)行相應(yīng)歸類及鏈表存儲(chǔ),一方便使得確認(rèn)類別的音頻文件能夠準(zhǔn)確歸類,另一方面可以靈活使用系統(tǒng)內(nèi)存,方便用戶管理和使用。
[0086]其中,鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接次序?qū)崿F(xiàn)的。鏈表由一系列結(jié)點(diǎn)(鏈表中每一個(gè)元素稱為結(jié)點(diǎn))組成,結(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成。使用鏈表結(jié)構(gòu)可以克服數(shù)組鏈表需要預(yù)先知道數(shù)據(jù)大小的缺點(diǎn),鏈表結(jié)構(gòu)可以充分利用音頻文件所屬系統(tǒng)(例如:手機(jī)系統(tǒng))內(nèi)存空間,實(shí)現(xiàn)靈活的內(nèi)存動(dòng)態(tài)管理。
[0087]在一個(gè)例子中,不同路徑處理模塊1066,用于當(dāng)確定相應(yīng)的音頻文件不屬于第N類之前的相應(yīng)類別時(shí),將相應(yīng)的音頻文件歸類至第N類并存儲(chǔ)。該不同路徑處理模塊1066的具體功能及處理參見步驟S430。通過對(duì)無法確認(rèn)類別的音頻文件進(jìn)行集中存儲(chǔ)和管理,一方面可以減少少數(shù)文件(即無法確認(rèn)類別的音頻文件,一般數(shù)量較少)單獨(dú)存儲(chǔ)為相應(yīng)類別時(shí)占用的系統(tǒng)內(nèi)存和程序運(yùn)行時(shí)間,另一方面更方便用戶管理和查找,人性化更好。
[0088]在一個(gè)實(shí)施方式中,結(jié)果顯示單元108,用于對(duì)所述分類的結(jié)果進(jìn)行顯示。該結(jié)果顯示單元108的具體功能及處理參見步驟S140。通過基于音頻分類結(jié)果的顯示,可以為用戶提供一種基于音頻分類的音頻文件進(jìn)行加載和使用的方式,使得基于音頻分類的音頻文件的使用更加便捷、更加人性化。
[0089]優(yōu)選地,結(jié)果顯示單元108,包括:類別顯示模塊1082、文件顯示模塊1084和文件打開模塊1086。
[0090]在一個(gè)例子中,類別顯示模塊1082,用于將用戶界面與第一至N類中相應(yīng)的音頻文件進(jìn)行關(guān)聯(lián)后,將第一至N類顯示在預(yù)設(shè)的視圖顯示控件上。該類別顯示模塊1082的具體功能及處理參見步驟S510。優(yōu)選地,所述視圖顯示控件,包括:Li stView控件或GridView控件。通過將確認(rèn)類別的音頻文件與用戶界面進(jìn)行關(guān)聯(lián)并通過控件進(jìn)行顯示,使得用戶可以靈活使用和查看相應(yīng)的音頻文件,使用方便,使用體驗(yàn)好。
[0091]在一個(gè)例子中,文件顯示模塊1084,用于對(duì)所述視圖顯示控件進(jìn)行點(diǎn)擊監(jiān)聽,當(dāng)用戶點(diǎn)擊第一至N類中任一類時(shí),再次使用所述視圖顯示控件將該類的數(shù)組加載并顯示具體的音頻文件。該文件顯示模塊1084的具體功能及處理參見步驟S520。通過點(diǎn)擊監(jiān)聽的方式對(duì)音頻分類后的音頻文件進(jìn)行加載及顯示,可以減少相應(yīng)文件動(dòng)態(tài)存儲(chǔ)和鏈接過程中臨時(shí)文件占用的系統(tǒng)內(nèi)存,且可動(dòng)態(tài)更新,使得音頻文件的使用和管理更加人性化,用戶的體驗(yàn)也更加好。
[0092]在一個(gè)例子中,文件打開模塊1086,用于基于相應(yīng)類中具體的音頻文件的加載顯示,所述視圖顯示控件將相應(yīng)的音頻文件的大小、名稱的信息顯示在一個(gè)項(xiàng)中,用戶通過點(diǎn)擊相應(yīng)的項(xiàng)打開相應(yīng)的音頻文件。該文件打開模塊1086的具體功能及處理參見步驟S530。通過加載顯示的方式,打開明確顯示有具體信息的音頻文件,使得用戶選擇更加方便、直觀,更加提高了用戶的使用體驗(yàn)。
[0093]可選地,通過結(jié)果顯示單元108,可以為用戶提供一種基于音頻分類的音頻文件進(jìn)行加載和使用的方式,使得基于音頻分類的音頻文件的使用更加便捷、更加人性化。
[0094]由于本實(shí)施例的裝置所實(shí)現(xiàn)的處理及功能基本相應(yīng)于前述圖1至圖5所示的方法的實(shí)施例、原理和實(shí)例,故本實(shí)施例的描述中未詳盡之處,可以參見前述實(shí)施例中的相關(guān)說明,在此不做贅述。
[0095]經(jīng)大量的試驗(yàn)驗(yàn)證,采用本發(fā)明的技術(shù)方案,通過對(duì)手機(jī)的內(nèi)存全盤掃描,通過文件后綴名的比較來判斷掃描到的文件是否屬于音頻文件,如果是音頻文件,就獲取文件的父類路徑(例如:使用getParent()方法),通過父類路徑來判斷該文件是否是屬于音樂播放器的存放路徑、FM錄音的存放路徑、電話錄音的存放路徑,根據(jù)判斷結(jié)果進(jìn)行分類并進(jìn)行鏈表存儲(chǔ),如果都不屬于這三個(gè)存放路徑則歸類為其他這個(gè)分類,從而提高用戶體驗(yàn)。
[0096]根據(jù)本發(fā)明的實(shí)施例,還提供了對(duì)應(yīng)于音頻文件的分類裝置的一種文件管理器。該文件管理器包括:以上所述的音頻文件的分類裝置。
[0097]例如:參見圖7、圖8所示的例子,該文件管理器中的一種音頻分類的實(shí)現(xiàn)步驟,可以包括:
[0098]步驟一、先查找出音頻文件:進(jìn)入應(yīng)用采用for循環(huán)(編程語言中的語句之一,用于循環(huán)執(zhí)行)的方法進(jìn)行手機(jī)內(nèi)存的文件的查找,在for循環(huán)的實(shí)現(xiàn)過程中不僅要查找文件,還要將文件逐個(gè)利用File(本地文件傳輸協(xié)議)類中g(shù)etNameO方法(返回的是指向用戶輸入的字符的指針)來獲取文件的名稱,再通過公用方法lastIndeX0f()(可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索)取得后綴名,通過后綴名的比較實(shí)現(xiàn)音頻文件的判斷與挑選,將全部的音頻文件的路徑存放在一個(gè)ArrayLi st。
[0099]步驟二、將上面得到的ArrayList(動(dòng)態(tài)數(shù)組)通過for循環(huán)獲取每個(gè)文件的路徑,根據(jù)路徑生成File文件,然后通過File類的getParentO方法得到每個(gè)音頻文件的父類的路徑,將得到的父類路徑跟我們已知的音樂播放器的路徑、FM錄音的路徑、電話錄音的路徑對(duì)比,進(jìn)行分類,如果該文件的父類不屬于前面所列舉的路徑則歸為其他分類,根據(jù)分類的結(jié)果將每個(gè)文件的路徑存儲(chǔ)到各個(gè)分類下的ArrayList,以便后面的文件顯示的來源。
[0100]其中,getParentO方法是windows平臺(tái)的SDK(SoftwareDevelopment Kit,是軟件開發(fā)用到的代碼包,安裝相應(yīng)開發(fā)語言用的SDK包后,就可以開發(fā)相應(yīng)語言的軟件)函數(shù),該函數(shù)功能:該函數(shù)獲得一個(gè)指定子窗口的父窗口句柄。
[0101]如果函數(shù)成功,返回值為父窗口句柄。如果窗口無父窗口,則函數(shù)返回NULL(空值)。若想獲得更多錯(cuò)誤信息,請(qǐng)調(diào)用GetLastError函數(shù)。其中,GetLastError返回的值通過在 api 函數(shù)中調(diào)用SetLastError 或SetLastErrorEx 設(shè)置。
[0102]優(yōu)選地,在進(jìn)行文件分類時(shí)步驟一和步驟二可以在同一個(gè)循環(huán)中實(shí)現(xiàn),不用分開。
[0103]步驟三、至此,所需要的文件來源已經(jīng)獲取,也就是分類已經(jīng)完成,分類結(jié)果就是存放著播放器的文件的ArrayList、FM錄音的ArrayLi st、電話錄音的ArrayList、其他分類Arrylist;在Activity(是一個(gè)應(yīng)用程序組件,提供一個(gè)屏幕,用戶可以用來交互為了完成某項(xiàng)任務(wù);該應(yīng)用程序組件中所有操作都與用戶密切相關(guān),是一個(gè)負(fù)責(zé)與用戶交互的組件)上通過ListView來加載顯示分類,使用Adapter (適配器)將四個(gè)分類顯示在ListView控件上,適配器主要作用是將UKUser Interface,用戶界面)布局與數(shù)據(jù)進(jìn)行關(guān)聯(lián),效果如圖8所示,對(duì)Li stView進(jìn)行點(diǎn)擊監(jiān)聽,當(dāng)用戶點(diǎn)擊其中一類時(shí),再次使用Li stView將該類中的ArrayList加載顯示具體的文件。優(yōu)選地,具體實(shí)施時(shí)Li stView控件可以用GridView控件代替。
[0104]其中,ListView控件可使用四種不同視圖顯示項(xiàng)目,通過ListView控件,可將項(xiàng)目組成帶有或不帶有列標(biāo)頭的列,并顯示伴隨的圖標(biāo)和文本。GridView控件提供了與ListView控件相同的基本功能集,同時(shí)增加了大量擴(kuò)展和改進(jìn),是一個(gè)功能非常強(qiáng)大的通用控件。
[0105]步驟四、當(dāng)進(jìn)入具體的分類下,ListView將文件的大小、名稱生成時(shí)間的信息顯示在每一個(gè)item(項(xiàng))中,點(diǎn)擊item可以打開該音樂文件。
[0106