自定義多媒體文件播放引擎及自定義多媒體文件播放方法
【專利摘要】本發(fā)明公開了自定義多媒體文件播放引擎,主要由總控器、裝幀器、裝載器、時(shí)間驅(qū)動(dòng)器、資源堆棧單元、解析器、音頻控制器、渲染控制器構(gòu)成,同時(shí)本發(fā)明在自定義多媒體文件播放引擎的基礎(chǔ)上公開了自定義多媒體文件播放方法,包括啟動(dòng)播放和拖動(dòng)、恢復(fù)播放兩種。本發(fā)明可以對(duì)自定義多媒體文件進(jìn)行播放,5分鐘多媒體課件不超過3M,在互聯(lián)網(wǎng)應(yīng)用中多媒體文件傳送因帶寬帶來的瓶頸有了新的突破,播放時(shí)需對(duì)頭和內(nèi)容進(jìn)行組合才能進(jìn)行播放,因此具備了內(nèi)容版權(quán)的安全性和分布式部署便捷性,填補(bǔ)了市場(chǎng)空白。
【專利說明】自定義多媒體文件播放引擎及自定義多媒體文件播放方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種自定義多媒體文件播放引擎及自定義多媒體文件播放方法,主要是在PC瀏覽器上播放錄制的微型課件,應(yīng)用于學(xué)校知識(shí)重點(diǎn)內(nèi)容的講解和企業(yè)員工培訓(xùn)。
【背景技術(shù)】
[0002]在PC終端有相應(yīng)的播放應(yīng)用,主要是對(duì)視頻文件或Flash動(dòng)畫文件,生產(chǎn)標(biāo)準(zhǔn)的多媒體文件,這類多媒體文件較大,幾分鐘的課件幾十兆,對(duì)數(shù)據(jù)傳送是個(gè)瓶頸;10S平板終端的播放也是把自定義格式的媒體文件轉(zhuǎn)換成標(biāo)準(zhǔn)多媒體文件格式進(jìn)行播放,不僅數(shù)據(jù)增大同樣終端對(duì)普通消費(fèi)者消費(fèi)能力是個(gè)瓶頸?,F(xiàn)有技術(shù)由于分辨率發(fā)生變化,圖片清晰度受到影響,因而存在渲染缺陷,同時(shí)由于拖動(dòng)播放有幾百毫秒延遲,無緩沖數(shù)據(jù)需要渲染界面和緩沖準(zhǔn)備,因而存在性能缺陷,由于需要一次性裝載完后進(jìn)行播放,因而存在功能缺陷。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提供一種自定義多媒體文件播放引擎及自定義多媒體文件播放方法,可以對(duì)自定義多媒體文件進(jìn)行播放,5分鐘多媒體課件不超過3M,在互聯(lián)網(wǎng)應(yīng)用中多媒體文件傳送因帶寬帶來的瓶頸有了新的突破,播放時(shí)需對(duì)頭和內(nèi)容進(jìn)行組合才能進(jìn)行播放,因此具備了內(nèi)容版權(quán)的安全性和分布式部署便捷性,填補(bǔ)了市場(chǎng)空白。
[0004]本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
自定義多媒體文件播放引擎,主要由以下幾部分構(gòu)成:
總控器:分別與裝載器、裝幀器、時(shí)間驅(qū)動(dòng)器相連接,用于初始化裝載器以及在壓入完畢信息后調(diào)用裝幀器進(jìn)行裝幀;
裝幀器:分別與總控器、資源堆棧單元相連接,用于從資源堆棧單元中的動(dòng)作堆棧讀取動(dòng)作數(shù)據(jù)、分析動(dòng)作數(shù)據(jù);
裝載器:分別與總控器、資源堆棧單元、解析器相連接,用于下載微課文件、調(diào)用解析器、向資源堆棧單元壓入數(shù)據(jù);
時(shí)間驅(qū)動(dòng)器:分別與總控器、音頻控制器、渲染控制器相連接,用于在總控器控制下觸發(fā)音頻控制器以及調(diào)用渲染控制器的播放信息;
資源堆棧單元:分別與裝幀器、裝載器、渲染控制器相連接,用于向裝幀器獲取動(dòng)作數(shù)據(jù)、數(shù)據(jù)壓棧以及向渲染控制器彈出數(shù)據(jù);
解析器:與裝載器相連接,用于分解資源數(shù)據(jù);
音頻控制器:與時(shí)間驅(qū)動(dòng)器相連接,用于在時(shí)間驅(qū)動(dòng)器觸發(fā)下播放聲音;
渲染控制器:分別與時(shí)間驅(qū)動(dòng)器、資源堆棧單元相連接,用于渲染并顯示數(shù)據(jù)。
[0005]進(jìn)一步地,本發(fā)明在自定義多媒體文件播放引擎的基礎(chǔ)上共公開了自定義多媒體文件播放方法,包括啟動(dòng)播放和拖動(dòng)、恢復(fù)播放兩種,所述啟動(dòng)播放包括以下步驟:
(2.1)打開播放頁面:用戶啟動(dòng)Π組件,打開播放頁面,啟動(dòng)用例; (2.2)初始化:總控器初始裝載器;
(2.3)裝載文件數(shù)據(jù):裝載器下載服務(wù)端微課文件,下載完成后調(diào)用解析器;
(2.4)分解資源數(shù)據(jù):解析器根據(jù)文件規(guī)范協(xié)議進(jìn)行解析,動(dòng)作資源、聲音資源、圖片素材資源分類放入到待處理隊(duì)列,聲音和圖片生成零時(shí)緩存文件;
(2.5)動(dòng)作數(shù)據(jù)壓動(dòng)作棧:裝載器把動(dòng)作數(shù)據(jù)壓入資源堆棧的動(dòng)作堆棧中,待裝幀器處
理;
(2.6)進(jìn)行裝幀:總控器等壓入完畢的消息后,調(diào)用裝幀器進(jìn)行裝幀;
(2.7)獲取動(dòng)作數(shù)據(jù):裝幀器從動(dòng)作堆棧讀取動(dòng)作數(shù)據(jù);
(2.8)組裝:裝巾貞器把畫筆動(dòng)作、擦子動(dòng)作、撤銷動(dòng)作、恢復(fù)動(dòng)作、清線動(dòng)作、清屏動(dòng)作、插入圖片動(dòng)作、刪除圖片動(dòng)作、旋轉(zhuǎn)圖片、置前置后圖片轉(zhuǎn)換成最終需要顯示的結(jié)果數(shù)據(jù);(2.9)幀數(shù)據(jù)壓數(shù)據(jù)棧:裝幀器把幀數(shù)據(jù)壓入到幀堆棧中,為播放時(shí)提供呈現(xiàn)數(shù)據(jù);
(2.10)資源堆棧單元準(zhǔn)備完畢:資源堆棧單元向裝載器返回幀數(shù)據(jù)準(zhǔn)備完畢消息;
(2.11)裝載器準(zhǔn)備完畢:裝載器向總控器返回幀數(shù)據(jù)準(zhǔn)備完畢消息;
(2.12)啟動(dòng)播放:總控器得到初始幀數(shù)據(jù)處理完畢的消息,啟動(dòng)時(shí)間驅(qū)動(dòng)器;
(2.13)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器開始播放;
(2.14)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器同時(shí)每隔40毫秒調(diào)用渲染控制器的播放;
(2.15)獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀;
(2.16)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元彈出對(duì)應(yīng)的幀數(shù)據(jù);
(2.17)渲染并顯示:染控制器把獲得的幀數(shù)據(jù)在畫布上描繪出來。
[0006]進(jìn)一步地,為更好地實(shí)現(xiàn)本發(fā)明,所述拖動(dòng)、恢復(fù)播放包括以下步驟:
(3.1)用戶拖動(dòng)或恢復(fù)播放:用戶拖動(dòng)播放或繼續(xù)播放,用例開始;
(3.2)啟動(dòng)播放:總控器從時(shí)間驅(qū)動(dòng)器獲取時(shí)間點(diǎn)信息,并開始計(jì)時(shí);
(3.3)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器播放;
(3.4)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器同時(shí)每隔40毫秒調(diào)用渲染控制器的播放;
(3.5)渲染控制器獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀;
(3.6)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元彈出對(duì)應(yīng)的幀數(shù)據(jù);
(3.7)渲染并顯示:渲染控制器把獲得的幀數(shù)據(jù)在畫布上描繪出來;
進(jìn)一步地,為更好地實(shí)現(xiàn)本發(fā)明,用戶暫停播放時(shí)包括以下步驟:
(4.1)暫停:用戶點(diǎn)擊暫停;
(4.2)計(jì)數(shù)器停止:總控器向時(shí)間控制器發(fā)出停止消息;
(4.3)停止聲音播放:時(shí)間控制器記錄當(dāng)前時(shí)間到時(shí)間標(biāo)志中,并向音頻控制器發(fā)送停止播放指令,聲音播放暫停;
(4.4)時(shí)間控制器通知停止:時(shí)間控制器向渲染控制器發(fā)送停止播放指令,渲染器停止讀取幀數(shù)據(jù)及繪畫。
[0007]所述Π組件主要由播放進(jìn)度條、音量控制器、播放暫停開關(guān)等;本發(fā)明中的AIR環(huán)境組件包括 Flash Display、Flash media、Mx controls、Mx Containers、RPC server 等。
[0008]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下有益效果: (1)本發(fā)明播放時(shí)需請(qǐng)求應(yīng)用服務(wù)器上內(nèi)容的頭信息,從節(jié)點(diǎn)服務(wù)器上取內(nèi)容資源數(shù)據(jù),然后在進(jìn)行本地組裝,從資源安全性來說,非合法性用戶如果沒有協(xié)議頭信息,得到資源數(shù)據(jù)也無用,同時(shí)結(jié)合內(nèi)容分發(fā)網(wǎng)絡(luò)(⑶N),半個(gè)小時(shí)的微課從下載到播放大概十秒,這是其他主流多媒體應(yīng)用服務(wù)無法做到的;
(2)本發(fā)明能夠彌補(bǔ)傳統(tǒng)設(shè)備的性能缺陷,相比傳統(tǒng)的視頻和flash動(dòng)畫對(duì)帶寬的使用小很多,所有下載相對(duì)的快很多,同時(shí)因?yàn)樽远x格式的加密方式算法未公布,無法盜版或篡改;
(3)本發(fā)明通過自定義多媒體文件格式,vke后綴的文件數(shù)據(jù)分為頭信息和資源信息,頭信息定義了數(shù)據(jù)協(xié)議規(guī)則,資源信息分為痕跡資源信息、圖片資源信息和聲音資源信息,實(shí)現(xiàn)自定義多媒體文件的播放;
(4)本發(fā)明Flash自定義多媒體數(shù)據(jù)播放功能,裝載、解析、資源壓棧模式,根據(jù)彈出幀數(shù)據(jù)與音頻同步播放,減少了拖動(dòng)播放的延遲;
(5)本發(fā)明可以下載多媒體內(nèi)容,在PC終端的瀏覽器上隨時(shí)播放;其中使用了裝幀器來轉(zhuǎn)換動(dòng)作數(shù)據(jù),使其變?yōu)樽罱K結(jié)果呈現(xiàn)的顯示線條數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0009]圖1為本發(fā)明自定義多媒體文件播放引擎啟動(dòng)播放時(shí)結(jié)構(gòu)框圖;
圖2為本發(fā)明自定義多媒體文件播放引擎拖動(dòng)、恢復(fù)播放、暫停時(shí)結(jié)構(gòu)框圖;
圖3為本發(fā)明自定義多媒體文件播放方法啟動(dòng)播放時(shí)時(shí)序圖;
圖4為本發(fā)明自定義多媒體文件播放方法拖動(dòng)、恢復(fù)播放、暫停時(shí)時(shí)序圖。
【具體實(shí)施方式】
[0010]下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)介紹,但本發(fā)明的實(shí)施方式不限于此。
[0011]實(shí)施例1:
如圖1、圖2所示,自定義多媒體文件播放引擎,主要由總控器、裝幀器、裝載器、時(shí)間驅(qū)動(dòng)器、資源堆棧單元、解析器、音頻控制器、渲染控制器構(gòu)成,用戶啟動(dòng)播放引擎時(shí),用戶打開微課播放頁面,啟動(dòng)用例后,總控器初始裝載器,裝載器下載服務(wù)端微課文件,下載完成后調(diào)用解析器,解析器對(duì)文件進(jìn)行解析,分解資源數(shù)據(jù),裝載器將動(dòng)作數(shù)據(jù)壓入資源堆棧單元的動(dòng)作堆棧中,總控器在壓入完畢后,調(diào)用裝幀器進(jìn)行裝幀,裝幀器從資源堆棧單元中讀取動(dòng)作堆棧數(shù)據(jù)并將動(dòng)作數(shù)據(jù)轉(zhuǎn)換為最終的結(jié)果數(shù)據(jù)并把數(shù)據(jù)壓入到幀堆棧中,總控器收到處理完畢的信息后啟動(dòng)時(shí)間驅(qū)動(dòng)器,并由時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器播放音頻,同時(shí)由時(shí)間控制器調(diào)用渲染控制器從資源堆棧單元中調(diào)取數(shù)據(jù)渲染并顯示。
[0012]實(shí)施例2:
如圖3、圖4所示,本發(fā)明在自定義多媒體文件播放引擎的基礎(chǔ)上共公開了自定義多媒體文件播放方法,包括啟動(dòng)播放和拖動(dòng)、恢復(fù)播放兩種,所述啟動(dòng)播放包括以下步驟:
(2.1)打開播放頁面:用戶啟動(dòng)Π組件,打開播放頁面,啟動(dòng)用例;
(2.2)初始化:總控器初始裝載器;
(2.3)裝載文件數(shù)據(jù):裝載器下載服務(wù)端微課文件,下載完成后調(diào)用解析器;(2.4)分解資源數(shù)據(jù):解析器根據(jù)文件規(guī)范協(xié)議進(jìn)行解析,動(dòng)作資源、聲音資源、圖片素材資源分類放入到待處理隊(duì)列,聲音和圖片生成零時(shí)緩存文件;
(2.5)動(dòng)作數(shù)據(jù)壓動(dòng)作棧:裝載器把動(dòng)作數(shù)據(jù)壓入資源堆棧的動(dòng)作堆棧中,待裝幀器處
理;
(2.6)進(jìn)行裝幀:總控器等壓入完畢的消息后,調(diào)用裝幀器進(jìn)行裝幀;
(2.7)獲取動(dòng)作數(shù)據(jù):裝幀器從動(dòng)作堆棧讀取動(dòng)作數(shù)據(jù);
(2.8)組裝:裝幀器把畫筆動(dòng)作、擦子動(dòng)作、撤銷動(dòng)作、恢復(fù)動(dòng)作、清線動(dòng)作、清屏動(dòng)作、插入圖片動(dòng)作、刪除圖片動(dòng)作、旋轉(zhuǎn)圖片、置前置后圖片轉(zhuǎn)換成最終需要顯示的結(jié)果數(shù)據(jù);(2.9)幀數(shù)據(jù)壓數(shù)據(jù)棧:裝幀器經(jīng)過步驟(2.8)之后把幀數(shù)據(jù)壓入到幀堆棧中,為播放時(shí)提供呈現(xiàn)數(shù)據(jù);
(2.10)資源堆棧單元準(zhǔn)備完畢:資源堆棧單元向裝載器返回幀數(shù)據(jù)準(zhǔn)備完畢消息;
(2.11)裝載器準(zhǔn)備完畢:裝載器收到步驟(2.10)資源堆棧單元返回的幀數(shù)據(jù)準(zhǔn)備完畢的消息后向總控器返回幀數(shù)據(jù)準(zhǔn)備完畢消息;
(2.12)啟動(dòng)播放:總控器得到步驟(2.11)初始幀數(shù)據(jù)處理完畢的消息,啟動(dòng)時(shí)間驅(qū)動(dòng)
器;
(2.13)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器開始播放;
(2.14)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器在步驟(2.13)的同時(shí)每隔40毫秒調(diào)用渲染控制器的播放;
(2.15)獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀;
(2.16)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元向渲染控制器彈出對(duì)應(yīng)的幀數(shù)據(jù);
(2.17)渲染并顯示:染控制器把步驟(2.16)中獲得的幀數(shù)據(jù)在畫布上描繪出來。
[0013]本發(fā)明中微課文件協(xié)議規(guī)范包括:
1.文件頭長(zhǎng)度(4字節(jié)int);
2.XML格式的文件頭,定義了每個(gè)資源在微課文件中的數(shù)據(jù)位置,格式如下:
<Vke>
〈TotalTime value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0)〃/>//微課總時(shí)間
〈AudioCodecType value="—個(gè) Byte (默認(rèn)為 0)"/>//音頻編碼類型
<AudioSampIeRate value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)O) 〃/> //音頻碼率 <AudioChanneICount value=〃 一個(gè) Byte (默認(rèn)為 1)〃/>// 音頻聲道數(shù)
〈AudioFrameSize value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0)〃/> //音頻幀大小 〈AudioDataPosition value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0)〃/> //音頻數(shù)據(jù)的位
置
〈ActionDataPosition value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0) 〃/> //動(dòng)作數(shù)據(jù)
的位置
<ResourceDataPosition value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0) 〃/> //資源數(shù)據(jù)
的位置
〈VkeWidth value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0) 〃/> //微課錄制時(shí)的寬度 〈VkeHeight value=〃十個(gè)Byte (不足十個(gè)的前面補(bǔ)0) 〃/> //微課錄制時(shí)的高度 〈AudioMappingDataPosition value=〃十個(gè) Byte (不足十個(gè)的前面補(bǔ) 0)〃/> // 音頻數(shù)據(jù)包和文件位置映射數(shù)據(jù)的位置</Vke>
本發(fā)明通過自定義多媒體文件格式,同時(shí)結(jié)合CDN,用戶可以根據(jù)需要下載文件進(jìn)行播放,在功能上是一大改進(jìn)。
[0014]本發(fā)明能夠彌補(bǔ)傳統(tǒng)設(shè)備的性能缺陷,因?yàn)楸景l(fā)明相比傳統(tǒng)的視頻和flash動(dòng)畫對(duì)帶寬的使用小很多,因此所有下載相對(duì)的快很多,同時(shí),因?yàn)樽远x格式的加密方式算法未公布,無法盜版或篡改,因此本發(fā)明能夠提供個(gè)人版權(quán)的保證。
[0015]實(shí)施例3:
為更好地實(shí)現(xiàn)本發(fā)明,本實(shí)施例在實(shí)施例2的基礎(chǔ)上,所述拖動(dòng)、恢復(fù)播放包括以下步
驟:
(3.1)用戶拖動(dòng)或恢復(fù)播放:用戶通過Π組件拖動(dòng)播放或繼續(xù)播放,用例開始;
(3.2)啟動(dòng)播放:總控器從時(shí)間驅(qū)動(dòng)器獲取時(shí)間點(diǎn)信息,并開始計(jì)時(shí);
(3.3)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器收到步驟(3.2)中總控器信號(hào)后觸發(fā)音頻控制器播
放;
(3.4)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器在步驟(3.3)的同時(shí)每隔40毫秒調(diào)用渲染控制器的播
放;
(3.5)渲染控制器獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀;
(3.6)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元向渲染控制器彈出對(duì)應(yīng)的幀數(shù)據(jù);
(3.7)渲染并顯示:渲染控制器把從資源堆棧單元獲得的幀數(shù)據(jù)在畫布上描繪出來;本發(fā)明通過自定義多媒體文件格式,vke后綴的文件數(shù)據(jù)分為頭信息和資源信息,頭信息定義了數(shù)據(jù)協(xié)議規(guī)則,資源信息分為痕跡資源信息、圖片資源信息和聲音資源信息;Flash自定義多媒體數(shù)據(jù)播放功能,裝載、解析、資源壓棧模式,根據(jù)彈出幀數(shù)據(jù)與音頻同步播放,減少了拖動(dòng)播放的延遲。
[0016]本發(fā)明播放時(shí)需請(qǐng)求應(yīng)用服務(wù)器上內(nèi)容的頭信息,從節(jié)點(diǎn)服務(wù)器上取內(nèi)容資源數(shù)據(jù),然后在進(jìn)行本地組裝,因而不能支持邊下邊播,但是從資源安全性來說,非合法性用戶如果沒有協(xié)議頭信息,得到資源數(shù)據(jù)也無用,同時(shí)結(jié)合CDN,半個(gè)小時(shí)的微課從下載到播放大概十秒,這是其他主流多媒體應(yīng)用服務(wù)無法做到的。
[0017]實(shí)施例4:
為更好地實(shí)現(xiàn)本發(fā)明,本實(shí)施例在實(shí)施例2或?qū)嵤├?的基礎(chǔ)上,用戶暫停播放時(shí)包括以下步驟:
(4.1)暫停:用戶在UI界面點(diǎn)擊暫停,進(jìn)入到暫停模式;
(4.2)計(jì)數(shù)器停止:總控器向時(shí)間控制器發(fā)出停止消息,計(jì)數(shù)器停止計(jì)數(shù);
(4.3)停止聲音播放:時(shí)間控制器接收步驟(4.2)中總控器的信號(hào)后,記錄當(dāng)前時(shí)間到時(shí)間標(biāo)志中,并向音頻控制器發(fā)送停止播放指令,聲音播放暫停;
(4.4)時(shí)間控制器通知停止:時(shí)間控制器接收步驟(4.2)中總控器的信號(hào)后,向渲染控制器發(fā)送停止播放指令,渲染器停止讀取幀數(shù)據(jù)及繪畫。
[0018]以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明做任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化,均落入本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.自定義多媒體文件播放引擎,其特征在于:主要由以下幾部分構(gòu)成: 總控器:分別與裝載器、裝幀器、時(shí)間驅(qū)動(dòng)器相連接,用于初始化裝載器以及在壓入完畢信息后調(diào)用裝幀器進(jìn)行裝幀; 裝幀器:分別與總控器、資源堆棧單元相連接,用于從資源堆棧單元中的動(dòng)作堆棧讀取動(dòng)作數(shù)據(jù)、分析動(dòng)作數(shù)據(jù); 裝載器:分別與總控器、資源堆棧單元、解析器相連接,用于下載微課文件、調(diào)用解析器、向資源堆棧單元壓入數(shù)據(jù); 時(shí)間驅(qū)動(dòng)器:分別與總控器、音頻控制器、渲染控制器相連接,用于在總控器控制下觸發(fā)音頻控制器以及調(diào)用渲染控制器的播放信息; 資源堆棧單元:分別與裝幀器、裝載器、渲染控制器相連接,用于向裝幀器獲取動(dòng)作數(shù)據(jù)、數(shù)據(jù)壓棧以及向渲染控制器彈出數(shù)據(jù); 解析器:與裝載器相連接,用于分解資源數(shù)據(jù); 音頻控制器:與時(shí)間驅(qū)動(dòng)器相連接,用于在時(shí)間驅(qū)動(dòng)器觸發(fā)下播放聲音; 渲染控制器:分別與時(shí)間驅(qū)動(dòng)器、資源堆棧單元相連接,用于渲染并顯示數(shù)據(jù)。
2.自定義多媒體文件播放方法,其特征在于:包括啟動(dòng)播放和拖動(dòng)、恢復(fù)播放兩種,所述啟動(dòng)播放包括以下步 驟: (2.1)打開播放頁面:用戶啟動(dòng)Π組件,打開播放頁面,啟動(dòng)用例; (2.2)初始化:總控器初始裝載器; (2.3)裝載文件數(shù)據(jù):裝載器下載服務(wù)端微課文件,下載完成后調(diào)用解析器; (2.4)分解資源數(shù)據(jù):解析器根據(jù)文件規(guī)范協(xié)議進(jìn)行解析,動(dòng)作資源、聲音資源、圖片素材資源分類放入到待處理隊(duì)列,聲音和圖片生成零時(shí)緩存文件; (2.5)動(dòng)作數(shù)據(jù)壓動(dòng)作棧:裝載器把動(dòng)作數(shù)據(jù)壓入資源堆棧的動(dòng)作堆棧中,待裝幀器處理; (2.6)進(jìn)行裝幀:總控器等壓入完畢的消息后,調(diào)用裝幀器進(jìn)行裝幀; (2.7)獲取動(dòng)作數(shù)據(jù):裝幀器從動(dòng)作堆棧讀取動(dòng)作數(shù)據(jù); (2.8)組裝:裝幀器把畫筆動(dòng)作、擦子動(dòng)作、撤銷動(dòng)作、恢復(fù)動(dòng)作、清線動(dòng)作、清屏動(dòng)作、插入圖片動(dòng)作、刪除圖片動(dòng)作、旋轉(zhuǎn)圖片、置前置后圖片轉(zhuǎn)換成最終需要顯示的結(jié)果數(shù)據(jù);(2.9)幀數(shù)據(jù)壓數(shù)據(jù)棧:裝幀器把幀數(shù)據(jù)壓入到幀堆棧中,為播放時(shí)提供呈現(xiàn)數(shù)據(jù); (2.10)資源堆棧單元準(zhǔn)備完畢:資源堆棧單元向裝載器返回幀數(shù)據(jù)準(zhǔn)備完畢消息; (2.11)裝載器準(zhǔn)備完畢:裝載器向總控器返回幀數(shù)據(jù)準(zhǔn)備完畢消息; (2.12)啟動(dòng)播放:總控器得到初始幀數(shù)據(jù)處理完畢的消息,啟動(dòng)時(shí)間驅(qū)動(dòng)器; (2.13)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器開始播放; (2.14)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器同時(shí)每隔40毫秒調(diào)用渲染控制器的播放; (2.15)獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀; (2.16)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元彈出對(duì)應(yīng)的幀數(shù)據(jù); (2.17)渲染并顯示:染控制器把獲得的幀數(shù)據(jù)在畫布上描繪出來。
3.根據(jù)權(quán)利要求2所述的自定義多媒體文件播放方法,其特征在于:所述拖動(dòng)、恢復(fù)播放包括以下步驟:(3.1)用戶拖動(dòng)或恢復(fù)播放:用戶拖動(dòng)播放或繼續(xù)播放,用例開始; (3.2)啟動(dòng)播放:總控器從時(shí)間驅(qū)動(dòng)器獲取時(shí)間點(diǎn)信息,并開始計(jì)時(shí); (3.3)啟動(dòng)聲音播放:時(shí)間驅(qū)動(dòng)器觸發(fā)音頻控制器播放; (3.4)播放數(shù)據(jù)幀:時(shí)間驅(qū)動(dòng)器同時(shí)每隔40毫秒調(diào)用渲染控制器的播放; (3.5)渲染控制器獲取當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù):渲染控制器從資源堆棧單元的幀堆棧獲取對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)據(jù)幀; (3.6)資源堆棧單元彈出數(shù)據(jù):資源堆棧單元彈出對(duì)應(yīng)的幀數(shù)據(jù); (3.7)渲染并顯示:渲染控制器把獲得的幀數(shù)據(jù)在畫布上描繪出來。
4.根據(jù)權(quán)利要求2或3所述的自定義多媒體文件播放方法,其特征在于:還包括在用戶暫停播放時(shí)包括以下步驟: (4.1)暫停:用戶點(diǎn)擊暫停; (4.2)計(jì)數(shù)器停止:總控器向時(shí)間控制器發(fā)出停止消息; (4.3)停止聲音播放:時(shí)間控制器記錄當(dāng)前時(shí)間到時(shí)間標(biāo)志中,并向音頻控制器發(fā)送停止播放指令,聲音播放暫停; (4.4)時(shí)間控制器通知停止:時(shí)間控制器向渲染控制器發(fā)送停止播放指令,渲染器停止讀取幀數(shù)據(jù)及繪畫。
【文檔編號(hào)】H04L29/08GK103888784SQ201410134890
【公開日】2014年6月25日 申請(qǐng)日期:2014年4月4日 優(yōu)先權(quán)日:2014年4月4日
【發(fā)明者】夏萱 申請(qǐng)人:上海景界信息科技有限公司