專利名稱:用于播放基于smil的多媒體內(nèi)容的系統(tǒng)、方法及引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域中,基于同步多媒體合成語言(SMIL)的多媒體內(nèi)容的播放技術(shù),具體地說,涉及用于在普及計(jì)算(pervasivecomputing,簡稱PvC)設(shè)備上播放上述多媒體內(nèi)容的引擎、系統(tǒng)及方法。
背景技術(shù):
SMIL是由互聯(lián)網(wǎng)聯(lián)盟(W3C)制定的多媒體操縱語言,用于對通過網(wǎng)絡(luò)傳送的基于時間的多媒體演示進(jìn)行編碼,規(guī)定多媒體片斷(如動畫、音頻、視頻、靜止圖片、靜態(tài)文本、文本流等)在什么時候、什么地方、以什么方式播放。采用這種語言,能夠?qū)⒁唤M獨(dú)立的多媒體對象合成為同步的多媒體內(nèi)容,并且在播放中支持用戶交互,可應(yīng)用于網(wǎng)絡(luò)電視、在線教程和多媒體演示等。目前SMIL被Realnetwork、蘋果公司和微軟公司等廣泛用于客戶端的應(yīng)用中。
傳統(tǒng)的SMIL瀏覽器,例如Xsmiles、Apple QuickTime和Helix等,可以支持SMIL 2.0的全部概要文件和擴(kuò)展,其與網(wǎng)絡(luò)瀏覽器相類似,都是為類似個人計(jì)算機(jī)的多媒體設(shè)備設(shè)計(jì)的純客戶端軟件。
隨著越來越多網(wǎng)絡(luò)化的PvC設(shè)備的出現(xiàn),例如個人數(shù)字助理(PDA)、移動電話、家用電器、車載設(shè)備等,也出現(xiàn)了在這些設(shè)備上播放基于SMIL的多媒體內(nèi)容的需要。然而,由于PvC設(shè)備可播放的媒體對象有限,通常只能播放一種媒體格式的媒體對象,因此在一個PvC設(shè)備上很難支持多種媒體對象的播放,例如POTS電話只支持音頻;IP電話和移動電話可支持音頻和簡單的文本輸入;PDA可支持基于網(wǎng)絡(luò)瀏覽和用戶交互的文本和靜止圖片,甚至簡單的視頻流;電視和數(shù)字音響系統(tǒng)支持播放實(shí)時視頻流和音頻流;但是上述PvC設(shè)備的播放媒體對象的資源都是有限的,只能播放標(biāo)準(zhǔn)SMIL多媒體類型的子集。此外,由于資源的限制,使得在PvC設(shè)備上實(shí)現(xiàn)下述功能也是困難的,例如多線程和復(fù)雜的定時/同步機(jī)制;多個媒體對象的合成。
現(xiàn)有技術(shù)中有在手持設(shè)備上支持SMIL的方法。例如,用于多媒體消息傳遞業(yè)務(wù)(MMS)的3GPP SMIL概要文件,可支持在具有SMIL解釋能力的移動電話上播放基于SMIL的多媒體內(nèi)容,但是3GPP SMIL概要文件只是SMIL 2.0基本概要文件的子集,可以在手持設(shè)備上播放的媒體內(nèi)容有限。例如,美國專利申請2003/0229847“多媒體再現(xiàn)裝置及方法(Multimedia Reproducing Apparatus and Method)”公開了一種在單個移動設(shè)備上再現(xiàn)基于SMIL的多媒體內(nèi)容的方法,但是該申請著重于串行化并行時序和同步機(jī)制,并沒有解決關(guān)鍵的用于播放復(fù)雜的多媒體內(nèi)容和靈活的用戶交互的資源問題。因此,上述兩種技術(shù)方案都只支持在具有SMIL解釋能力的PvC設(shè)備上播放基于SMIL的多媒體內(nèi)容,從而在多數(shù)沒有SMIL解釋能力的PvC設(shè)備上不能播放基于SMIL的多媒體內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明正是基于上述的技術(shù)問題而提出的,其目的在于提供一種用于在普及計(jì)算設(shè)備上播放基于SMIL的多媒體內(nèi)容的SMIL引擎、系統(tǒng)及方法。在根據(jù)本發(fā)明的SMIL引擎、系統(tǒng)和方法中,可以動態(tài)配置一組PvC設(shè)備,使其可以協(xié)同工作,共同播放基于SMIL的多媒體內(nèi)容,從而降低對PvC設(shè)備媒體交互能力的要求,由此可以支持SMIL 2.0的全部概要文件和擴(kuò)展。
根據(jù)本發(fā)明的一個方面,提供一種用于播放基于SMIL的多媒體內(nèi)容的SMIL引擎,包括媒體設(shè)備注冊模塊,用于注冊所述SMIL引擎控制的媒體設(shè)備;SMIL分析器,用于基于對SMIL文件的分析和所獲取的媒體設(shè)備的媒體交互能力信息,產(chǎn)生中間SMIL模型分發(fā)給下一級SMIL引擎和/或遠(yuǎn)程媒體代理,并產(chǎn)生對應(yīng)的本地代理對象,以及產(chǎn)生內(nèi)部SMIL模型部署到本地SMIL解釋器;SMIL解釋器,用于解釋執(zhí)行SMIL文件的播放邏輯,觸發(fā)下一級SMIL引擎和/或遠(yuǎn)程媒體代理和/或本地媒體播放設(shè)備播放媒體內(nèi)容,并控制與用戶的交互;以及遠(yuǎn)程事件代理,用于維護(hù)包含所述本地代理對象與分發(fā)到下一級SMIL引擎和/或遠(yuǎn)程媒體代理的中間SMIL模型的關(guān)系的映射表,并負(fù)責(zé)本地SMIL引擎與下一級SMIL引擎和/或遠(yuǎn)程媒體代理之間的事件傳輸。
優(yōu)選地,所述SMIL引擎控制的媒體設(shè)備包括下一級SMIL引擎、遠(yuǎn)程媒體代理和本地媒體播放設(shè)備,其均支持SMIL定義的媒體交互能力的子集,并在系統(tǒng)啟動時將各自的媒體交互能力、位置信息注冊在所述媒體設(shè)備注冊模塊中。
優(yōu)選地,所述中間SMIL模型包括分發(fā)到下一級SMIL引擎的包含多媒體內(nèi)容的時間容器;分發(fā)到遠(yuǎn)程媒體代理的媒體對象;所述內(nèi)部SMIL模型是在本地SMIL解釋器上可執(zhí)行的時間容器,包含本級SMIL模型的控制邏輯和被分發(fā)到本地媒體播放設(shè)備的媒體對象。
優(yōu)選地,所述事件包括定時事件、文檔對象模型事件、用戶交互事件和內(nèi)部事件。
優(yōu)選地,所述本地媒體播放設(shè)備包括媒體播放控制器,用于根據(jù)所述SMIL解釋器的觸發(fā)控制,驅(qū)動媒體播放器,并獲取播放的媒體內(nèi)容;以及媒體播放器,用于播放媒體內(nèi)容。
根據(jù)本發(fā)明的另一個方面,提供一種用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng),包括多個如上所述的SMIL引擎,用于分析和解釋執(zhí)行SMIL文件,并與下一級SMIL引擎、遠(yuǎn)程媒體代理或本地媒體播放設(shè)備進(jìn)行通信,對其進(jìn)行控制;多個遠(yuǎn)程媒體代理,用于接收上一級SMIL引擎的指令,開始或終止向遠(yuǎn)程媒體播放設(shè)備提供媒體對象、返回事件以及提供基本的用戶交互功能;所述多個SMIL引擎、多個遠(yuǎn)程媒體代理、本地和遠(yuǎn)程媒體播放設(shè)備構(gòu)成樹狀結(jié)構(gòu),其根節(jié)點(diǎn)是一個SMIL引擎,分枝節(jié)點(diǎn)是SMIL引擎和遠(yuǎn)程媒體代理,葉節(jié)點(diǎn)是本地和遠(yuǎn)程媒體播放設(shè)備。
根據(jù)本發(fā)明的再一個方面,提供一種用于在上述系統(tǒng)中播放基于SMIL的多媒體內(nèi)容的方法,包括以下步驟SMIL引擎分析SMIL文件,并獲取其控制的媒體設(shè)備的媒體交互能力信息;SMIL引擎根據(jù)所獲取的媒體交互能力信息,產(chǎn)生中間SMIL模型分發(fā)到下一級SMIL引擎和/或遠(yuǎn)程媒體代理,并產(chǎn)生對應(yīng)的本地代理對象;和/或產(chǎn)生內(nèi)部SMIL模型部署到本地SMIL解釋器;更新記載所述本地代理對象與分發(fā)到下一級SMIL引擎的中間SMIL模型、遠(yuǎn)程媒體代理的媒體對象之間關(guān)系的映射表;下一級SMIL引擎重復(fù)執(zhí)行上述步驟,直到最后一級SMIL引擎;由各SMIL引擎解釋各自接收的中間SMIL模型,生成內(nèi)部SMIL模型;根據(jù)時間和事件啟動遠(yuǎn)程媒體播放設(shè)備和/或本地媒體播放設(shè)備播放媒體內(nèi)容。
本發(fā)明具有以下優(yōu)點(diǎn)1)本發(fā)明可根據(jù)需要,將播放多媒體內(nèi)容所需的PvC設(shè)備進(jìn)行動態(tài)配置,組成一個新的多媒體終端;2)本發(fā)明可以滿足在一組資源有限的PvC設(shè)備上播放同步媒體內(nèi)容的需要;3)與傳統(tǒng)的SMIL客戶端的應(yīng)用模式相比,本發(fā)明采用分布式模式,可較好地利用服務(wù)器和中間節(jié)點(diǎn)的性能;4)采用本發(fā)明,可以將沒有SMIL解釋能力的PvC設(shè)備引入基于SMIL的應(yīng)用中。
圖1是根據(jù)本發(fā)明的一個實(shí)施例的用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng)的示意圖;圖2是根據(jù)本發(fā)明的一個實(shí)施例的SMIL引擎的示意圖;圖3是圖1所示系統(tǒng)的典型應(yīng)用示意圖;圖4是根據(jù)本發(fā)明的一個實(shí)施例的用于播放基于SMIL的多媒體內(nèi)容的方法的流程示意圖。
具體實(shí)施例方式
相信通過以下結(jié)合附圖對本發(fā)明具體實(shí)施例的詳細(xì)描述,可以更清楚的了解本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)。
圖1是根據(jù)本發(fā)明的一個實(shí)施例的用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng)的示意圖,在實(shí)際中,基于SMIL的多媒體內(nèi)容一般用SMIL文件描述。如圖1所示,該系統(tǒng)包括多個SMIL引擎201和多個遠(yuǎn)程媒體代理202,其構(gòu)成分級分布式結(jié)構(gòu),即樹狀結(jié)構(gòu),根節(jié)點(diǎn)是一個SMIL引擎(可稱為“根SMIL引擎”)201。
每級的SMIL引擎201用于分析和解釋SMIL文件或部分SMIL文件,并且與遠(yuǎn)程媒體代理202和/或下一級SMIL引擎(下文稱為“子SMIL引擎”)201和/或本地媒體播放設(shè)備通信,對其進(jìn)行控制。
遠(yuǎn)程媒體代理202主要用于對沒有SMIL解釋能力的遠(yuǎn)程媒體播放設(shè)備進(jìn)行控制,接收上級SMIL引擎201的指令,開始或終止向遠(yuǎn)程媒體播放設(shè)備提供媒體對象,返回事件以及提供基本的用戶交互功能。在遠(yuǎn)程媒體代理202向遠(yuǎn)程媒體播放設(shè)備提供的媒體對象中定義了遠(yuǎn)程媒體播放設(shè)備可播放的媒體內(nèi)容,可包括例如遠(yuǎn)程媒體播放設(shè)備獲取媒體內(nèi)容的媒體服務(wù)器的地址。如果遠(yuǎn)程媒體播放設(shè)備不能訪問媒體服務(wù)器,則由遠(yuǎn)程媒體代理202到媒體服務(wù)器獲取待播放的媒體內(nèi)容,然后提供給遠(yuǎn)程媒體播放設(shè)備播放。
在本說明書中,媒體播放設(shè)備包含本地媒體播放設(shè)備和遠(yuǎn)程媒體播放設(shè)備,其中本地媒體播放設(shè)備是指由SMIL引擎直接控制的媒體播放設(shè)備,遠(yuǎn)程媒體播放設(shè)備是指由遠(yuǎn)程媒體代理控制的媒體播放設(shè)備,媒體播放設(shè)備可采用PvC設(shè)備。本地媒體播放設(shè)備進(jìn)一步包括媒體播放控制器和媒體播放器,媒體播放控制器根據(jù)SMIL引擎的指令,驅(qū)動媒體播放器,并獲取播放的媒體內(nèi)容,然后提供給媒體播放器播放。
根SMIL引擎201從SMIL服務(wù)器下載了SMIL文件后,對該SMIL文件進(jìn)行分析,將SMIL文件分成小的SMIL文件,可采用媒體對象和包含在時間容器(time container)中的多媒體內(nèi)容兩種形式,然后根據(jù)需要,將這些小的SMIL文件分發(fā)到遠(yuǎn)程媒體代理202、子SMIL引擎201和/或留在本地。子SMIL引擎201繼續(xù)對收到的子SMIL文件進(jìn)行分析,然后將更小的SMIL文件分發(fā)到遠(yuǎn)程媒體代理202、子SMIL引擎201和/或留在本地。重復(fù)上述過程,直到最后一級子SMIL引擎201。這樣,SMIL文件經(jīng)過分解后被分發(fā)到該系統(tǒng)的相關(guān)節(jié)點(diǎn)。在播放基于SMIL的多媒體內(nèi)容時,各SMIL引擎解釋收到的SMIL文件,通過時間和事件調(diào)用相關(guān)的設(shè)備,例如定時事件、文檔對象模型(DOM)事件等。然后,由媒體播放設(shè)備根據(jù)遠(yuǎn)程媒體代理202和/或SMIL引擎201提供的媒體對象的定義,到相應(yīng)的媒體服務(wù)器獲取媒體內(nèi)容進(jìn)行播放。如果遠(yuǎn)程媒體播放設(shè)備不能訪問媒體服務(wù)器,可由遠(yuǎn)程媒體代理202獲取媒體內(nèi)容后,提供給遠(yuǎn)程媒體播放設(shè)備播放。
此外,用戶通過各媒體播放設(shè)備(例如PvC設(shè)備)提供的多種不同的媒體通道與遠(yuǎn)程媒體代理201或SMIL引擎201之間進(jìn)行多種形式的交互,由此產(chǎn)生的事件也可控制多媒體內(nèi)容的播放,從而使多媒體內(nèi)容的播放更具靈活性。
通過以上描述,可以看出,采用本實(shí)施例的系統(tǒng)可以在一組資源有限的PvC設(shè)備上播放基于SMIL的多媒體內(nèi)容,使該組資源有限的PvC設(shè)備可根據(jù)需要進(jìn)行動態(tài)配置,從而構(gòu)成滿足不同需要的新的多媒體終端,而且還可以實(shí)現(xiàn)多種形式的用戶交互。
圖2是圖1中的SMIL引擎201的一個實(shí)施例的示意圖。如圖2所示,SMIL引擎201包括媒體設(shè)備注冊模塊301、SMIL分析器302、SMIL解釋器303和遠(yuǎn)程事件代理304。下面對上述每個模塊進(jìn)行詳細(xì)地說明。
媒體設(shè)備注冊模塊301用于對該SMIL引擎201所控制的媒體設(shè)備進(jìn)行注冊,包括本地媒體播放設(shè)備,其可在本地播放SMIL文件定義的媒體內(nèi)容;遠(yuǎn)程媒體代理,其根據(jù)SMIL引擎201的指令,控制遠(yuǎn)程媒體播放設(shè)備播放由SMIL媒體對象定義的媒體內(nèi)容;下一級SMIL引擎,其根據(jù)控制解釋部分SMIL文件。上述三種媒體設(shè)備都支持SMIL定義的媒體交互能力的子集。當(dāng)系統(tǒng)啟動時,這些媒體設(shè)備的媒體交互能力、位置信息可以人工地或自動地注冊到媒體設(shè)備注冊模塊301中。
當(dāng)請求播放SMIL文件時,SMIL分析器302從SMIL服務(wù)器上下載相應(yīng)的SMIL文件,對該SMIL文件進(jìn)行分析,獲知該SMIL文件的內(nèi)容,然后查找媒體設(shè)備注冊模塊301中具有合適媒體交互能力的媒體設(shè)備。根據(jù)媒體設(shè)備的信息,產(chǎn)生中間SMIL模型和/或內(nèi)部SMIL模型,包含SMIL對象的靜態(tài)信息,中間SMIL模型和內(nèi)部SMIL模型可有兩種形式媒體對象和包含多媒體內(nèi)容的時間容器,其區(qū)別在于,中間SMIL模型是可以在網(wǎng)絡(luò)上不同節(jié)點(diǎn)間傳輸?shù)奈谋净蛐蛄谢P?,而?nèi)部SMIL模型則是可在SMIL解釋器上執(zhí)行的可運(yùn)行對象模型。根據(jù)預(yù)定的綁定規(guī)則和媒體設(shè)備注冊模塊301提供的信息,將中間SMIL模型中的媒體對象分發(fā)給遠(yuǎn)程媒體代理202和/或本地媒體播放設(shè)備,而將中間SMIL模型中的時間容器分發(fā)給子SMIL引擎201。內(nèi)部SMIL模型被部署到下面將要說明的SMIL解釋器303,并進(jìn)一步控制下層的子SMIL引擎、媒體代理和本地媒體播放設(shè)備。綁定規(guī)則定義了該SMIL引擎處的中間SMIL模型和/或內(nèi)部SMIL模型與該SMIL引擎控制的媒體設(shè)備之間的關(guān)系,可以缺省,也可以預(yù)先定義。一旦將時間容器分發(fā)給子SMIL引擎201,就生成該時間容器的本地代理對象,傳送到SMIL解釋器303;一旦將媒體對象分發(fā)給遠(yuǎn)程媒體代理202,就生成該媒體對象的本地代理對象,也傳送到SMIL解釋器303。SMIL分析器302通過下面將要說明的遠(yuǎn)程事件代理304與作為時間容器和媒體對象分發(fā)對象的子SMIL引擎201、遠(yuǎn)程媒體代理202交換事件。
SMIL解釋器303主要解釋SMIL文件的播放邏輯,根據(jù)時間和事件觸發(fā)媒體內(nèi)容的播放,調(diào)用相關(guān)的遠(yuǎn)程媒體代理202和/或子SMIL引擎201和/或本地媒體播放設(shè)備,并控制與用戶的交互。
在遠(yuǎn)程事件代理304中維持了一個映射表,該表包括本地SMIL解釋器303中的代理對象與分發(fā)到遠(yuǎn)程媒體代理202的媒體對象、分發(fā)到子SMIL引擎201的時間容器之間的關(guān)系。遠(yuǎn)程事件代理304負(fù)責(zé)在本地SMIL引擎201和子SMIL引擎201、遠(yuǎn)程媒體代理202之間傳輸串行化事件,包括SMIL定時事件、DOM事件等。通過這些事件,可以控制媒體內(nèi)容的播放。
通過以上描述可以看出,采用本實(shí)施例的SMIL引擎可以對基于SMIL的多媒體內(nèi)容進(jìn)行分析和解釋,并將產(chǎn)生的媒體對象和時間容器分發(fā)到本地媒體播放設(shè)備、遠(yuǎn)程媒體代理和子SMIL引擎,通過各SMIL引擎的遞歸分析,將基于SMIL的多媒體內(nèi)容分發(fā)到系統(tǒng)的各節(jié)點(diǎn),并且在播放多媒體內(nèi)容時,通過各SMIL引擎遞歸解釋媒體對象和時間容器,在媒體播放設(shè)備上播放媒體內(nèi)容。
圖3是本發(fā)明系統(tǒng)的一個典型應(yīng)用示意圖,其是將電話、電視、音響和PDA組合在一起播放基于SMIL的多媒體內(nèi)容,這里電話、電視、音響和PDA都是資源有限的PvC設(shè)備。圖3所示的系統(tǒng)是兩級的分布式結(jié)構(gòu),其中第一級是根SMIL引擎,第二級包括具有SMIL引擎的PDA(即控制有本地媒體播放設(shè)備-PDA-的SMIL引擎)、加在電視和音響上的頂置盒(即遠(yuǎn)程媒體代理)、電話(根SMIL引擎的本地媒體播放設(shè)備)。SMIL文件存放在SMIL服務(wù)器中,并且在根SMIL引擎中,已對電話、電視、音響、PDA、頂置盒的位置、支持的媒體交互能力進(jìn)行了注冊,媒體服務(wù)器則用于存放各個媒體內(nèi)容。
SMIL文件根據(jù)請求被下載到根SMIL引擎中。根SMIL引擎對SMIL文件分析后,根據(jù)綁定規(guī)則和注冊的媒體設(shè)備信息,將關(guān)于視頻和音頻的流媒體對象分發(fā)給頂置盒,將包含文本交互、文本流的時間容器分發(fā)給具有SMIL引擎的PDA,將關(guān)于語音交互的媒體對象通過本地的SMIL解釋器分發(fā)到電話。然后具有SMIL引擎的PDA繼續(xù)分析時間容器,將關(guān)于文本、文本流的媒體對象通過本地的SMIL解釋器分發(fā)到本地媒體設(shè)備(PDA)上執(zhí)行。這樣,請求播放的SMIL文件就分解到了系統(tǒng)的各個節(jié)點(diǎn)上。
然后,根SMIL引擎啟動主定時器,根據(jù)時間和事件調(diào)用有關(guān)的設(shè)備,觸發(fā)基于SMIL的多媒體內(nèi)容的播放。如果需要播放音頻和視頻的媒體內(nèi)容,則向頂置盒發(fā)送有關(guān)事件觸發(fā)播放,由于音響無法訪問媒體服務(wù)器2,因此頂置盒根據(jù)音頻的媒體對象的定義,到媒體服務(wù)器2獲取播放的媒體內(nèi)容,然后提供給音響進(jìn)行播放(如虛線所示);而對于電視來說,頂置盒提供了相應(yīng)的視頻的媒體對象后,由電視到相應(yīng)的媒體服務(wù)器1獲取播放的媒體內(nèi)容進(jìn)行播放(如虛線所示)。如果需要文本交互和播放文本流的媒體內(nèi)容,則向具有SMIL引擎的PDA發(fā)送有關(guān)事件,具有SMIL引擎的PDA對時間容器進(jìn)行解釋,然后PDA根據(jù)文本流的媒體對象的定義,到相應(yīng)的媒體服務(wù)器2獲取文本流進(jìn)行播放,并產(chǎn)生相應(yīng)的文本交互事件。如果需要進(jìn)行語音交互,則根SMIL引擎調(diào)用電話進(jìn)行播放,電話根據(jù)語音的媒體對象的定義,通過電話網(wǎng)絡(luò)到相應(yīng)的媒體服務(wù)器1獲取播放的媒體內(nèi)容進(jìn)行播放,并產(chǎn)生相應(yīng)的語音交互事件。當(dāng)然,用戶和遠(yuǎn)程媒體代理或SMIL引擎交互產(chǎn)生的事件也可以啟動媒體內(nèi)容的播放或停止播放。當(dāng)主定時器的時間到達(dá)后,對媒體內(nèi)容的播放結(jié)束。
圖4是根據(jù)本發(fā)明的一個實(shí)施例的用于播放基于SMIL的多媒體內(nèi)容的方法的流程示意圖。本方法可包括兩大步驟遞歸地配置SMIL模型到相應(yīng)節(jié)點(diǎn)的步驟400和解釋分發(fā)的SMIL模型的步驟410。
在進(jìn)行SMIL文件播放之前,需要對每個SMIL引擎建立一個媒體交互能力表,該表用于注冊該SMIL引擎控制的媒體設(shè)備的媒體,交互能力和位置信息,這些媒體設(shè)備例如是本地媒體播放設(shè)備、遠(yuǎn)程媒體代理和子SMIL引擎。該能力表存放在SMIL引擎的媒體設(shè)備注冊模塊中。
在步驟400中,當(dāng)用戶通過任意交互通道調(diào)用基于SMIL的多媒體內(nèi)容演示時,首先在步驟402,SMIL引擎中的SMIL分析器獲取并分析該SMIL文件,查找該SMIL引擎的媒體設(shè)備注冊模塊中存放的能力表,獲得其控制的媒體設(shè)備的信息。然后,在步驟403中,SMIL引擎根據(jù)上述信息,產(chǎn)生部署到本地SMIL解釋器的內(nèi)部SMIL模型以及分發(fā)到遠(yuǎn)程媒體代理和子SMIL引擎的中間SMIL模型(步驟404至406),通常將媒體對象綁定到本地媒體播放設(shè)備或遠(yuǎn)程媒體代理,時間容器則綁定到子SMIL引擎。對于分發(fā)到遠(yuǎn)程媒體代理的媒體對象和分發(fā)到子SMIL引擎的時間容器,產(chǎn)生對應(yīng)的本地代理對象。然后,在步驟407,對存放在SMIL引擎的遠(yuǎn)程事件代理中的映射表進(jìn)行更新,該映射表記錄了本地代理對象和分發(fā)到遠(yuǎn)程媒體代理、子SMIL引擎的媒體對象、時間容器之間的關(guān)系。在步驟408和409中,SMIL分析器將媒體對象分發(fā)到遠(yuǎn)程媒體代理,將中間SMIL模型分發(fā)到子SMIL引擎。子SMIL引擎繼續(xù)進(jìn)行上述過程,最終將SMIL文件遞歸地配置到各個節(jié)點(diǎn)。
在將SMIL文件成功配置到整個系統(tǒng)后,開始執(zhí)行步驟410解釋分發(fā)的SMIL模型。首先,在步驟412中,各SMIL引擎中的SMIL解釋器解釋各自的中間SMIL模型和本地SMIL模型。在本實(shí)施例中,在根SMIL引擎中設(shè)置了主定時器,用于對SMIL文件的播放時間進(jìn)行定時。當(dāng)然,也可以采用用戶交互的方式通過事件開始和停止媒體內(nèi)容的播放。在步驟413,根SMIL引擎啟動主定時器進(jìn)行計(jì)時。各SMIL引擎在解釋了各個SMIL模型后,可根據(jù)定時或交互事件通知本地媒體播放設(shè)備播放媒體內(nèi)容(步驟414),這樣本地媒體播放設(shè)備根據(jù)媒體對象的定義,在獲得播放的媒體內(nèi)容后進(jìn)行播放;以及通過遠(yuǎn)程事件代理向遠(yuǎn)程設(shè)備發(fā)送事件以調(diào)用各有關(guān)設(shè)備,如子SMIL引擎或遠(yuǎn)程媒體代理,在步驟415中,控制子SMIL引擎和遠(yuǎn)程媒體代理的操作,使遠(yuǎn)程媒體播放設(shè)備播放相應(yīng)的媒體內(nèi)容。當(dāng)調(diào)用遠(yuǎn)程媒體代理操作播放媒體內(nèi)容時,遠(yuǎn)程媒體代理根據(jù)其控制的遠(yuǎn)程媒體播放設(shè)備的能力,確定是否需要獲取播放的媒體內(nèi)容;如果需要,則在獲取了播放的媒體內(nèi)容后,提供給遠(yuǎn)程媒體播放設(shè)備播放;如果不需要,則向遠(yuǎn)程媒體播放設(shè)備提供相應(yīng)的媒體對象,由遠(yuǎn)程媒體播放設(shè)備根據(jù)該媒體對象的定義,獲取播放的媒體內(nèi)容后播放。在步驟416,當(dāng)主定時器的時間到達(dá)后,對媒體內(nèi)容的播放結(jié)束,停止執(zhí)行SMIL模型。
通過以上的描述可知,采用本實(shí)施例的方法,可以實(shí)現(xiàn)在一組資源有限的PvC設(shè)備上播放基于SMIL的多媒體內(nèi)容,使得資源有限的PvC設(shè)備可以被動態(tài)配置成新的多媒體終端。
以上雖然通過一些示例性的實(shí)施例對本發(fā)明用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng)、方法及引擎進(jìn)行了詳細(xì)的描述,但是以上這些實(shí)施例并不是窮舉的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實(shí)施例,本發(fā)明的范圍僅由所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種用于播放基于SMIL的多媒體內(nèi)容的SMIL引擎,包括媒體設(shè)備注冊模塊,用于注冊所述SMIL引擎控制的媒體設(shè)備;SMIL分析器,用于基于對SMIL文件的分析和所獲取的媒體設(shè)備的媒體交互能力信息,產(chǎn)生中間SMIL模型分發(fā)給下一級SMIL引擎和/或遠(yuǎn)程媒體代理,并產(chǎn)生對應(yīng)的本地代理對象,以及產(chǎn)生內(nèi)部SMIL模型部署到本地SMIL解釋器;SMIL解釋器,用于解釋執(zhí)行SMIL文件的播放邏輯,觸發(fā)下一級SMIL引擎和/或遠(yuǎn)程媒體代理和/或本地媒體播放設(shè)備播放媒體內(nèi)容,并控制與用戶的交互;以及遠(yuǎn)程事件代理,用于維護(hù)包含所述本地代理對象與分發(fā)到下一級SMIL引擎和/或遠(yuǎn)程媒體代理的中間SMIL模型的關(guān)系的映射表,并負(fù)責(zé)本地SMIL引擎與下一級SMIL引擎和/或遠(yuǎn)程媒體代理之間的事件傳輸。
2.根據(jù)權(quán)利要求1所述的SMIL引擎,其中所述SMIL引擎控制的媒體設(shè)備包括下一級SMIL引擎、遠(yuǎn)程媒體代理和本地媒體播放設(shè)備,其均支持SMIL定義的媒體交互能力的子集,并在系統(tǒng)啟動時將各自的媒體交互能力、位置信息登記在所述媒體設(shè)備注冊模塊中。
3.根據(jù)權(quán)利要求1所述的SMIL引擎,其中,所述中間SMIL模型包括分發(fā)到下一級SMIL引擎的包含多媒體內(nèi)容的時間容器和分發(fā)到遠(yuǎn)程媒體代理的媒體對象,以及所述內(nèi)部SMIL模型是在本地SMIL解釋器上可執(zhí)行的時間容器,包含本級SMIL模型的控制邏輯和被分發(fā)到本地媒體播放設(shè)備的媒體對象。
4.根據(jù)權(quán)利要求1所述的SMIL引擎,其中所述本地媒體播放設(shè)備包括媒體播放控制器,用于根據(jù)所述SMIL解釋器的觸發(fā)控制,驅(qū)動媒體播放器,并獲取播放的媒體內(nèi)容;以及媒體播放器,用于播放媒體內(nèi)容。
5.根據(jù)權(quán)利要求1所述的SMIL引擎,其中所述事件包括定時事件、文檔對象模型事件、用戶交互事件和內(nèi)部事件。
6.根據(jù)權(quán)利要求1至5任一所述的SMIL引擎,其中所述本地媒體播放設(shè)備可采用普及計(jì)算設(shè)備。
7.一種用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng),包括多個根據(jù)權(quán)利要求1至6任一所述的SMIL引擎,用于分析和解釋SMIL文件,并與下一級SMIL引擎、遠(yuǎn)程媒體代理或本地媒體播放設(shè)備進(jìn)行通信,對其進(jìn)行控制;多個遠(yuǎn)程媒體代理,用于接收上一級SMIL引擎的指令,開始或終止向遠(yuǎn)程媒體播放設(shè)備提供媒體對象、返回事件以及提供基本的用戶交互功能,其中所述多個SMIL引擎、多個遠(yuǎn)程媒體代理、本地媒體播放設(shè)備和遠(yuǎn)程媒體播放設(shè)備構(gòu)成樹狀結(jié)構(gòu),其根節(jié)點(diǎn)是一個SMIL引擎,分枝節(jié)點(diǎn)是SMIL引擎和遠(yuǎn)程媒體代理,葉節(jié)點(diǎn)是本地媒體播放設(shè)備和遠(yuǎn)程媒體播放設(shè)備。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述遠(yuǎn)程媒體代理根據(jù)遠(yuǎn)程媒體播放設(shè)備的能力確定提供的媒體對象如果遠(yuǎn)程媒體播放設(shè)備不能訪問媒體服務(wù)器,則提供的媒體對象中包含播放的媒體內(nèi)容;以及如果遠(yuǎn)程播放設(shè)備能夠訪問媒體服務(wù)器,則提供的媒體對象中包括獲取媒體內(nèi)容的媒體服務(wù)器的地址。
9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其中所述本地媒體播放設(shè)備和遠(yuǎn)程媒體播放設(shè)備可采用普及計(jì)算設(shè)備。
10.一種用于在權(quán)利要求7至9任一所述的系統(tǒng)中播放基于SMIL的多媒體內(nèi)容的方法,包括以下步驟SMIL引擎分析SMIL文件,并獲取其控制的媒體設(shè)備的媒體交互能力信息;SMIL引擎根據(jù)所獲取的媒體交互能力信息,產(chǎn)生中間SMIL模型分發(fā)到下一級SMIL引擎和/或遠(yuǎn)程媒體代理,并產(chǎn)生對應(yīng)的本地代理對象;和/或產(chǎn)生內(nèi)部SMIL模型部署到本地SMIL解釋器;更新記載所述本地代理對象與分發(fā)到下一級SMIL引擎的中間SMIL模型、遠(yuǎn)程媒體代理的媒體對象之間關(guān)系的映射表;下一級SMIL引擎重復(fù)執(zhí)行上述步驟,直到最后一級SMIL引擎;由各SMIL引擎解釋各自接收的中間SMIL模型,生成內(nèi)部SMIL模型;以及根據(jù)時間和事件啟動遠(yuǎn)程媒體播放設(shè)備和/或本地媒體播放設(shè)備播放媒體內(nèi)容。
11.根據(jù)權(quán)利要求10所述的方法,其中所述SMIL引擎控制的媒體設(shè)備包括下一級SMIL引擎、遠(yuǎn)程媒體代理和本地媒體播放設(shè)備,其均支持SMIL定義的媒體交互能力的子集。
12.根據(jù)權(quán)利要求10所述的方法,其中,所述中間SMIL模型包括分發(fā)到下一級SMIL引擎的包含多媒體內(nèi)容的時間容器和分發(fā)到遠(yuǎn)程媒體代理的媒體對象,以及所述內(nèi)部SMIL模型是在本地可執(zhí)行的時間容器,包含本級SMIL模型的控制邏輯和被分發(fā)到本地媒體播放設(shè)備的媒體對象。
13.根據(jù)權(quán)利要求10所述的方法,其中所述事件包括定時事件、文檔對象模型事件、用戶交互事件和內(nèi)部事件。
14.根據(jù)權(quán)利要求10所述的方法,其中所述本地媒體播放設(shè)備播放媒體內(nèi)容的步驟包括本地媒體播放設(shè)備根據(jù)所收到的媒體對象的定義,到相應(yīng)的媒體服務(wù)器獲取媒體內(nèi)容后進(jìn)行播放。
15.根據(jù)權(quán)利要求10所述的方法,其中所述遠(yuǎn)程媒體播放設(shè)備播放媒體內(nèi)容的步驟包括遠(yuǎn)程媒體代理根據(jù)其控制的遠(yuǎn)程媒體播放設(shè)備的能力,確定是否需要獲取播放的媒體內(nèi)容;如果需要,則由遠(yuǎn)程媒體代理在獲取了播放的媒體內(nèi)容后,提供給遠(yuǎn)程媒體播放設(shè)備播放;如果不需要,則向遠(yuǎn)程媒體播放設(shè)備提供相應(yīng)的媒體鏈接或描述符,由遠(yuǎn)程媒體播放設(shè)備獲取播放的媒體內(nèi)容后播放。
16.根據(jù)權(quán)利要求10至15任一所述的方法,其中所述本地媒體播放設(shè)備和遠(yuǎn)程媒體播放設(shè)備可采用普及計(jì)算設(shè)備。
全文摘要
用于播放基于SMIL的多媒體內(nèi)容的系統(tǒng),包括多個SMIL引擎,用于分析和解釋SMIL文件,并與子SMIL引擎、遠(yuǎn)程媒體代理或本地媒體播放設(shè)備進(jìn)行通信,對其進(jìn)行控制;多個遠(yuǎn)程媒體代理,用于接收上一級SMIL引擎的指令,開始或終止向遠(yuǎn)程媒體播放設(shè)備提供媒體對象、返回事件以及提供基本的用戶交互功能;多個SMIL引擎、多個遠(yuǎn)程媒體代理、本地和遠(yuǎn)程媒體播放設(shè)備構(gòu)成樹狀結(jié)構(gòu),其根節(jié)點(diǎn)是一個SMIL引擎,分枝節(jié)點(diǎn)是SMIL引擎和/或遠(yuǎn)程媒體代理,葉節(jié)點(diǎn)是本地和遠(yuǎn)程媒體播放設(shè)備。還提供了相應(yīng)的SMIL引擎及方法。采用本發(fā)明可以在一組PvC設(shè)備上播放基于SMIL的多媒體內(nèi)容,使該組PvC設(shè)備可根據(jù)需要動態(tài)配置,構(gòu)成新的多媒體終端。
文檔編號H04L29/00GK1855095SQ200510068218
公開日2006年11月1日 申請日期2005年4月27日 優(yōu)先權(quán)日2005年4月27日
發(fā)明者周宇辰, 章榮盛, 林劍 申請人:國際商業(yè)機(jī)器公司