基于android系統(tǒng)的多媒體播放方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體播放技術(shù)領(lǐng)域,具體涉及一種基于android系統(tǒng)的多媒體播放方法及裝置。
【背景技術(shù)】
[0002]DivX Menu文件是一種將影片的音頻由MP3來(lái)壓縮、視頻由MPEG-4技術(shù)來(lái)壓縮的數(shù)字多媒體壓縮格式文件,具有高分辨率、占用內(nèi)存容量較小、占用互聯(lián)網(wǎng)絡(luò)數(shù)據(jù)帶寬較小,可以與用戶進(jìn)行交互等優(yōu)點(diǎn)。當(dāng)前,DivX Menu文件無(wú)法在android系統(tǒng)上播放出Menu效果,且不能實(shí)現(xiàn)交互(即用戶無(wú)法點(diǎn)擊Menu進(jìn)行交互)。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明實(shí)施例提供一種基于android系統(tǒng)的多媒體播放方法及裝置。
[0004]本發(fā)明實(shí)施例的基于android系統(tǒng)的多媒體播放方法,包括:加載源文件,并解析源文件的文件頭,以判斷源文件是否為預(yù)定格式文件,其中預(yù)定格式文件包括菜單信息,所述菜單信息包括默認(rèn)開(kāi)始菜單信息、至少兩個(gè)標(biāo)題、至少一個(gè)用于選擇相應(yīng)標(biāo)題的按鈕、以及用于表示按鈕與標(biāo)題的對(duì)應(yīng)關(guān)系的數(shù)據(jù);若源文件為預(yù)定格式文件,則存儲(chǔ)所述菜單信息;獲取默認(rèn)開(kāi)始菜單信息;提取默認(rèn)開(kāi)始菜單信息中當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù);播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0005]本發(fā)明實(shí)施例的基于android系統(tǒng)的多媒體播放裝置,包括:加載與解析模塊,用于加載源文件并解析源文件的文件頭;判斷模塊,用于判斷源文件是否為預(yù)定格式文件,其中預(yù)定格式文件包括菜單信息,菜單信息包括默認(rèn)開(kāi)始菜單信息、至少兩個(gè)標(biāo)題、至少一個(gè)用于選擇相應(yīng)標(biāo)題的按鈕、以及用于表示按鈕與標(biāo)題的對(duì)應(yīng)關(guān)系的數(shù)據(jù);存儲(chǔ)模塊,用于在判斷模塊判定源文件為預(yù)定格式文件時(shí)存儲(chǔ)菜單信息;獲取模塊,用于獲取默認(rèn)開(kāi)始菜單信息,并提取默認(rèn)開(kāi)始菜單信息中當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù);播放模塊,用于播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0006]本發(fā)明實(shí)施例的基于android系統(tǒng)的多媒體播放方法及裝置,能夠在android系統(tǒng)上播放出Menu效果,并且能夠響應(yīng)用戶點(diǎn)擊Menu的事件。
【附圖說(shuō)明】
[0007]圖1是本發(fā)明第一實(shí)施例的多媒體播放方法的流程圖;
[0008]圖2是本發(fā)明第一實(shí)施例的多媒體播放裝置的結(jié)構(gòu)示意圖;
[0009]圖3是本發(fā)明第二實(shí)施例的多媒體播放方法的流程圖;
[0010]圖4是本發(fā)明第二實(shí)施例的多媒體播放裝置的原理框圖。
【具體實(shí)施方式】
[0011]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明所提供的示例性的實(shí)施例的技術(shù)方案進(jìn)行清楚、完整地描述。
[0012]本發(fā)明第一實(shí)施例提供一種如圖1所示的多媒體播放方法,用于在android(安卓)系統(tǒng)上播放預(yù)定格式文件,所述預(yù)定格式文件包括但不限于DivX Menu文件。該方法可以但不必須基于圖2所示的多媒體播放裝置予以實(shí)現(xiàn)。結(jié)合圖1和圖2所示,所述方法包括:
[0013]步驟Sll:加載源文件,并解析所述源文件的文件頭。
[0014]在實(shí)際應(yīng)用場(chǎng)景中可以表現(xiàn)為APP(Applicat1n,應(yīng)用程序)的多媒體播放器(Video Player) 26加載需要播放的源文件。無(wú)論被加載的源文件是音頻文件、視頻文件還是其他多媒體文件,其都以數(shù)據(jù)包或一段數(shù)據(jù)的形式被存儲(chǔ),也就是說(shuō),源文件一定具有文件頭、有效載荷及文件結(jié)尾,其中有效載荷為源文件的實(shí)質(zhì)內(nèi)容,文件頭不僅作為有效載荷的起始標(biāo)識(shí),而且可顯示有效載荷或源文件的格式、所占內(nèi)存等屬性信息,文件結(jié)尾相當(dāng)于有效載荷的結(jié)束標(biāo)識(shí)。
[0015]在此基礎(chǔ)上,多媒體播放服務(wù)模塊(Awesome Player) 21初始化提取器(Extractor) 22,提取器22可解析得到被加載的源文件的文件頭,并根據(jù)文件頭確定被加載的源文件的格式。
[0016]步驟S12:判斷源文件是否為預(yù)定格式文件。
[0017]所述預(yù)定格式文件例如為DivX Menu文件,包括菜單信息,菜單信息包括默認(rèn)開(kāi)始菜單信息、至少兩個(gè)標(biāo)題、至少一個(gè)用于選擇相應(yīng)標(biāo)題的按鈕、以及用于表示按鈕與標(biāo)題的對(duì)應(yīng)關(guān)系的數(shù)據(jù)。在本實(shí)施例中,默認(rèn)開(kāi)始菜單信息為多媒體播放裝置啟動(dòng)后自動(dòng)開(kāi)始播放的預(yù)定格式文件的菜單信息,至少兩個(gè)標(biāo)題對(duì)應(yīng)源文件中的至少兩段多媒體流,可以表現(xiàn)為至少兩段多媒體流的名稱,數(shù)據(jù)為預(yù)定格式文件的有效載荷。
[0018]若提取器22判定被加載的源文件不是預(yù)定格式文件,則執(zhí)行步驟S13。若判定源文件為預(yù)定格式文件,則執(zhí)行步驟S14。
[0019]步驟S13:不存儲(chǔ)菜單信息。
[0020]步驟S14:存儲(chǔ)菜單信息。
[0021]步驟S15:DivX Menu 控制信息服務(wù)模塊(DivX Menu Control Service) 23 獲取預(yù)定格式文件的菜單信息中的默認(rèn)開(kāi)始菜單信息,并控制提取器22提取默認(rèn)開(kāi)始菜單信息中當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0022]步驟S16:播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0023]其中,由提取器22提取得到當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù),并且鑒于源文件的有效載荷在被存儲(chǔ)時(shí)已被編碼,故此需要多媒體播放裝置的解碼器(Decoder) 24解碼當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)以得到解碼后的數(shù)據(jù),而后渲染器(Render) 25渲染解碼后的數(shù)據(jù),從而使得多媒體播放器26播放渲染后的數(shù)據(jù)。
[0024]圖3是本發(fā)明第二實(shí)施例的多媒體播放方法的流程圖。在圖1所示實(shí)施例的基礎(chǔ)上但不同的是,本實(shí)施例適用于一個(gè)或多個(gè)預(yù)定格式文件切換播放的情況。如圖3所示,本實(shí)施例的方法包括:
[0025]步驟S31:加載源文件,并解析所述源文件的文件頭。
[0026]步驟S32:判斷源文件是否為預(yù)定格式文件。
[0027]若判定源文件不是預(yù)定格式文件,則執(zhí)行步驟S33。若判定源文件為預(yù)定格式文件,則執(zhí)行步驟S34。
[0028]步驟S33:不存儲(chǔ)菜單信息。
[0029]步驟S34:存儲(chǔ)菜單信息。
[0030]步驟S35:獲取源文件的菜單信息中的默認(rèn)開(kāi)始菜單信息,并提取默認(rèn)開(kāi)始菜單信息中當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0031]步驟S36:播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0032]步驟S37:確定是否需要對(duì)正在播放的當(dāng)前標(biāo)題進(jìn)行切換。
[0033]若不需要進(jìn)行切換,則繼續(xù)執(zhí)行步驟S36,即播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。若需要進(jìn)行切換,則執(zhí)行步驟S38。
[0034]步驟S38:根據(jù)按鈕與標(biāo)題的對(duì)應(yīng)關(guān)系的數(shù)據(jù)獲取下一個(gè)標(biāo)題。
[0035]步驟S39:提取并播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0036]在本發(fā)明實(shí)施例中,確定是否需要對(duì)正在播放的當(dāng)前標(biāo)題進(jìn)行切換的情況至少包括兩種:一是,在當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)播放完畢時(shí)需要播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù),其中所述下一個(gè)標(biāo)題可以是當(dāng)前標(biāo)題也可以是與當(dāng)前標(biāo)題不相同的下一個(gè)標(biāo)題,例如,當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)播放完畢后,根據(jù)菜單信息獲取下一個(gè)標(biāo)題,并判斷下一個(gè)標(biāo)題是否與當(dāng)前標(biāo)題相同,若不相同,則確定需進(jìn)行標(biāo)題切換。二是,在當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)正在播放時(shí)根據(jù)用戶的指令切換并播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù),其中可以通過(guò)用戶對(duì)按鈕的點(diǎn)擊操作獲取用戶的指令。
[0037]另外,確定是否需要對(duì)正在播放的當(dāng)前標(biāo)題進(jìn)行切換的方式包括但不限于:判定是否存在針對(duì)按鈕的點(diǎn)擊操作,若存在針對(duì)按鈕的點(diǎn)擊操作,則根據(jù)存儲(chǔ)的按鈕與標(biāo)題的對(duì)應(yīng)關(guān)系的數(shù)據(jù),即存儲(chǔ)的預(yù)定格式文件的所述菜單信息,判斷所述點(diǎn)擊操作對(duì)應(yīng)的下一個(gè)標(biāo)題是否與當(dāng)前標(biāo)題相同,若不相同,則確定需要進(jìn)行切換;若相同,則不需要進(jìn)行切換,并繼續(xù)播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)。
[0038]結(jié)合圖2所示,存儲(chǔ)預(yù)定格式文件的菜單信息有如下兩種方式:
[0039]第一種存儲(chǔ)方式,多媒體播放器26獲取點(diǎn)擊操作的觸控坐標(biāo),并通過(guò)多媒體播放服務(wù)模塊21和提取器22將所述觸控坐標(biāo)發(fā)送給DivX Menu控制信息服務(wù)模塊23,也就是說(shuō),將所述菜單信息存儲(chǔ)于DivX Menu控制信息服務(wù)模塊23中。
[0040]此種情況下,由DivX Menu控制信息服務(wù)模塊23執(zhí)行步驟S37,即確定是否需要對(duì)正在播放的當(dāng)前標(biāo)題進(jìn)行切換。
[0041]并且,在步驟S38與步驟S39之間,即在獲取下一個(gè)標(biāo)題之后且播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù)之前,由多媒體播放裝置的多媒體播放服務(wù)模塊21向多媒體播放器26發(fā)出播放完成消息,以告知多媒體播放器26當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)已經(jīng)播放完畢或者需要停止播放以切換播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù),多媒體播放器26根據(jù)接收到的播放完成消息停止播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù),而后多媒體播放器26重新加載源文件,并依次執(zhí)行后續(xù)步驟。
[0042]第二種存儲(chǔ)方式,多媒體播放器26獲取點(diǎn)擊操作的觸控坐標(biāo)并通過(guò)多媒體播放服務(wù)模塊21發(fā)送給提取器22,也就是說(shuō),將所述菜單信息存儲(chǔ)于提取器22中。
[0043]此時(shí),由提取器22確定是否需要對(duì)正在播放的當(dāng)前標(biāo)題進(jìn)行切換。
[0044]并且,在步驟S38與步驟S38之間,即在獲取下一個(gè)標(biāo)題之后且播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù)之前,由提取器22向多媒體播放服務(wù)模塊21發(fā)出播放完成消息,以告知多媒體播放器26當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù)已經(jīng)播放完畢或者需要停止播放以切換播放下一個(gè)標(biāo)題對(duì)應(yīng)的數(shù)據(jù),多媒體播放器26根據(jù)接收到的所述播放完成消息停止播放當(dāng)前標(biāo)題對(duì)應(yīng)的數(shù)據(jù),并且多媒體播放服務(wù)模塊21獲取下一個(gè)標(biāo)題對(duì)應(yīng)的信息,并重新初始化解碼器24和渲染器25。
[0045]本實(shí)施例通過(guò)上述步驟,能夠在android系統(tǒng)上播放出具有Menu的效果,并且能夠響應(yīng)用戶點(diǎn)擊Menu的事件。
[0046]圖4是本發(fā)明第二實(shí)施例的多媒體播放裝置的原理框圖。所述多媒體播放裝置用于在android系統(tǒng)上播放預(yù)定格式文件,所述預(yù)定格式文件包括但不限于DivX Menu文件。如圖4所示,所述多媒體