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