文件內(nèi)容讀取方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件播放技術(shù)領(lǐng)域,特別是涉及一種文件內(nèi)容讀取方法和裝置。
【背景技術(shù)】
[0002]MKV是Matroska的一種媒體文件,而Matroska是一種新的多媒體封裝格式,也稱多媒體容器(Multimedia Container)。MKV文件可將多種不同編碼的視頻及16條以上不同格式的音頻和不同語言的字幕流封裝到一個(gè)Matroska Media文件當(dāng)中。MKV文件最大的特點(diǎn)就是能容納多種不同類型編碼的視頻、音頻及字幕流。
[0003]而隨著用戶對文件的個(gè)性化的播放需要,MKV擴(kuò)展文件已成為技術(shù)人員所研究的熱點(diǎn)。MKV擴(kuò)展文件是在MKV的基礎(chǔ)上增加了多個(gè)邏輯數(shù)據(jù)段后生成的新格式的文件。MKV擴(kuò)展文件生成后由相應(yīng)的服務(wù)器進(jìn)行管理。在進(jìn)行MKV擴(kuò)展文件播放時(shí),播放器可以通過有線或者無線的方式連接到服務(wù)器,然后從服務(wù)器中讀取所需的文件內(nèi)容進(jìn)行播放。
[0004]目前,播放器在對文件內(nèi)容進(jìn)行讀取時(shí),需要從文件的第一個(gè)數(shù)據(jù)段開始進(jìn)行讀取,然后按照各邏輯數(shù)據(jù)段在文件中的排列順序依次讀取各邏輯數(shù)據(jù)段中存儲的數(shù)據(jù),直至讀取到所需的數(shù)據(jù)后再進(jìn)行數(shù)據(jù)播放。例如:所需的數(shù)據(jù)位于文件中的第五個(gè)數(shù)據(jù)段中,目前在讀取所需數(shù)據(jù)時(shí),則需要從文件的第一個(gè)數(shù)據(jù)段開始讀取數(shù)據(jù),然后依次讀取第二、第三、第四以及第五個(gè)數(shù)據(jù)段才能夠得到所需的數(shù)據(jù)。
[0005]可見,現(xiàn)有的文件內(nèi)容讀取方案,對文件內(nèi)容進(jìn)行讀取時(shí),需遍歷在所需數(shù)據(jù)所在的數(shù)據(jù)段前的全部數(shù)據(jù)段耗費(fèi)大量的時(shí)間,無法實(shí)現(xiàn)對文件內(nèi)容的快速讀取。由于讀取文件內(nèi)容時(shí)需要耗費(fèi)大量的時(shí)間,因此,當(dāng)播放器與服務(wù)器之間通過無線連接、且連接速度較慢時(shí),無法保證文件播放的流暢性,影響用戶的使用體驗(yàn)。
【發(fā)明內(nèi)容】
[0006]鑒于現(xiàn)有的文件內(nèi)容讀取方案無法實(shí)現(xiàn)對文件內(nèi)容的快讀讀取問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的文件內(nèi)容讀取方法和裝置。
[0007]依據(jù)本發(fā)明的一個(gè)方面,提供了一種文件內(nèi)容讀取方法,包括:定位至所述文件的末尾;其中,所述文件包括:位于所述文件開頭的主電影數(shù)據(jù)段、位于所述文件末尾固定長度的第一數(shù)據(jù)段、第二數(shù)據(jù)段以及多個(gè)邏輯數(shù)據(jù)段,所述第一數(shù)據(jù)段中存儲有所述第二數(shù)據(jù)段的地址信息,所述第二數(shù)據(jù)段中存儲有各邏輯數(shù)據(jù)段的地址信息;讀取所述第一數(shù)據(jù)段中存儲的所述第二數(shù)據(jù)段的地址信息;依據(jù)所述第二數(shù)據(jù)段的地址信息讀取所述第二數(shù)據(jù)段中存儲的各邏輯數(shù)據(jù)段的地址信息;依據(jù)所述各邏輯數(shù)據(jù)段的地址信息對應(yīng)讀取各邏輯數(shù)據(jù)段中存儲的數(shù)據(jù),以進(jìn)行文件內(nèi)容讀取。
[0008]可選地,所述第二數(shù)據(jù)段中存儲的各邏輯數(shù)據(jù)段的地址信息設(shè)置在地址索引表中,所述依據(jù)所述第二數(shù)據(jù)段的地址信息讀取所述第二數(shù)據(jù)段中存儲的各邏輯數(shù)據(jù)段的地址信息的步驟包括:依據(jù)所述第二數(shù)據(jù)段的地址信息讀取所述第二數(shù)據(jù)段中存儲的地址索引表;從讀取的所述地址索引表中獲取各邏輯數(shù)據(jù)段的地址信息。
[0009]可選地,,所述第一數(shù)據(jù)段的固定長度為第一設(shè)定值,所述讀取所述第一數(shù)據(jù)中存儲的所述第二數(shù)據(jù)段的地址信息的步驟包括:讀取距所述文件末尾第一設(shè)定值范圍內(nèi)的數(shù)據(jù),從讀取的數(shù)據(jù)中獲取所述第二數(shù)據(jù)段的地址信息。
[0010]可選地,所述第一數(shù)據(jù)段的長度為63字節(jié)。
[0011]可選地,所述文件為MKV擴(kuò)展文件;所述各邏輯數(shù)據(jù)段包括:補(bǔ)充和額外內(nèi)容數(shù)據(jù)段、文件標(biāo)識數(shù)據(jù)段、導(dǎo)航用戶界面數(shù)據(jù)段、導(dǎo)航控制數(shù)據(jù)段、信息流數(shù)據(jù)段以及標(biāo)識流數(shù)據(jù)段。
[0012]依據(jù)本發(fā)明的另一個(gè)方面,提供了一種文件內(nèi)容讀取裝置,包括:定位模塊,用于定位至所述文件的末尾;其中,所述文件包括:位于所述文件開頭的主電影數(shù)據(jù)段、位于所述文件末尾固定長度的第一數(shù)據(jù)段、第二數(shù)據(jù)段以及多個(gè)邏輯數(shù)據(jù)段,所述第一數(shù)據(jù)段中存儲有所述第二數(shù)據(jù)段的地址信息,所述第二數(shù)據(jù)段中存儲有各邏輯數(shù)據(jù)段的地址信息;第一地址信息讀取模塊,用于讀取所述第一數(shù)據(jù)段中存儲的所述第二數(shù)據(jù)段的地址信息;第二地址信息讀取模塊,用于依據(jù)所述第二數(shù)據(jù)段的地址信息讀取所述第二數(shù)據(jù)段中存儲的各邏輯數(shù)據(jù)段的地址信息;文件讀取模塊,用于依據(jù)所述各邏輯數(shù)據(jù)段的地址信息對應(yīng)讀取各邏輯數(shù)據(jù)段中存儲的數(shù)據(jù),以進(jìn)行文件內(nèi)容讀取。
[0013]可選地,所述第二數(shù)據(jù)段中存儲的各邏輯數(shù)據(jù)段的地址信息設(shè)置在地址索引表中,所述第二地址信息讀取模塊包括:表讀取模塊,用于依據(jù)所述第二數(shù)據(jù)段的地址信息讀取所述第二數(shù)據(jù)段中存儲的地址索引表;信息讀取模塊,用于從讀取的所述地址索引表中獲取各邏輯數(shù)據(jù)段的地址信息。
[0014]可選地,所述第一數(shù)據(jù)段的固定長度為第一設(shè)定值,所述第一地址信息讀取模塊讀取所述第一數(shù)據(jù)中存儲的所述第二數(shù)據(jù)段的地址信息時(shí):讀取距所述文件末尾第一設(shè)定值范圍內(nèi)的數(shù)據(jù),從讀取的數(shù)據(jù)中獲取所述第二數(shù)據(jù)段的地址信息。
[0015]可選地,所述第一數(shù)據(jù)段的長度為63字節(jié)。
[0016]可選地,所述文件為MKV擴(kuò)展文件;所述各邏輯數(shù)據(jù)段包括:補(bǔ)充和額外內(nèi)容數(shù)據(jù)段、文件標(biāo)識數(shù)據(jù)段、導(dǎo)航用戶界面數(shù)據(jù)段、導(dǎo)航控制數(shù)據(jù)段、信息流數(shù)據(jù)段以及標(biāo)識流數(shù)據(jù)段。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0018]本發(fā)明實(shí)施例提供的文件內(nèi)容讀取方案,針對包含多個(gè)邏輯數(shù)據(jù)段的文件進(jìn)行內(nèi)容讀取。文件中設(shè)置有多個(gè)邏輯數(shù)據(jù)段、主電影數(shù)據(jù)段、位于文件末尾固定長度的第一數(shù)據(jù)段以及存儲有各邏輯數(shù)據(jù)段地址信息的第二數(shù)據(jù)段。在進(jìn)行文件讀取時(shí),先定位到第一數(shù)據(jù)段獲取第二數(shù)據(jù)段的地址信息,然后依據(jù)獲取到的地址信息定位到存儲有各邏輯數(shù)據(jù)段地址信息的第二數(shù)據(jù)段,從該數(shù)據(jù)斷下獲取到各邏輯數(shù)段的地址信息,然后,依據(jù)獲取到的地址信息即可對邏輯數(shù)據(jù)段進(jìn)行快速定位讀取所需的數(shù)據(jù),以實(shí)現(xiàn)對文件內(nèi)容的讀取??梢姡景l(fā)明實(shí)施例提供的文件內(nèi)容讀取方案,能夠依據(jù)邏輯數(shù)據(jù)段的地址信息直接定位到所需讀取的數(shù)據(jù)段,相較于現(xiàn)有的需要從文件的首個(gè)數(shù)據(jù)段依次讀取各數(shù)據(jù)段直至讀取到所需的數(shù)據(jù)段為止的文件內(nèi)容讀取方案,能夠提升文件內(nèi)容的讀取速度,實(shí)現(xiàn)對文件內(nèi)容的快速讀取。由于能夠?qū)崿F(xiàn)對文件內(nèi)容的快速讀取,因此,即便是播放器與服務(wù)器之間連接的無線網(wǎng)絡(luò)網(wǎng)速慢時(shí),也可以實(shí)現(xiàn)文件的流暢播放。
[0019]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說明】
[0020]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0021]圖1是根據(jù)本發(fā)明實(shí)施例一的一種文件內(nèi)容讀取方法的步驟流程圖;
[0022]圖2是根據(jù)本發(fā)明實(shí)施例二的一種文件內(nèi)容讀取方法的步驟流程圖;
[0023]圖3是根據(jù)本發(fā)明實(shí)施例三的一種文件內(nèi)容讀取裝置的結(jié)構(gòu)框圖;
[0024]圖4是根據(jù)本發(fā)明實(shí)施例四的一種文件內(nèi)容讀取裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0025]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0026]實(shí)施例一
[0027]參照圖1,示出了本發(fā)明實(shí)施例一的一種文件內(nèi)容讀取方法的步驟流程圖。
[0028]本發(fā)明實(shí)施例的文件內(nèi)容讀取方法包括以下步驟:
[0029]步驟S102:定位至文件的末尾。
[0030]在從服務(wù)器中讀取文件時(shí),首先定位至文件的末尾,以便從文件的末尾字段開始讀取數(shù)據(jù)。
[0031]待讀取的文件可以為標(biāo)清標(biāo)準(zhǔn)兼容的MKV擴(kuò)展文件,還可以為高清標(biāo)準(zhǔn)兼容的MKV擴(kuò)展文件。當(dāng)然,可以是其他適當(dāng)格式的文件,本發(fā)明實(shí)施例中,對待讀取文件的格式不作具體限制。
[0032]步驟S104:讀取第一數(shù)據(jù)段中存儲的第二數(shù)據(jù)段的地址信息。
[0033]其中,待讀取的文件包括:位于文件開頭的主電影數(shù)據(jù)段、位于文件末尾固定長度的第一數(shù)據(jù)段、第二數(shù)據(jù)段以及多個(gè)邏輯數(shù)據(jù)段,且第一數(shù)據(jù)段中存儲有第二數(shù)據(jù)段的地址信息,第二數(shù)據(jù)段中存儲有各邏輯數(shù)據(jù)段的地址信息。將第一數(shù)據(jù)段設(shè)置在文件末尾且固定長度,更加便于文件打開時(shí)進(jìn)行讀取。
[0034]需要說明的是,第一數(shù)據(jù)段以及第二數(shù)據(jù)段在具體應(yīng)用過程中可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際需求進(jìn)行命名,例如,將第一數(shù)據(jù)命名為標(biāo)識數(shù)據(jù)段,將第二數(shù)據(jù)段命名為分割信息數(shù)據(jù)段。
[0035]文件中包含的邏輯數(shù)據(jù)段可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際需求進(jìn)行