專利名稱:媒體時間線排序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及媒體,尤其涉及媒體時間線排序。
技術(shù)背景諸如臺式PC、機頂盒、個人數(shù)字助理(PDA)等的計算機用戶可訪問來自不 斷增加的各種源的不斷增加數(shù)量的媒體。例如,用戶可與執(zhí)行多個應用程序以提供 諸如家庭錄像、歌曲、幻燈片演示等輸出用媒體的臺式PC交互。用戶還可利用機 頂盒來接收經(jīng)廣播網(wǎng)絡廣播到機頂盒的傳統(tǒng)電視節(jié)目。此外,機頂盒可被配置為個 人錄像機(PVR),從而用戶可將廣播內(nèi)容存儲在機頂盒上的存儲器內(nèi)以便于后來 回放。此外,用戶可與執(zhí)行多個應用程序使用戶可讀取和發(fā)送電子郵件、玩視頻游 戲、查看電子表格等的無線電話交互。由于各種各樣的媒體源和各種各樣的可用來提供媒體并與之交互的計算機, 傳統(tǒng)的應用程序和計算機常常被配置成具體地尋址各種特定類型的媒體。例如,在 視頻游戲控制臺上執(zhí)行以輸出視頻游戲的應用程序常常被配置成向電視機提供應 用程序的輸出,而不被配置成提供可由其它計算機和其它設備利用的輸出。因此, 呈現(xiàn)由諸如計算機和/或應用程序的不同媒體源提供的內(nèi)容可涉及時間和設備密集 的多個應用程序和設備。此外,在同一計算機上執(zhí)行的多個應用程序可被配置成具 體地尋址由各相應應用程序提供的特定類媒體。例如,第一音頻回放應用程序可被 配置成輸出配置為歌曲的媒體。但是,第二音頻回放應用程序可被配置成以與第一 音頻回放應用程序不兼容的音頻格式,諸如音頻口述格式來記錄和回放唱片。因而, 甚至被配置成在同一計算機上執(zhí)行的應用程序和例如音頻的相同類型媒體可提供 彼此不兼容的媒體。時間線向用戶提供定義媒體呈現(xiàn)的方法。例如,媒體播放器可播放通常稱為 "播放列表"的一歌曲列表。然而,傳統(tǒng)的時間線受到各種各樣的媒體源和可用來 提供媒體并與之交互的各種各樣的計算機配置限制。當需要輸出例如來自不同應用 程序的媒體時,每個類型的媒體會需要涉及對不同應用程序的使用的不同時間線。 這可導致計算機硬件和軟件資源的低效使用。此外,不同的時間線可使得來自相應
時間線的輸出難以協(xié)調(diào),諸如并發(fā)地輸出來自各個時間線的媒體。此外,大時間線的執(zhí)行可導致計算機的軟件和/或硬件資源的低效使用。當載入例如一個大的歌曲播放列表時,該播放列表中的每首歌曲都被載入。因此,播放列表的初始載入會消費大量的硬件和/或軟件資源,從而在載入和播放該播放列表中的歌曲時導致延遲。因此,持續(xù)需要提供用于排序時間線以確定如何再現(xiàn)該時間線的經(jīng)改進時間線和技術(shù)。發(fā)明內(nèi)容描述了排序媒體時間線。媒體時間線向用戶提供了基于媒體定義呈現(xiàn)的一種 技術(shù)。媒體時間線可用來表達媒體的分組和/或組合并提供由時間線源使用的合成 元數(shù)據(jù),以提供由媒體時間線描述的媒體的呈現(xiàn)。媒體時間線可用各種方式配置以 解決各種因素。還描述了時間線排序器,該時間線排序器可執(zhí)行成將媒體時間線分成多個片 段。在一實現(xiàn)中, 一種方法包括在應用程序編程接口上接收媒體時間線,其中該媒 體時間線包括多個時間線對象。時間線對象的一個或多個引用多個媒體的相應之 一。多個片段從媒體時間線生成以供順序再現(xiàn),從而每個片段引用在該片段持續(xù)期 間再現(xiàn)的 一 特定組時間線對象。
圖1是計算機提供對多個媒體的訪問的一示例性實現(xiàn)中環(huán)境的示圖。圖2是用軟件實現(xiàn)的系統(tǒng)包括與媒體基礎(chǔ)交互以控制多個媒體的呈現(xiàn)的應用 程序的一示例性實現(xiàn)中系統(tǒng)的高級框圖。圖3是其中媒體時間線被示為包括提供媒體輸出以便呈現(xiàn)的多個節(jié)點的樹的 一示例性實現(xiàn)的示圖。圖4是示出順序節(jié)點和作為順序節(jié)點的子節(jié)點的多個葉節(jié)點的一示例性實現(xiàn)的示圖。圖5是示出其中順序節(jié)點和作為順序節(jié)點的子節(jié)點的多個節(jié)點包括指定用于執(zhí)行相應多個節(jié)點的定時信息的元數(shù)據(jù)的一示例性實現(xiàn)的示圖。圖6是示出并行節(jié)點和作為并行節(jié)點的子節(jié)點的多個葉節(jié)點的一示例性實現(xiàn)的示圖。 圖7是示出可包括在節(jié)點內(nèi)的元數(shù)據(jù)的示例的示例性實現(xiàn)中節(jié)點的示圖。 圖8是示出節(jié)點內(nèi)所包括的指定多個簡單效果的元數(shù)據(jù)的一示例性實現(xiàn)中節(jié) 點的示圖。圖9是示出向兩個或多個子節(jié)點的輸出提供復合效果的并行節(jié)點的一示例性 實現(xiàn)的示圖。圖IO是指定一切換效果以在由前一節(jié)點引用的媒體的輸出與由后一節(jié)點引用 的媒體的輸出之間提供效果的一示例性實現(xiàn)的示圖。圖11是示出具有包括多個效果元數(shù)據(jù)的元數(shù)據(jù)的節(jié)點的一示例性實現(xiàn)的示圖。圖12是其中媒體時間線的節(jié)點基于包括在節(jié)點內(nèi)的元數(shù)據(jù)載入的動態(tài)載入的 一示例性實現(xiàn)中媒體時間線的示圖。圖13是其中媒體時間線的節(jié)點在按需基礎(chǔ)上由節(jié)點源定義和實現(xiàn)的動態(tài)載入的一示例性實現(xiàn)中媒體時間線的示圖。圖14是其中事件由節(jié)點提供使得媒體時間線上發(fā)生的改變可被傳送到會受該改變影響的節(jié)點的一示例性實現(xiàn)中媒體時間線的示圖。圖15是示出包括一順序節(jié)點和由經(jīng)ASX文件擴展名標識的Windows⑧媒體播放器播放列表文件所描述的三個葉節(jié)點的媒體時間線的一示例性實現(xiàn)的示圖。圖16是示出包括具有由可執(zhí)行時間語言(XTL)文件描述的兩個子順序節(jié)點的并行節(jié)點的媒體時間線的一示例性實現(xiàn)的示圖。圖17是示出第一和第二媒體在特定時間間隔上的輸出、并包括在第一和第二媒體之間切換的效果的一示例性實現(xiàn)的示圖。圖18是適于實現(xiàn)圖17的交叉消隱效果的一示例性實現(xiàn)的媒體時間線的示圖。圖19是用于排序的一示例性時間線的用戶界面視圖的示圖。圖20是示出通過時間線排序器將圖19的時間線分成多個段形成的分段時間線的另一用戶界面視圖的示圖。圖21是使用被配置成提供圖19和20中所示時間線的對象模型表示的示例性時間線的示圖。圖22是示出其中時間線排序器將媒體時間線排序成多個段以供再現(xiàn)的一示例 性實現(xiàn)中過程的流程圖。圖23是使用圖22的過程從圖21的時間線形成的一示例性排序器元陣列的示圖。
圖24是被配置成提供不具有指定開始和終止時間的順序播放列表的順序節(jié)點 的示圖。圖25是示出其中排序包括不具有開始或終止時間指示的時間線對象的媒體時 間線的 一 示例性實現(xiàn)中的過程的流程圖。圖26是從圖24的媒體時間線形成的、如由時間線排序器排序的一示例性陣列的示圖。圖27是示出其中時間線排序器從媒體源獲得陣列中未在相應元數(shù)據(jù)中指定持 續(xù)時間的時間線對象的持續(xù)時間的一示例性實現(xiàn)中過程的流程圖。 圖28是一示例性操作環(huán)境的示圖。相同的標號在本公開內(nèi)容和附圖中使用以引用相似的組件和特征。
具體實施方式
縱覽描述了媒體時間線排序。媒體時間線向用戶提供了一種基于媒體,諸如現(xiàn)有 媒體(例如諸如視頻、歌曲、文檔等已存儲媒體)和/或比如流式音頻和/或視頻的 從媒體源"實時"輸出的媒體來定義呈現(xiàn)的技術(shù)。媒體時間線可用來表達媒體的分 組和/或組合,并提供由時間線源使用的合成元數(shù)據(jù),該時間線源執(zhí)行(例如再現(xiàn)) 媒體時間線以提供包括由該媒體時間線描述的媒體的最終呈現(xiàn)。在一實現(xiàn)中,媒體時間線被配置用于動態(tài)創(chuàng)建和/或載入媒體時間線。如前所 述,大的媒體時間線,例如具有相當數(shù)量節(jié)點和/或大量數(shù)據(jù)的媒體時間線,可在 載入該時間線時導致低效。例如,載入媒體時間線的計算機可使用相當多的處理和 存儲器資源,盡管此時并不輸出該媒體時間線的所有節(jié)點。因此,媒體時間線可被 配置用于動態(tài)創(chuàng)建和/或載入,使得該媒體時間線在再現(xiàn)時可智能地延遲媒體時間 線的節(jié)點的載入和/或創(chuàng)建。通過將媒體時間線配置用于動態(tài)載入和創(chuàng)建,計算機 的硬件和/或軟件資源可在計算機啟動期間有效地利用,并一般地用于載入媒體時 間線。例如,可執(zhí)行時間線排序器以將由時間線對象模型所述的媒體時間線轉(zhuǎn)變成 一連串段,這些段可使用媒體處理管線個別地再現(xiàn)。在一實現(xiàn)中,時間線排序器可 確定"空閑的"段使該時間線排序器無需"預先"定義整個呈現(xiàn)。由此,每個段可 被再現(xiàn)為媒體處理管線中的獨立件,從而整個呈現(xiàn)不作為單個實體預先定義。如果 媒體時間線的某部分改變,諸如被更新等,則可在無需"撕開"用來再現(xiàn)媒體時間
線的媒體管線的情況下對媒體時間線作出改變。對媒體時間線的提供媒體時間線節(jié) 點的動態(tài)創(chuàng)建和/或載入的進一步討論可相關(guān)于圖12-27進行。在以下討論中,首先描述可用來采用媒體時間線排序技術(shù)的一示例性環(huán)境。 然后描述可用于示例性環(huán)境以及其它環(huán)境中的示例性過程。示例性環(huán)境圖1是計算機102提供對多個媒體的訪問的一示例性實現(xiàn)的環(huán)境100的示圖。 如圖所示,計算機102被配置為個人計算機(PC)。計算機102還可采取各種其它 配置,諸如移動站、娛樂設施、與顯示設備通信耦合的機頂盒、無線電話、視頻游 戲控制臺、個人數(shù)字輔助(PDA)等。因而,計算機102的范圍可從具有相當存儲 器和處理器資源的全資源設備(例如PC、裝有硬盤的電視錄像機)到具有有限存 儲器和/或處理資源的低資源設備(例如傳統(tǒng)機頂盒)。計算機102的另外實現(xiàn)相關(guān) 于圖28進行描述。計算機102可從各種媒體源中獲得各種媒體。例如,計算機102可本地地存 儲多個媒體104(1)、…、104(k)、…、104(K)。該多個媒體104(1)- 104(K)可包括具 有諸如WMV、 WMA、 MPEG1、 MPEG2、 MP3等各種格式的音頻和視頻內(nèi)容的 排序。此外,媒體104(1)- 104(K)可從各種源獲得,諸如從輸入設備、應用程序的 執(zhí)行等等。計算機102例如可包括多個應用程序106(1)、…、106(n)、…、106(N)。多個 應用程序106(1)- 106(N)的一個或多個可被執(zhí)行以提供諸如文檔、電子表格、視頻、 音頻等的媒體。此外,多個應用程序106(1)- 106(N)的一個或多個可被配置成提供 媒體交互,諸如媒體104(1)- 104(K)的編碼、編輯、和/或回放。計算機102還可包括多個輸入設備108(1)、…、108(m)、、 108(M)。多個 輸入設備108(1)- 108(M)的一個或多個可被配置成提供用于輸入到計算機102的媒 體。輸入設備108(1)例如被示為話筒,它被配置成提供諸如用戶語音、音樂會上的 歌曲等音頻數(shù)據(jù)的輸入。多個輸入設備108(1)- 108(M)還可被配置成用于用戶交互 以提供控制多個應用程序106(1)- 106(N)的執(zhí)行的輸入。例如,輸入設備108(1)可 用來輸入來自用戶的語音命令,諸如啟動多個應用程序106(1)- 106(N)的特定之一 的執(zhí)行、控制多個應用程序106(1)- 106(N)的執(zhí)行等。在另一示例中,輸入設備108(m) 被示為鍵盤,它被配置成提供控制計算機102的輸入,諸如調(diào)節(jié)計算機102的設置。此外,計算機102可包括多個輸出設備110(1)、…、llO(j)、…、IIO(J)。輸出 設備110(1)- IIO(J)可被配置成再現(xiàn)媒體104(1)- 104(K)以向用戶輸出。例如,輸出
設備110(1)被示為用于再現(xiàn)音頻數(shù)據(jù)的揚聲器。輸出設備110(j)被示為諸如電視機 的顯示設備,它被配置成再現(xiàn)音頻和/或視頻數(shù)據(jù)。因而,多個媒體104(1)- 104(K) 的一個或多個可由輸入設備108(1)- 108(M)提供并由計算機102本地存儲。盡管多 個輸入和輸出設備108(1)- 108(M)、 110(1)- IIO(J)被單獨示出,但輸入和輸出設備 108(1)- 108(M)、 110(1)-IIO(J)的一個或多個可被組合成單個設備,諸如具有輸入用 按鈕、顯示設備和揚聲器的電視機。計算機102還可被配置成經(jīng)由網(wǎng)絡112通信以獲得在網(wǎng)絡112上遠程可用的 媒體。網(wǎng)絡112被示為因特網(wǎng),并且可包括各種其他網(wǎng)絡,例如內(nèi)聯(lián)網(wǎng)、有線或無 線電話網(wǎng)絡、廣播網(wǎng)絡和其它廣域網(wǎng)。遠程計算機114與網(wǎng)絡112通信耦合,從而 遠程計算機114可向計算機102提供媒體。例如,遠程計算機114可包括一個或多 個應用程序以及提供諸如家庭影片的媒體的攝影機116。該遠程計算機114還可包 括輸出媒體的輸入設備,諸如所示的顯示設備118。由計算機102經(jīng)由網(wǎng)絡112從 遠程計算機114獲得的媒體可與媒體104(1)- 104(K)—起本地存儲。換言之,媒體 104(1)-104(K)可包括經(jīng)由網(wǎng)絡112從遠程計算機114獲得的媒體的本地存儲副本。因而,計算機102可獲得并存儲多個媒體104(1)-104(K),這些媒體104(1)-104(K)可在本地提供(例如通過執(zhí)行多個應用程序106(1)-106(N)和/或使用多個輸 入設備108(1)-108(M)),并且從遠程計算機114遠程地提供(例如通過執(zhí)行應用程 序和/或使用輸入設備)。盡管多個媒體104(1)-104(K)已被描述為存儲在計算機102 上,但媒體104(1)-104(K)也可"實日寸"地提供。例如,音頻數(shù)據(jù)可在不存儲該音 頻數(shù)據(jù)的情況下從被示為話筒的輸入設備108(1)中流入。計算機102包括在計算機102上執(zhí)行時生成媒體時間線122的時間線發(fā)生器 120。例如,時間線發(fā)生器120可被配置為展現(xiàn)可用來諸如由用戶通過用戶界面生 成媒體時間線122的一個或多個軟件組件的應用程序。如前所述,媒體時間線122向用戶提供定義來自多個媒體源的存儲和/或?qū)崟r媒體的呈現(xiàn)的技術(shù)。例如,媒體 時間線122可描述從輸入設備108(1)-108(M)、應用程序106(1 )-106(N)、和/或遠程 計算機114中獲得的媒體集。用戶可利用輸入設備108(1)-108(M)的一個或多個來 與媒體發(fā)生器120交互,以定義媒體104(1)-104(K)的分組和/或組合。用戶還可定 義媒體104(1)-104(K)的呈現(xiàn)的順序和效果。時間線源124然后可在計算機102上 執(zhí)行以再現(xiàn)媒體時間線122。媒體時間線122在再現(xiàn)時提供媒體104(1)-104(K)的明 確分組和/或組合,以供多個輸出設備110(1)- IIO(J)的一個或多個再現(xiàn)。此外,時 間線發(fā)生器120還可通過編程生成媒體時間線122,如在以下實現(xiàn)中更詳細地描述的。為了確定明確的分組,計算機102還包括時間線排序器126。時間線排序器 126可執(zhí)行以將媒體時間線分成多個段,其中每個段包括要在不作改變的該段期間 再現(xiàn)的一組時間線對象。對時間線排序器126的執(zhí)行的進一步討論可相關(guān)于圖 12-27進行。圖2是一示例性實現(xiàn)中系統(tǒng)200的高級框圖,在該實現(xiàn)中用軟件實現(xiàn)的系統(tǒng) 200包括與媒體基礎(chǔ)204交互以控制多個媒體206(g)的呈現(xiàn)的應用程序202,其中 g是從1到"G"的任意數(shù)字。媒體基礎(chǔ)204可作為操作系統(tǒng)的一部分包括在內(nèi)以 提供媒體206(g)的回放,從而與操作系統(tǒng)交互的應用程序可在不"知道"媒體格式 的特定細節(jié)的情況下控制媒體206(g)的回放。媒體206(g)可通過執(zhí)行應用程序 106(1)-106(N)、使用輸入設備108(1)-108(M)、輸出設備110(1)-110(J)等從各種源, 諸如從圖1的媒體104(1)-104(K)提供??膳c圖1的應用程序106(1)-106(N)相同或不同的應用程序202與媒體引擎208 交互以控制媒體104(1)-104(K)。在至少一些實施例中,媒體引擎208用作想要一 定程度地參與呈現(xiàn)的應用程序202的中心焦點。在本文檔中使用時,呈現(xiàn)指或描述 媒體的處理。在所示和所述的實施例中,呈現(xiàn)用于描述媒體引擎208要對之執(zhí)行操 作的數(shù)據(jù)的格式。因而,呈現(xiàn)可導致諸如多媒體呈現(xiàn)的可視和/或可聽呈現(xiàn)媒體, 在該多媒體呈現(xiàn)中音頻和所伴隨的視頻在諸如圖1的被示為可與臺式PC相關(guān)聯(lián)的 顯示設備的輸出設備llO(j)的顯示設備上再現(xiàn)的窗口內(nèi)向用戶呈現(xiàn)。呈現(xiàn)也可導致 將媒體內(nèi)容寫入諸如盤文件的計算機可讀介質(zhì)。因而,呈現(xiàn)并不限于多媒體內(nèi)容在 計算機上再現(xiàn)的情形。在一些實施例中,諸如解碼、編碼和各種變換(諸如轉(zhuǎn)變、 效果等)的操作可作為呈現(xiàn)的結(jié)果而進行。在一實施例中,媒體基礎(chǔ)204展現(xiàn)可由應用程序202調(diào)用以與媒體206(g)交 互的一個或多個應用程序界面。例如,媒體基礎(chǔ)204可被視為存在于在圖1的計算 機102上執(zhí)行的軟件的"基礎(chǔ)結(jié)構(gòu)"層上。換言之,媒體基礎(chǔ)204是由應用程序 202用來與媒體206(g)交互的軟件層。媒體基礎(chǔ)204可被用來控制媒體206(g)的多 個方面,諸如輸出、再現(xiàn)、存儲等。因而,媒體基礎(chǔ)204可被用來使每個應用程序 202不必對可用于系統(tǒng)200的每類媒體206(g)實現(xiàn)單獨代碼。這樣,媒體基礎(chǔ)204 提供一組可重復使用的軟件組件來實現(xiàn)媒體特定任務。媒體基礎(chǔ)204可使用數(shù)個組件,其中包括媒體時間線122、時間線源124、媒 體源210、媒體處理器212、媒體對話214、媒體引擎208、媒體解析器216、 一個
或多個變換218、 一個或多個媒體宿220、 222等。各個所示和所述實施例的一個 優(yōu)點是系統(tǒng)200在各種不同類組件可結(jié)合本文所述系統(tǒng)使用的意義上而言是可插 入模型。也作為系統(tǒng)200的一部分包括在內(nèi)是目的文件224,如下文中更詳細地所 述。然而,在至少一個實施例中,目的文件224是定義要在哪里(例如窗口、盤文 件等)呈現(xiàn)、以及在呈現(xiàn)時要發(fā)生什么的對象。即,目的文件可對應于數(shù)據(jù)流入其 中的一個或多個媒體宿220、 222。媒體時間線122采用向用戶提供基于由媒體時間線源124再現(xiàn)的媒體定義呈 現(xiàn)的方法的一個時間線對象模型。媒體時間線122的范圍可以是從媒體文件的順序 列表到更復雜的形式。例如,媒體時間線122可采用諸如SMIL和AAF的文件結(jié) 構(gòu)來表達包括媒體之間的轉(zhuǎn)變、效果等的媒體回放體驗。例如,應用程序202可被 配置為可播放通常稱為播放列表的歌曲列表的媒體播放器。作為另一示例,在編輯 系統(tǒng)中,用戶可將一個視頻覆蓋到另一視頻上、剪輯一媒體、向媒體添加效果等等。 這樣的媒體分組或組合可使用媒體時間線122來表達。對媒體時間線122的討論相 關(guān)于圖3進行。媒體源210被用來抽象媒體的供應者。例如,媒體源210可被配置為從一特 定源讀取特定類型的媒體。例如, 一類媒體源可從外部世界捕捉視頻(例如相機), 而另一類媒體源則可捕捉音頻(例如話筒)?;蛘呋虼送?,媒體源210可從盤中讀 取經(jīng)壓縮的數(shù)據(jù)流,并將該數(shù)據(jù)流分成其經(jīng)壓縮視頻和經(jīng)壓縮音頻成分。又一種媒 體源210可從圖1的網(wǎng)絡112中獲取數(shù)據(jù)。因而,媒體源210可用來提供獲取媒體 的一致界面。媒體源210提供一個或多個媒體呈現(xiàn)226對象(媒體呈現(xiàn))。媒體呈現(xiàn)226抽 象相關(guān)媒體流集的描述。例如,媒體呈現(xiàn)226可提供影片的成對音頻和視頻流。此 外,媒體呈現(xiàn)226可描述媒體源210在給定時間點的配置。例如,媒體呈現(xiàn)226 可包含有關(guān)媒體源210的信息,包括媒體源210的可用流及其例如音頻、視頻、 MPEG等媒體類型的描述。媒體源210也可提供可表示來自媒體源210的單個流的媒體流228對象(媒 體流),該媒體源210可由應用程序202訪問,即展現(xiàn)給應用程序202。媒體流228 因而允許應用程序202檢索媒體206(g)的樣本。在一實現(xiàn)中,媒體流228被配置成 提供單媒體類型。媒體源可提供一個以上媒體流。例如,wmv文件可具有同一文 件中的音頻和視頻。該文件的媒體源因此將提供兩個流, 一個為音頻而另一個為視 頻。
因此,在媒體基礎(chǔ)204中,媒體源210表示輸出呈現(xiàn)用樣本的軟件組件。時 間線源124解釋媒體時間線122,但同時也可以類似于媒體源210的方式動作。例 如,時間線源210可用來隱藏再現(xiàn)媒體時間線122的錯綜復雜,以從媒體基礎(chǔ)204 的其它組件提供由媒體時間線122描述的媒體。媒體處理器212管理拓撲230中的數(shù)據(jù)流。拓撲230定義對于給定呈現(xiàn)數(shù)據(jù) 如何流過各個組件。"全"拓撲包括用來處理數(shù)據(jù)使數(shù)據(jù)在不同組件之間有正確格 式轉(zhuǎn)變的情況下流動的每個組件,例如軟件模塊。當創(chuàng)建了一拓撲時,用戶可選擇 部分地創(chuàng)建之。但是該部分拓撲本身不足以提供最終呈現(xiàn)。因此,稱為拓撲載入器 232的組件可取得該部分拓撲,并通過在部分拓撲中添加各組件之間的適當數(shù)據(jù)換 算變換將其轉(zhuǎn)變成全拓撲。例如,在拓撲230中,數(shù)據(jù)一般源自媒體源210、流過一個或多個變換218、 并進入一個或多個媒體宿220、 222。變換218可包括通常用于呈現(xiàn)中的任何適當 數(shù)據(jù)處理組件。這些組件可包括以本領(lǐng)域技術(shù)人員所理解的某方式(諸如向數(shù)據(jù)添 加一效果)解壓縮壓縮數(shù)據(jù)和/或?qū)?shù)據(jù)進行操作的組件。例如,對于視頻數(shù)據(jù), 變換可包括影響亮度、色彩轉(zhuǎn)變、以及調(diào)整大小等的變換。對于音頻數(shù)據(jù),變換可 包括影響混響和再取樣的變換。此外,解碼和編碼也被視為變換。媒體宿220、 222通常與一特定類媒體內(nèi)容相關(guān)聯(lián)。因而,音頻內(nèi)容可具有諸 如音頻再現(xiàn)器的相關(guān)聯(lián)音頻宿。類似地,視頻內(nèi)容可具有諸如視頻再現(xiàn)器的相關(guān)聯(lián) 視頻宿。其它的媒體宿可向諸如計算機可讀媒體(例如盤文件等)發(fā)送數(shù)據(jù),經(jīng)由 網(wǎng)絡流動數(shù)據(jù),諸如廣播無線電節(jié)目等。媒體對話214是可安排多個呈現(xiàn)的組件。因此,媒體處理器212可用來驅(qū)動 一給定呈現(xiàn),而媒體對話214用來安排多個呈現(xiàn)。例如,媒體對話214可改變由媒 體處理器212再現(xiàn)的拓撲。例如,媒體對話214可從在媒體處理器212上再現(xiàn)的第 一拓撲變成第二拓撲,從而使來自由相應拓撲描述的連續(xù)呈現(xiàn)的樣本的再現(xiàn)之間沒 有間隙。因而,媒體對話214可在媒體回放從一個呈現(xiàn)移到另一呈現(xiàn)時提供無縫用 戶體驗。源解析器216組件可用來從URL和/或字節(jié)流對象創(chuàng)建媒體源210。該源解析 器216可在不需要有關(guān)由指定資源產(chǎn)生的數(shù)據(jù)形式的先驗知識的情況下提供創(chuàng)建 媒體源210的同步和異步方法。在至少一實施例中,媒體基礎(chǔ)204用來抽取掉媒體基礎(chǔ)204的各個組件的存 在及其間交互的具體細節(jié)。即,在一些實施例中,看來駐留在媒體基礎(chǔ)204內(nèi)的組 件在編程意義上而言對應用程序202不可見。這允許媒體基礎(chǔ)204執(zhí)行所謂"黑箱" 對話。例如,媒體引擎208可通過向媒體對話214提供某數(shù)據(jù),諸如關(guān)聯(lián)于媒體(例 如URL)和目的文件224的信息與該媒體對話交互,并可向媒體對話214轉(zhuǎn)發(fā)應 用程序202的命令(例如打開、開始、終止等)。該媒體對話214然后取得所提供 的信息,并使用適當?shù)哪康奈募?chuàng)建適當?shù)某尸F(xiàn)。媒體基礎(chǔ)204還可包括時間線插件234。時間線插件234可用來使不同的媒體 時間線文件格式可被"插入"媒體基礎(chǔ)204。例如,字節(jié)流插件236可寫成感興趣 的格式并向媒體基礎(chǔ)204注冊。源解析器216然后可在打開該類型的文件時調(diào)用字 節(jié)流插件236。而字節(jié)流插件236又可解析該文件,創(chuàng)建表示該文件中所述呈現(xiàn)的 媒體時間線122,并為之創(chuàng)建時間線源124。 一般而言,字節(jié)流插件236負責讀取 原始的字節(jié)流并為之創(chuàng)建媒體源208。在一實現(xiàn)中,媒體基礎(chǔ)204的其余組件不知 道在此實例中創(chuàng)建的媒體源是時間線源124。因此,時間線源124被視為類似于任 何其它媒體源208。在一實現(xiàn)中,可解析媒體時間線122并創(chuàng)建時間線源124的字 節(jié)流插件236被稱為時間線插件,它將相關(guān)于圖23更詳細地進行描述。時間線插件234還可提供一接口使應用程序202可直接與時間線插件交互, 諸如從文件中載入媒體時間線122或?qū)⒚襟w時間線122保存到文件中。例如,時間 線插件234可被創(chuàng)建,然后被調(diào)用以啟動一載入功能來提供字節(jié)流。時間線插件 234然后可解析文件并創(chuàng)建一個根節(jié)點和任何附加節(jié)點以創(chuàng)建媒體時間線122,這 將相關(guān)于圖3更詳細地進行描述。時間線插件234還可用來使媒體時間線122保持 為不同格式。例如,應用程序202可通過編程創(chuàng)建媒體時間線122。換言之,應用 程序可用作圖1的時間線發(fā)生器120。應用程序202然后可創(chuàng)建ASX文件的時間 線插件,并請求該時間線插件以ASX格式保存媒體時間線122。在另一示例中, 用戶可打開一m3u文件一即用于指定多個MP3文件的播放列表文件格式,從中取 得媒體時間線122,然后請求時間線插件以ASX格式保存媒體時間線122。在該示 例中,時間線插件用作時間線發(fā)生器120。因而,媒體基礎(chǔ)204可展現(xiàn)多個軟件組 件,這些軟件組件在應用程序編程接口上提供媒體功能以供應用程序202使用。圖3是其中媒體時間線300被視為包括描述媒體輸出以便呈現(xiàn)的多個節(jié)點的 樹的一示例性實現(xiàn)的示圖??膳c圖1和2的媒體時間線122相對應或不與之相對應 的媒體時間線300被構(gòu)建為包括多個節(jié)點302-312的樹。多個節(jié)點302-312各自包 括描述該節(jié)點和/或該特定節(jié)點的"子節(jié)點"的不同特性和動作的相應元數(shù)據(jù) 314-322。例如,節(jié)點304和節(jié)點306被分別配置為"父節(jié)點"和"子節(jié)點"。節(jié)點 304包括描述節(jié)點304的動作和特性的元數(shù)據(jù)316。元數(shù)據(jù)316還可描述各個"子" 節(jié)點306、 308,諸如節(jié)點306、 308的再現(xiàn)順序。在一實現(xiàn)中,媒體時間線300本身不可執(zhí)行以作出有關(guān)用戶界面(UI)、回放 或編輯的判定。相反,媒體時間線300上的元數(shù)據(jù)314-324由諸如圖2的時間線源 124的再現(xiàn)媒體時間線300的軟件和/或硬件組件解釋。此外,在再現(xiàn)媒體時間線 122期間使用的應用程序可獲得該特定應用程序的相關(guān)元數(shù)據(jù)。例如,圖2的應用 程序202可被配置為僅對媒體時間線中所引用的每個媒體要在何時開始的時間感 興趣的回放引擎。另一方面,諸如媒體播放器的另一應用程序可對只顯示存儲為每 個節(jié)點上的元數(shù)據(jù)的歌曲標題感興趣。這樣,元數(shù)據(jù)可由利用媒體輸出的一個或多 個應用程序同時使用。定位于媒體時間線300上的節(jié)點302-312描述了媒體時間線300的基本布局。 該布局可用來顯示由圖2的時間線源124用來對節(jié)點的再現(xiàn)排序等的用戶界面的時 間線結(jié)構(gòu)。例如,可提供各類節(jié)點302-312從而實現(xiàn)期望布局。該節(jié)點類型指示如 何解釋該節(jié)點的子節(jié)點,諸如根節(jié)點302和葉節(jié)點308-312。根節(jié)點302指定用于 再現(xiàn)元數(shù)據(jù)時間線300的開始點,并包括描述如何啟動再現(xiàn)的元數(shù)據(jù)314。在圖3的所示實現(xiàn)中,媒體時間線122的葉節(jié)點308、 310、 312直接映射到 媒體。例如,葉節(jié)點308、 310、 312可具有描述如何取得各葉節(jié)點308-312所代表 的媒體的相應元數(shù)據(jù)320、 322、 324。葉節(jié)點可指定音頻和/或視頻文件的路徑、指 向在再現(xiàn)媒體時間線300期間通過編程生成視頻幀的組件等等。例如,葉節(jié)點308 包括具有映射到被配置為話筒的輸入設備108(1)的指針326的元數(shù)據(jù)320。葉節(jié)點 310包括具有映射到媒體330的地址的指針328的元數(shù)據(jù)322,該媒體430處于本 地地包括在圖1計算機102上的存儲設備332中。葉節(jié)點312包括具有映射到網(wǎng)絡 112上遠程計算機114的網(wǎng)絡地址的指針334的元數(shù)據(jù)324。該遠程計算機114包 括攝影機116,以經(jīng)由網(wǎng)絡112向圖1的計算機102提供媒體。因而,在該實現(xiàn)中, 時間線300不包括真正的媒體,而是相反通過使用描述在何處和/或如何定位所引 用媒體的指針326、 328、 334來引用媒體。節(jié)點304、 306也可描述媒體時間線300的附加節(jié)點。例如,節(jié)點304可用來 描述節(jié)點306、 309的執(zhí)行順序。換言之,節(jié)點304用作"結(jié)型"節(jié)點以提供其"子 節(jié)點"的排序和進一步描述。有可用于媒體時間線300的各種"結(jié)型"節(jié)點,諸如 順序節(jié)點和并行節(jié)點。圖4-6描述順序和并行節(jié)點之后的示例性語義。圖4是其中示出順序節(jié)點402和作為該順序節(jié)點402的子節(jié)點的多個葉節(jié)點
404、 406、 408的一示例性實現(xiàn)400的示圖。該順序節(jié)點402的子節(jié)點一個接一個 地再現(xiàn)。此外,順序節(jié)點402可包括描述多個葉節(jié)點404-408的再現(xiàn)順序的元數(shù)據(jù) 410。如圖所示,首先再現(xiàn)葉節(jié)點404,然后再現(xiàn)葉節(jié)點406,接著再現(xiàn)葉節(jié)點408。 每個葉節(jié)點404-408包括具有指向相應媒體424、 426、 428的相應指針48、 420、 422的相應元數(shù)據(jù)412、 414、 416。因而,順序節(jié)點402可表示線性文件播放列表 的功能。盡管順序節(jié)點402的子節(jié)點在本實現(xiàn)中被配置為葉節(jié)點,但順序節(jié)點402的 子節(jié)點可表示任何其它類型的節(jié)點。例如,子節(jié)點可用來提供如圖3所示的復雜樹形結(jié)構(gòu)。例如,圖3的節(jié)點306是另一結(jié)型節(jié)點即節(jié)點304的子節(jié)點。圖5是其中順序節(jié)點502和作為該順序節(jié)點502的子節(jié)點的多個節(jié)點504、506 包括指定執(zhí)行相應多個節(jié)點504、 506的定時信息的元數(shù)據(jù)的一示例性實現(xiàn)500的 示圖。多個葉節(jié)點504、 506、 508的每一個包括如前所述的相應元數(shù)據(jù)510、 512、 514。作為節(jié)點502所指定序列的第一子節(jié)點的葉節(jié)點504的元數(shù)據(jù)510包括指定 相對于父節(jié)點即節(jié)點502的開始時間的開始時間的時間516數(shù)據(jù)。其它子節(jié)點即葉 節(jié)點506、 508使其開始時間相對于序列中的前一節(jié)點指定。例如,假設與葉節(jié)點 504相對應的媒體的輸出需要在節(jié)點502首次執(zhí)行時進行。此外,當由葉節(jié)點504 所引用的媒體結(jié)束輸出時,與葉節(jié)點506相對應的媒體要在20秒的間隔后輸出。 因此,由葉節(jié)點504的元數(shù)據(jù)510指定的時間516為"0",而由葉節(jié)點506的元數(shù) 據(jù)512指定的時間518為"20秒"。相對前一節(jié)點指定時間516、 518允許在由一序列中每個子節(jié)點所引用媒體的 持續(xù)輸出未知時定義該序列。當未指定一節(jié)點的開始時間時,如葉節(jié)點508的元數(shù) 據(jù)514所示,它表示該節(jié)點即葉節(jié)點508應當在前一節(jié)點即葉節(jié)點506已結(jié)束輸出 之后立即開始輸出。圖6是其中并行節(jié)點602包括指定示出作為并行節(jié)點602的子節(jié)點的多個葉 節(jié)點606、 608的元數(shù)據(jù)604的一示例性實現(xiàn)600的示圖。在相關(guān)于圖4和5所述 的前面實現(xiàn)中討論了順序節(jié)點,其中一個接一個地再現(xiàn)作為順序節(jié)點的子節(jié)點的節(jié) 點。為了同時提供節(jié)點的再現(xiàn),可采用并行節(jié)點602。并行節(jié)點602的子節(jié)點可同時再現(xiàn)。例如,葉節(jié)點606和葉節(jié)點608是并行 節(jié)點602的子節(jié)點。各個葉節(jié)點606、 608包括具有指向相應媒體618、 620的相應 指針614、 616的相應元數(shù)據(jù)610、 612。各個葉節(jié)點606、 608包括在指定要在何 時再現(xiàn)相應葉節(jié)點606、 608的相應元數(shù)據(jù)610、 612中所包括的相應時間622、 624。
葉節(jié)點606、 608上的時間622、 624與并行節(jié)點602即父節(jié)點相關(guān)。各個子節(jié)點可 表示任何其它類型的節(jié)點和節(jié)點組合,從而提供具有組合功能的復雜樹形結(jié)構(gòu)。例 如,"結(jié)"型節(jié)點也可引用媒體等。盡管己描述了包括時間數(shù)據(jù)的元數(shù)據(jù),但各種 元數(shù)據(jù)可被包括在媒體時間線的節(jié)點上,其一個示例在以下實現(xiàn)中描述。 被配置為存儲元數(shù)據(jù)的媒體時間線圖7是示出可包括在一節(jié)點內(nèi)的元數(shù)據(jù)示例的一示例性實現(xiàn)700的示圖。在 該實現(xiàn)700中,媒體時間線中的每個節(jié)點都能存儲元數(shù)據(jù)。元數(shù)據(jù)可被用來描述節(jié) 點的屬性,諸如由該節(jié)點引用的媒體、該節(jié)點的子節(jié)點的再現(xiàn)順序,指定節(jié)點類型 (例如順序、并行、根、葉)等。媒體時間線可將在節(jié)點上設置的任何屬性視為元 數(shù)據(jù)。例如,像節(jié)點的起停時間、節(jié)點媒體的URL等屬性被存儲為元數(shù)據(jù)。此外,媒體時間線的作者可將定制元數(shù)據(jù)添加到節(jié)點中。例如,圖2的應用 程序202可被配置為將CD音軌的唱片套樣式存儲在與該特定音軌相對應的葉節(jié)點 上的媒體播放器。標準屬性和定制屬性可用相同方式來處理,從而在獲取元數(shù)據(jù)時 不會有混淆。因此,即使元數(shù)據(jù)所描述的每個屬性是由不同的相應界面或源提供的, 媒體時間線也會提供一種跟蹤各個屬性的機制。此外,來自不同源的屬性可通過媒體時間線以一致方式處理元數(shù)據(jù)來集聚。 例如, 一個播放列表可包括多個音軌,每個音軌具有一不同的作曲者。該播放列表 的每個音軌可被表示為作為順序節(jié)點的子節(jié)點的葉節(jié)點。媒體時間線可集聚元數(shù) 據(jù),使得對順序節(jié)點即父節(jié)點的查詢返回來自各葉節(jié)點即子節(jié)點的播放列表中所有 媒體的作曲者。元數(shù)據(jù)的一致使用還可提供對各個節(jié)點的排序。例如,如果節(jié)點上 的所有屬性都被視為元數(shù)據(jù),則應用程序可基于以一致方式在元數(shù)據(jù)中定義的任何 屬性來對節(jié)點排序。節(jié)點702可包括各種元數(shù)據(jù)704,諸如定義節(jié)點的回放動作和特性的屬性。由 元數(shù)據(jù)704定義的屬性的示例描述如下。 URL 706該屬性保存媒體的URL。在文件的情形中,URL 706屬性可提供該文件的路 徑。例如,URL706屬性可提供到存儲設備的路徑以定位特定媒體。 SourceObiect (源對象)708, SourceObiectID (源對象ID) 710 在一些實例中,媒體的源不能由URL指定。例如,用于輸出黑色幀的媒體源 不可由URL定位。SourceObject 708和SourceObjectID 710屬性使得用戶能通過指 定可解析為媒體源的對象,諸如媒體源本身或其它某對象來指定媒體源。當媒體源
被指定為一源對象時,SourceObject 708屬性提供指向媒體源的指針,而Source ObjectlD710屬性指定該源對象的全局唯一標識符。在一實現(xiàn)中,SourceObject 708 屬性優(yōu)先于URL706屬性(如果定義了兩個屬性的話)。 開始時間712,終止時間714開始時間712和終止時間714定義相對于其它節(jié)點節(jié)點702要在何時開始和 終止。對于作為并行節(jié)點的子節(jié)點的節(jié)點,例如,開始時間712和終止時間714 相對于并行節(jié)點即子節(jié)點的父節(jié)點來定義。對于作為屬性節(jié)點的子節(jié)點的節(jié)點,第 一子節(jié)點包括相對于該順序節(jié)點定義的開始時間712和終止時間714。其余節(jié)點各 自包括相對于前一兄弟節(jié)點定義的開始時間和終止時間。在一實現(xiàn)中,定義節(jié)點 702的開始時間712和終止時間714是不必要的。例如,當未指定開始時間712和 終止時間714時,開始時間712假定為0,且節(jié)點702在由該節(jié)點702引用的媒體 完成再現(xiàn)時終止。媒體開始716,媒體終止718媒體時間線中的每個節(jié)點都可引用媒體。媒體開始716和媒體終止718屬性 定義媒體的要輸出的一部分。例如,節(jié)點702可表示來自總長度為50秒的文件的 媒體。但是,用戶可能想要僅僅輸出文件中從20到30秒的一部分媒體。為此,媒 體開始716可被指定為20秒,而媒體終止718可被指定為30秒。由節(jié)點的開始時間712和終止時間714定義的時段的持續(xù)時間,即"節(jié)點時 間"不需要與由媒體開始716和媒體終止718定義的時段的持續(xù)時間,即"媒體時 間"相等。例如,當所指定的節(jié)點時間大于媒體時間時,節(jié)點702所引用媒體的輸 出可被放慢。因此,媒體的由媒體開始716和媒體終止718定義的部分可在由節(jié)點 的開始時間712和終止時間714定義的時段的持續(xù)時間(即"節(jié)點時間")內(nèi)輸出。 換言之,該部分的輸出可被延長以使節(jié)點時間等于媒體時間。在另一示例中,媒體 的最后一幀可被凍結(jié)直到節(jié)點時間過去,視頻幀可變成空白(例如全黑)等。類似 地,如果節(jié)點時間小于媒體時間,則媒體可以較快的速率輸出以使輸出在指定節(jié)點 時間內(nèi)完成。在又一示例中,媒體的輸出可被切斷。例如,不輸出由大于節(jié)點時間 的媒體時間定義的片段的任一部分。在一實現(xiàn)中,媒體時間線本身不實施這些動作, 而是相反這些動作由時間線源124在再現(xiàn)媒體時間線122時讀取,如相關(guān)于圖1 所述。當未指定節(jié)點702的媒體終止718時,由節(jié)點702引用的媒體被完整地輸出。 例如,在播放器情形中,用戶可能想要輸出其中并未涉及每個媒體項的持續(xù)時間的
媒體播放列表。此外,可能想要"緊接著"輸出播放列表中所包括的媒體。為了表 示媒體時間線上的這種情形,可創(chuàng)建具有葉節(jié)點的一順序節(jié)點,這些葉節(jié)點是該順 序節(jié)點的不具有指定媒體終止718屬性的子節(jié)點。時間格式720前面所述的基于時間的屬性可具有所附隨的時間格式720屬性(時間格式)。 時間格式的示例包括100納秒單位、幀數(shù)、時間碼等。因而,時間格式720可指定 開始時間712、終止時間714、媒體開始716和媒體終止718的時間格式。此外, 時間格式720可指定各個基于時間的屬性的不同格式。例如,開始時間712和終止 時間714可使用100納秒單位的時間格式,而媒體開始716和媒體終止718的時間 格式可使用幀計數(shù)。流選擇722流選擇722屬性可以各種方式在節(jié)點702上使用。例如,流選擇722屬性可 用作濾波器以使具有所需特性的媒體得以提供。例如,節(jié)點702可引用音頻和視頻 媒體流,諸如電視節(jié)目。但是,用戶可能只對視頻流感興趣,盡管節(jié)點702上指定 的URL 706指向音頻和視頻流。在該情形中,不展現(xiàn)來自媒體的音頻流,從而向 用戶顯現(xiàn)為節(jié)點702僅提供視頻媒體。流選擇的一些其它示例包括選擇流的語言、 選擇流的比特率等等。此外,文件可包括相同主類的多個流。例如, 一些文件包含 許多音頻流,其中提供對每個這些流的語言和比特率的選擇。所基于的格式724所基于的格式724屬性可用來指定節(jié)點702所需的其它屬性,諸如幀頻、像 素縱橫比、音頻采樣率等。然后用于在這些格式中轉(zhuǎn)變的適當變換在回放期間被插 入所再現(xiàn)的媒體時間線。循環(huán)計數(shù)726循環(huán)計數(shù)726屬性可用來指定節(jié)點726的再現(xiàn)要重復多少次。例如,如果循 環(huán)計數(shù)726屬性為負,則節(jié)點702所引用的媒體的輸出可無限地重復。 禁用728節(jié)點702可通過設置禁用728屬性來禁用。例如,如果禁用728屬性被設置 為"真",則在再現(xiàn)媒體時間線的過程中略去節(jié)點702。例如,可在媒體時間線中 提供三個葉節(jié)點的一個序列。如果媒體時間線中的第二個節(jié)點被禁用,即禁用728 屬性被設置為"真",則由該媒體時間線引用的媒體的輸出將顯現(xiàn)為仿佛該媒體時間線只有第一和第三節(jié)點一樣。NoSkb (不能跳過)730NoSkip 730屬性是可由時間線作者用來指定在再現(xiàn)媒體時間線過程中不能跳 過的媒體的一個功能部件。當節(jié)點702被指定為NoSkip節(jié)點、即NoSkip屬性被 設置為"真"時,用戶不能跳過指定節(jié)點702之后的另一個節(jié)點,并且不能快進作 為該節(jié)點702的一部分的正在輸出的媒體。但是用戶可跳過該節(jié)點702 "之前"的 任一節(jié)點。在另一實現(xiàn)中,如果在一父節(jié)點上指定NoSkip 730屬性,則用戶將不 能跳過該節(jié)點子樹中的任一子節(jié)點。在又一實現(xiàn)中,NoSkip 730屬性僅應用于一 順序節(jié)點及其緊鄰子節(jié)點,例如該順序節(jié)點的直接在該順序節(jié)點之下的子節(jié)點而非 包括在作為該順序節(jié)點的子節(jié)點的另一順序節(jié)點中所包括的子節(jié)點,并且不對并行 節(jié)點或其緊鄰子節(jié)點指定。例如,NoSkip 730屬性可用來防止跳過由作為第一順序節(jié)點的子節(jié)點的葉節(jié)點所引用的廣告。第二順序節(jié)點也可以是第一順序節(jié)點的子 節(jié)點,并包括引用諸如電視節(jié)目的可跳過媒體的葉節(jié)點。NoSkip 730屬性也可用來定義用戶可遍歷導航的節(jié)點集合。例如,媒體時間 線可包括十個葉節(jié)點的一個序列,其中第三和第七節(jié)點是NoSkip節(jié)點,即NoSkip 屬性被設置為"真"。因此,用戶可跳過第一和第二葉節(jié)點的再現(xiàn),但不能跳過第 四、第五、第六、第七、第八、第九或第十節(jié)點。類似地,在媒體時間線從節(jié)點4 到節(jié)點7的再現(xiàn)過程中,用戶可跳過第七節(jié)點以下的任一節(jié)點,但不可跳過第七節(jié) 點"以上"的節(jié)點,即第八、第九或第十節(jié)點。NoSkip子節(jié)點732媒體時間線可支持分散的子節(jié)點,即在媒體時間線初始載入時未在媒體時間 線上載入和/或創(chuàng)建所有節(jié)點。因此,子節(jié)點可按需載入和/或創(chuàng)建。節(jié)點的動態(tài)載 入和創(chuàng)建的進一步討論可相關(guān)于圖12和13進行。當在本實例中將節(jié)點載入媒體時 間線時,可載入具有被指定為"NoSkip"的子節(jié)點的父節(jié)點。為了指示子節(jié)點具 有NoSkip 730屬性,可使用父節(jié)點的NoSkip子節(jié)點732屬性。NoSkip子節(jié)點732屬性可在父節(jié)點上設置以指示該父節(jié)點是否包括NoSkip 730屬性設置為"真"的子節(jié)點。在再現(xiàn)媒體時間線的過程中,NoSkip子節(jié)點732 被用來指示應當檢查節(jié)點的所有先前兄弟節(jié)點以確定對該節(jié)點的導航是否有效。 NoSkip子節(jié)點732也可在并行節(jié)點上設置。例如,并行節(jié)點的子樹中的任一節(jié)點 是否將NoSkip 730屬性設置為"真"。這樣,可提供保護NoSkip 730屬性的使用 的節(jié)點之間的導航。當NoSkip 730屬性設置為"真"的節(jié)點被添加到媒體時間線中時,媒體時間
線可在所添加節(jié)點的所有父節(jié)點上將NoSkip子節(jié)點732屬性自動設置為"真"。 這樣例如圖1的時間線源124的再現(xiàn)引擎可優(yōu)化媒體時間線中要載入和檢查的那些 節(jié)點以確定NoSkip 730屬性是否要設置為"真"。 時間線效果時間線效果使媒體時間線的作者能指定分析和/或改變媒體的顯現(xiàn)的組件。例 如,作者可能想要黑白地顯示視頻、向音頻文件添加回聲、在一視頻之上顯示另一 視頻(例如畫中畫)等。在一實現(xiàn)中,效果本身不是一單獨節(jié)點。為了提供媒體的 效果,作者可在節(jié)點的元數(shù)據(jù)中指定效果。例如,元數(shù)據(jù)可包括在節(jié)點上定義的效 果陣列。該陣列可指定要應用于該節(jié)點的輸出,即在再現(xiàn)節(jié)點所引用媒體時的一系 列效果。在該實現(xiàn)中,效果不是實際實現(xiàn)該效果的對象,而是相反指定描述如何創(chuàng) 建和應用該效果的屬性和特性。這類似于前面實現(xiàn)中節(jié)點如何引用媒體。例如,如 相關(guān)于圖3所討論地,葉節(jié)點308-312本身不包含媒體,而是相反包括具有指定如 何獲得媒體的相應指針326、 328、 332的相應元數(shù)據(jù)320-324。實際實現(xiàn)效果的組 件由執(zhí)行媒體時間線的時間線源在運行時間載入。盡管已描述了包括效果的元數(shù) 據(jù),但效果也可單獨地指定。此外,在另一實現(xiàn)中,效果由媒體時間線中實現(xiàn)該效 果的對象來提供。在媒體時間線的節(jié)點上指定的效果可具有相對于該節(jié)點的開始時間指定的時 間。例如,效果可在開始時間為IO秒的葉節(jié)點上指定。因此,效果可在再現(xiàn)時, 即節(jié)點開始輸出并且已經(jīng)過了 IO秒之后應用于該節(jié)點??稍诠?jié)點上指定多重效果。此外,媒體時間線的作者也可控制應用這些效果 的順序。例如,作者可對效果設置優(yōu)先級。存在可由節(jié)點指定的各種效果??稍诿?體時間線上指定的效果的實例包括(1)簡單效果;(2)復合效果;以及(3)轉(zhuǎn) 變效果。這些示例性效果的進一步討論可相關(guān)于圖8-10進行。簡單效果簡單效果表示接收單個音頻/視頻流并輸出另一個流的組件。換言之,它是一 個輸入/一個輸出組件。例如,回聲效果可接收一音頻流并輸出發(fā)出回聲的一經(jīng)修 改音頻流、提供視頻被黑白地示出的"黑白"效果、視頻被制作成顯現(xiàn)為像是在幾 十年前拍攝的做舊效果等等。圖8是其中節(jié)點802包括指定多個簡單效果806、 808、 810的元數(shù)據(jù)804的 一示例性實現(xiàn)800的示圖。如圖8所示,多個簡單效果806-810可應用于由指針 816引用的存儲設備814中所包括的媒體812。在該示例中,多個效果806-810被
級聯(lián),即第一效果806的輸出去到第二效果808的輸入等等,以向媒體812提供多 重效果。多個效果806-810各自可被賦予一優(yōu)先權(quán)以提供處理這些效果的順序。例 如,這些效果的優(yōu)先權(quán)可確定級聯(lián)這些效果的順序。如果對優(yōu)先級有爭論,則可按 效果陣列中指定各效果的順序來添加這些效果。在一實現(xiàn)中,多個效果806-810的持續(xù)時間不改變媒體812的持續(xù)時間。例如, 對多個效果806-810的處理可在節(jié)點802的時間邊界上切斷。例如,媒體812的再 現(xiàn)可持續(xù)10秒。但是,多個效果806-810的處理可持續(xù)20秒。在該實例中,圖l 的時間線源124可在10秒時為節(jié)點802完成多個效果806-810的處理。當定義效果806-810時,時間線的作者可顯式地指定各個效果806-810的輸入 和輸出。例如,各個效果806-810可包括描述哪個流連接到哪個效果輸入的數(shù)據(jù)。 各個效果806-810還可具有描述相應效果806-810輸出的主類(例如音頻、視頻等) 的相應數(shù)據(jù)。此外,各個效果806-810可包括描述節(jié)點內(nèi)效果的開始時間和/或終 止時間的元數(shù)據(jù)。復合效果復合效果可用來處理并行節(jié)點的子節(jié)點的媒體以給出一結(jié)果輸出。例如,圖9 是示出向兩個或多個子節(jié)點提供復合效果的并行節(jié)點902的一示例性實現(xiàn)900的示 圖。該實現(xiàn)中的并行節(jié)點902與相關(guān)于圖6描述的并行節(jié)點602相似。并行節(jié)點902包括復合效果906、 908、 910的一個陣列。當指定一復合效果 時,媒體時間線的作者指定如何連接效果906-910的輸入、以及從效果906-910的 輸出的主類。例如,葉節(jié)點912和葉節(jié)點914可被配置為并行節(jié)點902的子節(jié)點。 如前所述,每個葉節(jié)點912、 914包括具有引用相應媒體924、 926的相應指針920、 922的相應元數(shù)據(jù)916、 918。葉節(jié)點912、 914在再現(xiàn)時提供媒體924、 926以供輸 出。效果906、 908、 910被應用于由并行節(jié)點902指定的媒體924、 926的輸出。 例如,并行節(jié)點902可提供每個表面上都有一不同媒體(例如視頻)的一旋轉(zhuǎn)立方 體,影片的每一幀中播放不同媒體的一巻滾動影片等等。盡管并行節(jié)點902被描述為對每個葉節(jié)點912、 914應用多個效果906-910, 但在其它實現(xiàn)中并行節(jié)點902可僅將效果906-910應用于并行節(jié)點902的一些子節(jié) 點。換言之,效果906-910不需要應用于作為并行節(jié)點902的子節(jié)點的所有節(jié)點。 例如,元數(shù)據(jù)904和/或效果906-910可指定要應用多個效果906-910的一個或多個 的一個或多個特定節(jié)點。
轉(zhuǎn)變效果圖io是其中轉(zhuǎn)變效果被指定為提供由前一節(jié)點引用的媒體的輸出與由后一節(jié)點引用的媒體的輸出之間的一種效果的一示例性實現(xiàn)1000的示圖。在圖10中,順序節(jié)點1002被示為與相關(guān)于圖4描述的順序節(jié)點相似。順序節(jié)點1002具有作為順 序節(jié)點1002的子節(jié)點的多個葉節(jié)點1004、 1006和1008。多個葉節(jié)點1004-1008 各自包括具有引用相應媒體1026-1030的相應指針1020-1024的相應元數(shù)據(jù) 1014-1018。順序節(jié)點1002包括描述要在由相應葉節(jié)點1004-1008引用的媒體1026-1030 的輸出之間采用的轉(zhuǎn)變效果1012的元數(shù)據(jù)1010。因而,轉(zhuǎn)變效果1012被應用于 源自順序節(jié)點1002的子節(jié)點的媒體1026-1030。轉(zhuǎn)變效果1012被用來將兩個或多 個媒體1026-1038組合成單個輸出。此外,轉(zhuǎn)變效果1012可包括指定要應用轉(zhuǎn)變 效果的葉節(jié)點1004-1008的一個或多個的數(shù)據(jù)。例如,該數(shù)據(jù)可指定要在媒體1026、 1028的輸出之間采用轉(zhuǎn)變效果1012。轉(zhuǎn)變效果1012的第一個輸入由對之定義效果 的節(jié)點,即葉節(jié)點1004提供。轉(zhuǎn)變效果1012的下一個輸入是該順序中的下一節(jié)點, 即葉節(jié)點1006。轉(zhuǎn)變效果的示例包括依次輸出的兩個節(jié)點之間的音頻交叉消隱、用第二視頻"掃過"第一視頻等等。轉(zhuǎn)變效果1012具有持續(xù)時間1032。該持續(xù)時間1032可用來指定序列中兩個 或多個節(jié)點之間所需的交迭量。例如,序列中的第二個輸入即媒體1026可被輸出 使其交迭達轉(zhuǎn)變效果1012的持續(xù)時間1032。因此,順序節(jié)點1002的輸出持續(xù)時 間變成在葉節(jié)點1004-1008上指定的時間與由轉(zhuǎn)變效果1012的持續(xù)時間1032指定 的交迭的函數(shù)。也可指定全局效果。例如,轉(zhuǎn)變效果1012可指定對該節(jié)點的各個子節(jié)點,例 如順序節(jié)點1002的葉節(jié)點1004-1008的全局轉(zhuǎn)變。因此,如果媒體時間線的作者 需要對所有葉節(jié)點1004-1008使用相同的轉(zhuǎn)變,則該作者可通過將轉(zhuǎn)變效果1012 指定為全局轉(zhuǎn)變來實現(xiàn)。因而,通過指定一全局轉(zhuǎn)變,作者不需要對每個節(jié)點指定 一單獨轉(zhuǎn)變。效果元數(shù)據(jù)圖11是示出具有包括多個效果元數(shù)據(jù)1106的元數(shù)據(jù)1104的節(jié)點1102的一示 例性實現(xiàn)1100的示圖。與如相關(guān)于圖7所述的在節(jié)點702上指定的元數(shù)據(jù)704相 似,效果元數(shù)據(jù)1106也可對效果指定各種屬性。例如,效果元數(shù)據(jù)1106可定義對 媒體時間線有特定含義的標準屬性。效果元數(shù)據(jù)1106可用來配置用以提供效果的
變換對象。變換對象例如可公布它們自己的屬性組,這些屬性用來配置提供效果的 變換對象。例如,對于一色彩轉(zhuǎn)變器變換對象,有用于控制色度、飽和度和亮度的 特定屬性。除這些屬性外,可對該效果指定其它感興趣的定制屬性。以下是媒體時 間線所支持的效果元數(shù)據(jù)1106的示例的列表。 效果對象GUID 1108與節(jié)點可如何引用媒體相似,效果可引用提供該效果的變換對象。效果對象 GUID U08屬性指定要用來創(chuàng)建提供效果的變換對象的GUID。例如,在輸出媒體 的過程中,由效果對象GUID 1108引用的變換對象可在提供該效果需要時創(chuàng)建。效果對象1110節(jié)點1102可將效果對象1110屬性用作指針來引用提供效果的效果對象。所 引用的效果對象可在輸出節(jié)點1102的媒體期間直接使用。效果對象1110屬性優(yōu)先 于效果GUID (如果指定了兩者)。優(yōu)先級1112如前所述,當效果被級聯(lián)在一起時,優(yōu)先級H12屬性可用來指定效果的排序。 如果有優(yōu)先級相同的一個以上效果,則效果按其添加到節(jié)點1102的順序應用。 開始時間1114,終止時間1116開始時間1114和終止時間1116相對于對其指定效果的節(jié)點1102指定。該開 始時間1114和終止時間U16定義該效果有效的時間。如果不指定這些屬性,則效 果將應用于節(jié)點1102所引用媒體的輸出的整個持續(xù)時間。這些屬性可應用于相關(guān) 于圖8描述的簡單效果以及相關(guān)于圖9描述的復合效果。時間格式1118開始時間1U4和終止時間1116可用各種格式指定。時間格式1118屬性可用 來指定這些時間值的格式??墒褂酶鞣N時間格式,諸如IOO納秒單位、幀數(shù)、時間 碼等。持續(xù)時間1120如先前相關(guān)于圖IO所述,持續(xù)時間1120屬性可用來指定相應媒體輸出之間 的轉(zhuǎn)變的持續(xù)時間。例如,持續(xù)時間1120可用來指定由兩個連續(xù)節(jié)點引用的媒體 輸出之間的交迭量。輸入數(shù)量1122,輸出數(shù)量1124簡單效果使用一個輸入和一個輸出,因此對于簡單效果而言輸入數(shù)量1122和 輸出數(shù)量1124可在媒體時間線中自動設置。轉(zhuǎn)變效果可采用兩個輸入和一個輸出。
因此,對于轉(zhuǎn)變效果而言輸入數(shù)量1122和輸出數(shù)量1124也可在媒體時間線中自動 設置。對于復合效果,作者可按需定義許多輸入和/或輸出。因此,輸入數(shù)量1122 和輸出數(shù)量1124可由作者設置以反映提供該效果的變換對象的輸入數(shù)量和輸出數(shù)輸出主類1126對效果的每個輸出指定輸出主類1126。指定輸出主類1126屬性便于將效果連 接到其它效果或目的。例如,媒體時間線的作者可容易地確定輸出的主類,即音頻、 視頻等,因此可有效地指定相關(guān)效果之間的連接,例如音頻效果到音頻效果。輸入連接1128一旦已定義了效果,作者就可指定要由該效果處理的媒體。輸入連接1128屬 性可用來識別要連接到各個效果輸入的媒體。媒體時間線的節(jié)點的動態(tài)創(chuàng)建和載入媒體時間線的節(jié)點的動態(tài)創(chuàng)建和載入可用于媒體時間線的有效再現(xiàn)。通過改 進再現(xiàn)效率,媒體時間線可在諸如具有有限硬件和/或軟件資源的低資源設備上使 用。例如,媒體時間線的動態(tài)創(chuàng)建可包括媒體時間線的節(jié)點的延遲創(chuàng)建。例如,父節(jié)點的子節(jié)點直到需要時才需要創(chuàng)建。節(jié)點的延遲創(chuàng)建可用來改進具有相當數(shù)量節(jié) 點和/或每個節(jié)點具有大量數(shù)據(jù)的媒體時間線的啟動時間和響應時間。例如,媒體播放器可用來創(chuàng)建和回放來自包含相當數(shù)量選項的媒體庫的一個播放列表。創(chuàng)建這樣一個播放列表可能需要對媒體庫的多次查詢,這會花費相當多的時間、處理器和存儲器資源。通過使用節(jié)點的延遲創(chuàng)建,播放列表可在"按需"基礎(chǔ)上建立,由此在任一特定時間僅使用節(jié)點所需的那么多處理和存儲器資源。存在各種各樣的可用來動態(tài)創(chuàng)建和/或載入媒體時間線節(jié)點的實現(xiàn)。圖12是其中媒體時間線的節(jié)點基于節(jié)點內(nèi)所包括的元數(shù)據(jù)動態(tài)載入的一示例性實現(xiàn)的媒體時間線1200的一個示例的示圖。該媒體時間線1200被視為包括根節(jié)點1202和作為該根節(jié)點1202的子節(jié)點的多個節(jié)點1204-1216的樹結(jié)構(gòu)。為了再現(xiàn)媒體時間線1200,首先實現(xiàn)根節(jié)點1202并檢査其中所包含的元數(shù)據(jù)1218。元數(shù)據(jù)1218指定包括節(jié)點1204、 1206的第一分組1220。因此,當再現(xiàn)根節(jié)點1202時,節(jié)點1204和節(jié)點1206也被載入以供再現(xiàn)。在由節(jié)點1206引用的媒體再現(xiàn)期間或之后,檢查節(jié)點1204的指定包括節(jié)點1208和1210的第二分組1224的元數(shù)據(jù)1222。因此,節(jié)點1208和1210被載入,
并且由節(jié)點1210引用的媒體被輸出。類似地,節(jié)點1208的元數(shù)據(jù)1226指定包括 節(jié)點1212、 1214、 1216的第三分組1228。因此,節(jié)點1212、 1214、 1216被載入 以在由節(jié)點12140所引用數(shù)據(jù)的輸出完成之后輸出由節(jié)點1214、 1216所引用的數(shù)據(jù)。圖13是其中媒體時間線的節(jié)點由節(jié)點源在"按需"基礎(chǔ)上定義和實現(xiàn)的一示 例性實現(xiàn)中的媒體時間線1300的示圖。在相關(guān)于圖12描述的前一實現(xiàn)中,媒體時 間線1200被預先創(chuàng)建且節(jié)點在"按需"基礎(chǔ)上載入。在本實現(xiàn)中,作者定義作為 媒體時間線1300的節(jié)點1302的子節(jié)點的多個節(jié)點。然后這些節(jié)點在再現(xiàn)媒體時間 線1300的過程中在"按需"基礎(chǔ)上創(chuàng)建。這通過將節(jié)點源1304模塊(節(jié)點源)附 加到節(jié)點1302來執(zhí)行。節(jié)點源1304包括足夠的數(shù)據(jù),從而在執(zhí)行時節(jié)點源1304 可創(chuàng)建節(jié)點1302的子節(jié)點,即節(jié)點1306、 1308,并"填入"節(jié)點1306、 1308的 屬性,諸如提供定義如前相關(guān)于圖7所述的屬性和相互關(guān)系的元數(shù)據(jù)1310、 1312。 因此,當需要節(jié)點1306、 1308的特定之一時,節(jié)點源1304被實現(xiàn)(例如調(diào)用)以 創(chuàng)建節(jié)點1306、 1308的特定之一。例如,節(jié)點源1304可被執(zhí)行以響應于來自圖1 的時間線源124的請求創(chuàng)建節(jié)點1306、 1308。媒體時間線中節(jié)點的動態(tài)改變在一個或多個實現(xiàn)中,媒體時間線被配置成可動態(tài)改變。例如,媒體時間線 的節(jié)點可在時間線源再現(xiàn)媒體時間線的過程中被去除、添加或改變。為了提供對節(jié) 點的動態(tài)改變,每個節(jié)點都可生成事件。圖14是其中事件可由節(jié)點提供從而媒體時間線1400上發(fā)生的改變可被傳送 至可受這些改變影響的節(jié)點的一示例性實現(xiàn)中的媒體時間線1400的示圖。媒體時 間線1400包括一根節(jié)點1402和作為該根節(jié)點1402的子節(jié)點的多個節(jié)點 1404-1412。節(jié)點1408-1410被用來如前所述引用媒體。節(jié)點1402-1412各自可生成用來通知媒體時間線1400的受該節(jié)點改變和/或該 節(jié)點的子節(jié)點的改變影響的其它節(jié)點的事件。例如,節(jié)點1406和節(jié)點1406的任一 子節(jié)點即節(jié)點1410-1412的所有事件可被傳送至根節(jié)點1402和/或媒體時間線1400 的作者。換言之,媒體時間線1400中的事件可沿樹爬"升"至該樹的根。這樣, "事件化"可被用來向媒體時間線1400的各個節(jié)點通知有關(guān)該時間線結(jié)構(gòu)的動態(tài) 改變。此外,媒體時間線1400的節(jié)點可訂閱由該媒體時間線的其它節(jié)點發(fā)起的事 件。例如,節(jié)點1408可同意接收來自節(jié)點1406的事件,盡管節(jié)點1408并非節(jié)點 1406的"父"節(jié)點。此外,使用時間線的組件,例如圖2的媒體基礎(chǔ)204組件可 注冊以接收由任一節(jié)點發(fā)起的事件。各個事件1414可由一個或多個節(jié)點1402-1412 支持,其示例描述如下。 節(jié)點被添加1416本事件在節(jié)點被添加到媒體時間線1400中時發(fā)出。例如,節(jié)點1412可被添 加到媒體時間線1400以提供由節(jié)點1412引用的附加媒體的輸出。節(jié)點1406在得 到添加節(jié)點1412的通知時可發(fā)出節(jié)點被添加1416事件,使該事件通過節(jié)點1404 被傳送至根節(jié)點1402。因而,在本示例中,作為新添加節(jié)點1412的父節(jié)點的每個 節(jié)點1402-1406得到由該節(jié)點的子節(jié)點發(fā)起的事件通知。節(jié)點被去除418節(jié)點被去除418事件在節(jié)點從媒體時間線1400中去除時發(fā)出。繼續(xù)前一示例, 節(jié)點1412可從媒體時間線1400中去除,以去除由節(jié)點1412所引用媒體的輸出。 節(jié)點1406在得到去除節(jié)點1412的通知時可發(fā)出節(jié)點被去除1418事件,使該事件 通過節(jié)點1404被傳送至根節(jié)點1402。因而,在本示例中,作為被去除節(jié)點1412 的父節(jié)點的每個節(jié)點1402-1406也得到了通知。節(jié)點正在改變1420節(jié)點正在改變1420事件在媒體時間線1400的節(jié)點上的元數(shù)據(jù)正在改變時發(fā) 出。例如,節(jié)點1406可包括元數(shù)據(jù),例如相關(guān)于圖7描述的元數(shù)據(jù)704。對該元 數(shù)據(jù)的改變可使節(jié)點1406發(fā)出節(jié)點正在改變1420事件,該事件可被傳送到圖2 的應用程序202和/或節(jié)點1406的父節(jié)點,即節(jié)點1402、 1404。因而,節(jié)點正在改 變1420事件可用來向其它節(jié)點和/或利用該節(jié)點的應用程序通知正在對節(jié)點1406 作出改變,并因此作出響應,諸如等待直到接收到節(jié)點已改變1422事件才再現(xiàn)節(jié) 點。節(jié)點已改變1422節(jié)點已改變1422事件在媒體時間線1400的節(jié)點上的元數(shù)據(jù)已改變時發(fā)出。 繼續(xù)前一示例,節(jié)點1406發(fā)出節(jié)點正在改變1420事件使其它節(jié)點和/或應用程序 得到正在對節(jié)點1406作出改變的通知。當改變完成時,節(jié)點1406可發(fā)出節(jié)點已改 變1422事件來向應用程序和/或節(jié)點通知這些改變己經(jīng)完成。這樣,節(jié)點1406可 利用節(jié)點己改變1422事件來通知再現(xiàn)已就緒。去除子節(jié)點1424去除子節(jié)點1424事件在去除了節(jié)點的所有子節(jié)點時發(fā)出。例如,可從媒體時
間線1400去除節(jié)點1410、 1412。節(jié)點1406發(fā)出去除子節(jié)點1424事件來通知根節(jié) 點1402己經(jīng)去除了節(jié)點1406的子節(jié)點,即節(jié)點1410、 1412。因而,可利用去除 子節(jié)點1424事件,而不是對節(jié)點1410、 1412分別發(fā)出節(jié)點被去除1418。 節(jié)點源被添加1426,節(jié)點源被去除1428節(jié)點源被添加1426事件在向節(jié)點添加一節(jié)點源時發(fā)出,諸如相關(guān)于圖13描 述的節(jié)點源1304。類似地,節(jié)點源被去除1426事件在從節(jié)點去除節(jié)點源時發(fā)出。 節(jié)點被排序1430節(jié)點被排序1430事件在對一個或多個節(jié)點排序時發(fā)出。例如,媒體時間線 1400可支持根據(jù)一種或多種標準,諸如按年代順序排列、基于相關(guān)性等對節(jié)點 1410-1412排序的功能。因此,節(jié)點被排序1430事件可在對該節(jié)點1406和/或該節(jié) 點1406的子節(jié)點(例如節(jié)點1410、 1412)排序時由節(jié)點1406發(fā)起。節(jié)點被移動1432節(jié)點被移動1432事件在移動節(jié)點時發(fā)出。例如,節(jié)點1406可在媒體時間線 1400中移動使得節(jié)點1406成為一不同節(jié)點,例如節(jié)點1402的子節(jié)點。因此,節(jié) 點被移動1432事件可在節(jié)點1406被移動時由節(jié)點1406和/或該節(jié)點的父節(jié)點(例 如先前父節(jié)點和/或新父節(jié)點)發(fā)起。只讀媒體時間線媒體時間線的作者可將媒體時間線的全部或一部分標記為只讀。這可被用來 保護媒體時間線的功能。在第一情形中,時間線的作者不想使用戶改變媒體體驗, 諸如跳過和/或刪除廣告。在另一情形中,作者可能想要動態(tài)地改變媒體時間線, 但不想其它組件來更改它。在又一情形中,作者可允許其它組件來在時間線節(jié)點上 設置定制元數(shù)據(jù),但不向時間線添加新的子節(jié)點。媒體時間線可被定制成適于這些只讀情形之一或全部。只讀媒體時間線可通過創(chuàng)建媒體時間線的只讀包裝來實現(xiàn)。該只讀包裝包含鏡像原始時間線的結(jié)構(gòu)、即 從原始時間線的節(jié)點中"克隆"的節(jié)點。只讀媒體時間線的克隆節(jié)點可包含指回到 原始時間線的節(jié)點的指針。此外,克隆節(jié)點各自可被配置成訂閱在原始時間線的節(jié) 點上生成的事件。這使得被克隆時間線的結(jié)構(gòu)在原始媒體時間線改變時,諸如改變 原始媒體時間線的"樹"結(jié)構(gòu)時保持更新。只讀媒體時間線的克隆節(jié)點可被配置成使允許用戶向只讀媒體時間線添加/去 除節(jié)點的功能失效。當創(chuàng)建只讀時間線時,作者還可指定克隆節(jié)點的元數(shù)據(jù)是否應可更改。該設計使媒體時間線的作者能按需更改媒體時間線,同時例如執(zhí)行只讀媒 體時間線的應用程序的其它組件對該媒體時間線結(jié)構(gòu)僅具有只讀或受限訪問權(quán)。在一實現(xiàn)中,圖3媒體時間線300的根節(jié)點302的元數(shù)據(jù)314可被標記成媒 體時間線300不可由用戶編輯。在另一實現(xiàn)中,媒體時間線的節(jié)點的一個特定節(jié)點 和/或分組可被編輯為只讀。例如,再次參看圖3,葉節(jié)點308的元數(shù)據(jù)320可被標 記為只讀。在另一示例中,節(jié)點306的元數(shù)據(jù)318被標記為只讀,使得節(jié)點306、 葉節(jié)點310和葉節(jié)點312不可被編輯。示例性媒體時間線實現(xiàn)先前討論的媒體時間線可采用各種存儲和恢復時間線數(shù)據(jù)的方法,諸如一個 或多個Windows⑧媒體播放器文件、可執(zhí)行時間語言(XTL)文件等。例如,媒體時間線可被描述為以下由ASX文件擴展名標識的Windows⑤媒體播放器播放列表文件。<Asx Version = "3.0" > <Entry><R_ef hicf = "file:ZA\wmp\content\mpeg\Boom.mpe''/></Bntry><Entry><Ref href = "\Vwmp\co:ntent\Formats\MovieFile\chin]p.:mpg"/></Entry><Entry><Ref href = "fi〗e:/A\wmp\ccmteiit\mpeg\Boom.mpe7></Entry></Asx>該ASX文件緊接地指定三個輸出用文件。對文件不指定開始和終止時間。該ASX 文件可由圖15所示的包括順序節(jié)點1502和三個葉節(jié)點1504、 1506、 1508的媒體 時間線1500表示。葉節(jié)點1504-1508各自包括描述要由媒體時間線1500輸出的媒 體的相應源1516、 1518、 1520的相應元數(shù)據(jù)1510、 1512、 1514。媒體時間線的另一示例被示為以下XTL文件。 <group typeJ'vi(ieo'5 <track><clip src^V〗.v/mv" start^"0" stop:"30" rnsta爐"50" mstop-,,80" /><clip src="V2.wmv" starl="30" stop=,,40,, mstart^"0" /> </tock></group><group type-"如dio"〉 <track><clip src="Al+asf, start="20" stop="40" mstart="0" /〉<dip src="A2,asf , start=,,40" stop="60,, n]staxt="0" /></tmck></group></tijne〗ii]e>該XTL文件描述兩個磁軌,例如供輸出的媒體流。磁軌之一是音軌,而另一個是 視頻磁軌。該XTL文件可由圖16中示出的包括具有兩個子順序節(jié)點1604、 1606的并行 節(jié)點1602的媒體時間線1600表示。在該示例中,順序節(jié)點1604具有設置為"視 頻"的主類1608濾波器,而順序節(jié)點1606具有設置為"音頻"的主類1610濾波 器。順序節(jié)點1604具有兩個子葉節(jié)點1612、 1614。葉節(jié)點1612包括指定開始時 間1616為"0"、終止時間1618為"30"、媒體開始1620為"50"、以及媒體終止 1622為"80"的元數(shù)據(jù)。葉節(jié)點1614包括指定開始時間1624為"30"、終止時間 1626為"40"、以及媒體開始1628為"0"的元數(shù)據(jù)。應當注意,葉節(jié)點1614不 包括媒體終止時間,因此將輸出葉節(jié)點1614所引用媒體的總長度。順序節(jié)點1606還具有兩個葉節(jié)點1630、 1632。葉節(jié)點1630包括指定開始時 間1634為"20"、終止時間1636為"40"、以及媒體開始1638為"0"的元數(shù)據(jù)。 葉節(jié)點1632包括指定開始時間1640為"40"、終止時間1642為"60"、以及媒體 開始1644為"0"的元數(shù)據(jù)。圖17是示出第一和第二媒體在指定時段上利用一效果在第一和其二媒體之間 切換的輸出1700的一示例性實現(xiàn)的示圖。在所示示例中,Al.asf 1702和A2.asf 1704 是兩個不同的音頻文件。Al.asfl702的輸出長度為20秒,且A2.asf 1704的輸出長
度也為20秒。在Al.asf 1702和A2.asf 1704的輸出之間定義了交叉消隱1706效果。 換言之,交叉消隱1706被定義為從Al.asf 1702的輸出切換到A2.asf 1704的輸出。 交叉消隱1706效果在IO秒時開始進入Al.asf 1702的輸出,并在Al.asfl702的輸 出結(jié)束時結(jié)束。因此,A2.asf 1704的輸出也在IO秒時開始。交叉消隱1706被示 為輸入兩個不同媒體,即Al.asf 1702和A2.asf 1704,并提供具有所需效果的單個 輸出。圖18是適于實現(xiàn)圖17的交叉消隱1706效果的一示例性實現(xiàn)的媒體時間線 1800的示圖。媒體時間線1800包括具有兩個子節(jié)點即葉節(jié)點1804、 1806的并行 節(jié)點1802。并行節(jié)點1802包括指定開始時間1808為0秒、終止時間1810為20 秒的元數(shù)據(jù)。并行節(jié)點1802還包括描述交叉消隱的復合效果1812。葉節(jié)點1804 包括指示開始時間1814為0秒、終止時間1816為20秒的元數(shù)據(jù)。葉節(jié)點1806 包括開始時間1818為10秒、終止時間1820為30秒的元數(shù)據(jù)。葉節(jié)點1804還包括引用相關(guān)于圖17描述的Al.asf 1702文件的指針1822。類 似地,葉節(jié)點1806包括引用相關(guān)于圖17描述的A2.asf 1704文件的指針1824。因 而,當執(zhí)行媒體時間線1800時,Al.asf 1702文件和A2.asf 1704文件以采用如圖 17所示效果1812的方式輸出。時間線排序時間線排序器126可采用一種或多種時間線排序算法來標識由媒體時間線表 示的片段。例如,給定一復雜時間線,時間線排序器126可將該媒體時間線"打斷" 成可獨立再現(xiàn)的各個片段。例如,時間線排序器126可確定時間線對象(例如節(jié)點 或效果)開始或終止的每個點,并由此確定用于再現(xiàn)的新片段。因而,時間線排序 器126代表對媒體時間線122分段的媒體基礎(chǔ)204的功能。這種排序過程的說明性 示例在以下附圖中示出。圖19是用于排序的示例性時間線1900的用戶界面示圖的一個示圖。圖19的 時間線被示為它可顯現(xiàn)在用戶界面中以便于編輯。時間線1900包括多個磁軌,包 括視頻用磁軌一 1902(1)、音頻用磁軌二 1902(2)、以及音頻用磁軌三1902(3)。磁 軌一 1902(1)包括要對之應用視頻效果1906的視頻文件1904。磁軌二 1902(2)包括 音頻文件1908,而磁軌三902(3)也包括音頻文件1910。交叉消隱效果1912被示 為應用于音頻文件1908、 1910之間。為了確定哪些片段要通過用戶界面示圖形成, 可在時間線1900中表示的每個時間線對象的開始和終止處畫出"虛"線,其一個 示例在以下附圖中示出。 圖20是示出通過時間線排序器將圖19的時間線1900分成多個片段而形成的 分段時間線2000的另一個用戶界面視圖的示圖。時間線2000包括多條虛線,每條 虛線示出一個時間線對象的開始或終止。如圖所示,這些虛線指示多個片段2002(1)-2002(6)。例如,片段2002(1)在音 頻文件1908開始時開始,并在視頻文件1904開始時終止。片段二 2002(2)在視頻 文件1904開始時開始,并在視頻效果1906開始時結(jié)束。片段三2002(3)從視頻效 果1906開始時開始,并在交叉消隱效果1912開始時結(jié)束。片段四2002(4)從交叉 消隱效果1912開始時開始,并在交叉消隱效果1912結(jié)束時終止。片段五2002(5) 在交叉消隱效果1912結(jié)束時開始,并在視頻效果1906結(jié)束時終止。最后的片段一 片段2002(6) —在音頻文件1910和視頻文件1904結(jié)束時終止。因而,圖20的每一 對連續(xù)虛線定義一片段,其中在該片段期間再現(xiàn)的時間線對象不作改變。圖21是使用被配置成分別提供圖19、 20中示出的時間線1900、 2000的對象 模型表示的一示例性時間線2100的示圖。時間線2100包括一并行節(jié)點2102和被 示為視頻文件葉節(jié)點2104、音頻文件葉節(jié)點2106和另一個音頻文件葉節(jié)點2108 的三個"子"葉節(jié)點。視頻文件葉節(jié)點2104指定由指針2114引用的視頻文件(即視頻文件1904) 的開始時間2110為"7",終止時間2112為58。視頻文件葉節(jié)點2104還指定開始 時間2118為"17"、終止時間2120為"39"的視頻效果2116。音頻文件葉節(jié)點2106指定由指針2126引用的音頻文件(即音頻文件1908) 的開始時間2122為"0",終止時間2124為"33"。音頻文件葉節(jié)點2108指定由指 針2132引用的音頻文件(即音頻文件1910)的開始時間2128為"20",終止時間 2130為"58"。并行節(jié)點2102指定要應用于音頻文件葉節(jié)點2106、 2108的交叉消 隱效果2134,其開始時間2136為"20"而終止時間2138為"33"。各種技術(shù)可被 用于對時間線2100排序,其進一步討論可相關(guān)于以下附圖進行。示例性過程以下討論描述可使用前述系統(tǒng)和設備實現(xiàn)的排序技術(shù)。各個過程的多個方面 可用硬件、固件或軟件、或其組合實現(xiàn)。這些過程被示為指定由一個或多個設備執(zhí) 行的操作的一組框,并且不必限于由相應框示出的執(zhí)行操作的順序。在以下討論的 各個部分中,將參考圖1-21的環(huán)境和系統(tǒng)。圖22是示出其中媒體時間線被分成多個片段以供時間線排序器再現(xiàn)的一示例
性實現(xiàn)中的過程2200的流程圖。媒體時間線被接收(框2202)。例如,媒體時間線可在應用程序編程接口上從應用程序接收。時間線排序器被執(zhí)行以檢查媒體時間線內(nèi)所包括的時間線對象(框2204)。例 如,時間線排序器可對諸如節(jié)點(例如葉節(jié)點、并行節(jié)點、順序節(jié)點)和例如交叉 消隱等效果的時間線對象檢査指定執(zhí)行任務的持續(xù)時間的元數(shù)據(jù)。時間線排序器獲得如由元數(shù)據(jù)指定的時間線對象的"開始"時間和"終止" 時間(框2206)。然后時間線排序器形成陣列中的一個開始時間條目和另一個終止 時間條目(框2208)。然后確定另一個對象是否可用(判定框2210)。如果是(來 自判定框2210的"是"),則檢查其它時間線對象(框2204)、獲取開始時間和終 止時間(框2206)、并且也輸入到陣列中(框2208)。一旦已處理了各個時間線對象(來自判定框2210的"否"),陣列中的各個條 目就按年代順序排序(框2212)。例如,各條目可基于時間按遞增順序排列。然后 "遍歷"經(jīng)排序的陣列以采集各個"開始"項并丟棄各個"終止"項,以到達組成 該時間、并在片斷期間要利用時間線對象的片段。繼續(xù)前面圖18-21的示例,例如為了 "弄清"片段,時間線排序器將圖21的 時間線2100的每個節(jié)點和效果都輸入一陣列。該陣列被稱為"排序器元陣列"。對 于時間線2100中的每個節(jié)點和效果,兩個條目被置入陣列中。時間線對象的第一 個條目是該對象的"開始"時間,而時間線對象的第二條目是該汾象的"終止"時 間。在從媒體時間線2100 "填充"排序器元陣列之后,陣列被排序成各元基于時 間按遞增順序排列。圖23是使用圖22的過程2200從時間線2100形成的一示例性排序器元陣列 2300的示圖。該排序器元陣列2300具有多個元2302-2318,圖21的媒體時間線 2100中的每個葉節(jié)點和元有兩個這樣的元。為了從排序器元陣列2300中取得片段, 時間線排序器"遍歷"該陣列以從媒體時間線2100找到不同的時間值,諸如"0"、 "7"、 "17"、 "20"、 "33"、 "39"和"58"。應當注意,這些值對應于圖20的用來 示出片段2002(l)-2002(6)的虛線的值。因而,每個片段在陣列中獲得的連續(xù)不同值 之間定義,在圖23中由定義片段一 2002(1)、片段二 2002(2)、片段三2002(3)、片 段四2002(4)、片段五2002(5)和片段六2002(6)的括號示出。時間排序器按年代順序遍歷經(jīng)排序的陣列2300,并收集由"開始"條目引用 的每個項、丟棄具有"終止"條目的每個項。例如,片段一 2002(1)在"0"與"7" 秒之間定義。為了確定在該片段期間利用了哪些時間線對象,時間線排序器將條目2302標注為Al (即音頻文件1908)。然后時間線排序器檢查下一條目2304并找到 另一"開始"時間,并且停止該檢查。因此,片段一 2002(1)僅包括如由時間線排 序器確定地播放7秒的音頻文件1908。使用類似的技術(shù),時間線排序器126可確定在媒體時間線2100的任意特定時 間點利用哪些時間線對象。例如,為了確定哪些時間線對象可應用于39與58秒之 間的片段六2002(6),時間線排序器模塊可如下地遍歷陣列2300:音頻文件(Al) 1908,開始—[Al]視頻文件(VI) 1904,開始—[A1,V1]視頻效果(El) 1906,開始—[A1,V1,E1]音頻文件(A2) 1910,開始—[A1,V1,E1]交叉消隱效果(E2) 1912,開始—[A1,V1,E1,A2,E2]音頻文件(Al) 1908,終止—[V1,E1,A2,E2]交叉消隱效果(E2) 1912,終止—[V1,E1,A2]視頻效果(El) 1906,終止—[V1,A2]視頻文件(VI) 1904,終止—[A2]音頻文件(A2) 1910,終止 為了遍歷陣列以定位要在特定時間再現(xiàn)的時間線對象,時間線排序器繼續(xù)通過陣列 直到到達其時間指示大于所請求時間的一個元。例如,為了確定哪些時間線對象要 在32秒使用,時間線排序器可繼續(xù)直到到達相應指示為"33"秒的條目2310。因 而,元2310、 2312不在確定"32"秒時需要哪些時間線對象時使用。這樣,可收 集時間指示相同的多個時間線對象以供再現(xiàn)。時間線排序器也可采用各種各樣的邏輯來表示時間線中的"特別"情形。例 如,如前面相關(guān)于圖7所述,時間線對象模型可支持其中節(jié)點的元數(shù)據(jù)指示該節(jié)點 已"循環(huán)",即再現(xiàn)多少次的功能部件(例如循環(huán)計數(shù)726)。為了描述這種情形, 時間線排序器可在陣列中形成相同節(jié)點的多個條目,并適當?shù)卣{(diào)節(jié)該時間。然而, 在一些實例中,媒體時間線不可包括"開始"或"終止"時間的指示,因此時間線 排序器應用附加功能來對時間線排序,其進一步的討論相關(guān)于以下附圖進行。圖24是被配置成提供不具有指定開始和終止時間的順序播放列表的順序節(jié)點 的示圖。在圖24中,順序節(jié)點2402被示為與分別相關(guān)于圖4和IO所述的順序節(jié) 點402、 1102相似。順序節(jié)點2402具有多個作為順序節(jié)點2402的子節(jié)點的葉節(jié)點 2404、 2406、 2408。多個葉節(jié)點2404-2408各自包括具有引用相應媒體2426-2430
的相應指針2420-2424的相應元數(shù)據(jù)2414-2418。順序節(jié)點2402被示為具有開始或終止時間未在節(jié)點上指定的播放列表。相反, 多個葉節(jié)點2404-2408各自 一個接一個地連續(xù)再現(xiàn)。因此,為了對這多個節(jié)點 2404-2408排序,時間線排序器126使用一 "無限時間"結(jié)構(gòu)以指示該節(jié)點要在完 成時才再現(xiàn),然后再現(xiàn)序列中的下一個節(jié)點,其進一步的討論將相關(guān)于以下附圖進 行。圖25是示出對包括不具有開始或終止時間指示的時間線對象的媒體時間線排 序的一示例性實現(xiàn)中的過程2500的流程圖。媒體時間線經(jīng)由應用程序編程接口接 收(框2502)。時間線排序器126然后從接收到的媒體時間線檢查時間線對象(例如節(jié)點或 效果)(框2504)。然后確定是否要指定時間線對象的開始和終止時間(判定框 2506)。如果是(來自判定框2506的"是"),開始時間和終止時間被輸入到一陣列 中(框2508)。因而,如果開始和終止時間可用,則這些時間被如前相關(guān)于圖22 所述地輸入到陣列中。如果未對該時間線對象指定開始/終止時間(來自判定框2506的"否"),則使 用"無限"時間結(jié)構(gòu)來在適用時處理任何先前的"無限"時間(框2512)。該結(jié)構(gòu) 可采取各種各樣的配置,諸如單個變量。例如,再次參考圖24的媒體時間線2400, 葉節(jié)點2404可由時間線排序器賦予開始時間"0"和終止時間"x"。葉節(jié)點2406 可被賦予開始時間"x"和終止時間"2x",而葉節(jié)點2408可被賦予開始時間"2x" 和終止時間"3x"。應當注意,在該示例中值"x"并非必然表示葉節(jié)點2404、 2406、 2408之間的等量時間。例如,葉節(jié)點2404可具有與葉節(jié)點2406和葉節(jié)點2408不 同的持續(xù)時間。因而,該實例中的變量表示直到再現(xiàn)完成時才要再現(xiàn)相應的葉節(jié)點。 通過指定指示直到完成時才再現(xiàn)相應節(jié)點的"無限"時間,時間線排序器可如前所 述通過逐個地比較葉節(jié)點2404-2408來將順序節(jié)點2402排序到陣列中。圖26是從圖24的媒體時間線2400形成、如由時間線排序器排序的一示例性 陣列2600的示圖。陣列2600包括多個條目2602-2612,每兩個條目對圖24的葉 節(jié)點2404_2408的每一個形成。通過使用"無限"時間結(jié)構(gòu),不指定開始和終止時 間的葉節(jié)點2404-2408仍然可排序成多個片段2614(1)-2614(3),如前相關(guān)于圖22 和23所述。然而,在一些實例中,即使未對節(jié)點指定開始和終止時間,也要對這些節(jié)點 確定開始和終止時間。例如,再次參看圖24,順序節(jié)點2402包括描述要在由相應
葉節(jié)點2404-2408引用的媒體2426-2430的輸出之間采用的效果2412的元數(shù)據(jù) 2410。因而,效果2412應用于源自順序節(jié)點2402的子節(jié)點的媒體2426-2430。效果2412具有持續(xù)時間2432。該持續(xù)時間2432可用來指定序列中兩個或多 個節(jié)點之間所需的交迭量。例如,序列中的第二個輸入即媒體2426可被輸出成它 交迭達效果2412的持續(xù)時間2432。因此,順序節(jié)點2402的輸出持續(xù)時間變成由 在葉節(jié)點2404-2408上指定的時間與效果2412的持續(xù)時間2432所指定的交迭的函 數(shù)。然而,由于在本示例中葉節(jié)點2404-2408不指定開始和終止時間,因此時間線 排序器確定這些開始和終止時間以確定何時要應用效果2412。例如,時間線排序器首先可使用排序器陣列來建立一片段,然后檢査以確定 片段是有效還是無效,例如片段包含具有無限持續(xù)時間、無限偏移終止位置等一個 以上源。如果片段無效,則時間線排序器可計算持續(xù)時間并重建該陣列,其一個示 例如下所示(KK2《.〈N〈N+K無限-K-K無限-K〈無限-K+K 2無限-K-K 在以上表達式中,對于任意數(shù)字"N"以下都保持為真此外,對于以上表達式,對任意數(shù)字K以下都保持為真 -無限-K-K無限-K;以及 -無限+K《無限例如,在構(gòu)建圖26的陣列時,時間線排序器可遇到取決于另一節(jié)點的開始或 終止時間來確定要在何時再現(xiàn)的效果(例如效果2412)。例如,效果2412可指定 效果2412具有持續(xù)時間2432,它要在葉節(jié)點2404的再現(xiàn)結(jié)束之前應用。因此, 時間線排序器可查詢該葉節(jié)點2404的媒體源以確定該效果2412的開始和終止時 間,將該開始和終止時間應用于陣列,然后憑借時間線來確定是否對片段作出了任 何改變,其進一步的討論可相關(guān)于以下附圖進行。時間線排序器可在以下情形中計 算源節(jié)點的持續(xù)時間(1)當片段包括一個以上具有"無限"(即未指定)持續(xù)時 間的源時或(2)該片段包括具有指定為偏移(例如對效果而言是"x-偏移")的時 間的源。在片段包括一個具有無限持續(xù)時間的源的情形中,時間線可在不計算持續(xù) 時間的情況下播放該文件。圖27是示出其中時間線排序器從媒體源獲得陣列中未在相應元數(shù)據(jù)中指定開 始/終止時間的時間線對象的開始/終止時間的一示例性實現(xiàn)中的過程2700的流程 圖。媒體時間線被排序以到達一片段(框2702)。例如,媒體時間線可根據(jù)圖25
的過程2500排序使該媒體時間線包括多個"無限"時間結(jié)構(gòu)。時間線排序器獲得在該片段中指定的每個時間線對象的媒體源(框2704),并 從媒體源中獲得開始/終止時間(框2706)。例如,時間線排序器可從持續(xù)時間、描 述特定開始/終止時間的元數(shù)據(jù)等確定相關(guān)的開始/終止時間。時間線排序器然后憑 借這些條目到達另一個片段(框270S)。該片段(框2702的)與另一個片段(框 2708的)作比較以確定它們是否相等(判定框2710),即是否包括相同的時間線對 象。如果片斷不相等(來自框2712的"否"),則程序2700的部分(塊2704-2712) 被重復直至片斷相等。如果片段相等(來自框2710的"是"),則再現(xiàn)片段(框2712)。 這樣,對媒體時間線的改變和更新得以處理,諸如對媒體時間線作出的可影響該媒 體時間線如何排序的改變。此外,該技術(shù)可處理在再現(xiàn)期間對媒體時間線作出的任 何更新。示例性操作環(huán)境本文中所述的各個組件和功能可用許多單個計算機實現(xiàn)。圖28示出計算機環(huán) 境2800的一典型示例的各個組件,包括由參考標號2802標示的計算機。計算機 2802可與圖1的計算機102相同或不同。圖28所示的組件僅僅是示例,并且并不 旨在對本發(fā)明的功能范圍提出任何限制;本發(fā)明并非必然依賴于圖28所示的功能 部件。通常,可使用各種不同的通用或?qū)S糜嬎阆到y(tǒng)配置。適于本發(fā)明使用的眾所 周知的計算系統(tǒng)、環(huán)境、和/或配置的示例包括,但不限于,個人計算機、服務器 計算機、手持式或膝上型裝置、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可 編程消費品電器、網(wǎng)絡PC、可用網(wǎng)絡設備、微型計算機、大型機、包括任一種以 上系統(tǒng)或設備的分布式計算環(huán)境等等。這些計算機的功能在許多情形中由計算機可執(zhí)行指令,諸如由計算機執(zhí)行的 軟件組件實施。 一般而言,軟件組件包括執(zhí)行具體任務或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的 例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。任務也可由經(jīng)通信網(wǎng)絡鏈接的遠程處理 裝置執(zhí)行。在分布式計算環(huán)境中,軟件組件可置于本地和遠程計算機存儲介質(zhì)中。指令和/或軟件組件在不同時間被存儲在作為計算機的一部分或可由計算機讀 取的各種計算機可讀介質(zhì)中。程序通常分布在例如軟盤、CD-ROM、 DVD、或某 些形式的諸如經(jīng)調(diào)制信號的通信介質(zhì)上。從那里,它們被安裝或載入到計算機的輔 助存儲器中。在執(zhí)行時,它們至少部分地載入計算機的主要電子存儲器中。 為說明起見,程序和諸如操作系統(tǒng)的其它可執(zhí)行程序組件在本文中被示為分 立塊,盡管可以理解這些程序和組件在各個時間駐留在計算機的不同存儲組件中, 并由計算機的數(shù)據(jù)處理器執(zhí)行。參照圖28,計算機2802的組件可包括,但不限于,處理單元2804、系統(tǒng)存 儲器2806、以及將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合到處理單元2804的系 統(tǒng)總線2808。系統(tǒng)總線2808可以是若干總線結(jié)構(gòu)類型中的任何一種,包括存儲器 總線或存儲器控制器、外圍總線、以及使用各種總線架構(gòu)的任一種的本地總線。作 為示例,而非限制,這些架構(gòu)包括工業(yè)標準架構(gòu)(ISA)總線、微信道架構(gòu)(MCA) 總線、增強型ISA (EISA)總線、視頻電子標準協(xié)會(VESA)局域總線、以及也 稱為Mezzanine總線的外圍部件互連(PCI)總線。計算機2802通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能被計算 機2802訪問的任何可用介質(zhì),并包括易失性和非易失性介質(zhì)、可移動和不可移動 介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。 "計算機存儲介質(zhì)"包括以任何方法或技術(shù)實現(xiàn)、用于存儲諸如計算機可讀指令、 數(shù)據(jù)結(jié)構(gòu)、軟件組件或其它數(shù)據(jù)等信息的易失性和非易失性介質(zhì)、可移動和不可移 動介質(zhì)。計算機存儲介質(zhì)包括但不限于RAM、 ROM、 EEPROM、閃存或其它存儲 器技術(shù)、CD-ROM、數(shù)字化多功能光盤(DVD)或其它光盤存儲、磁盒、磁帶、 磁盤存儲或其它磁性存儲設備、或任何其它可用于存儲所需信息并可由計算機 2802訪問的介質(zhì)。通信介質(zhì)通常在諸如載波或其它傳輸機制的已調(diào)制數(shù)據(jù)信號中 體現(xiàn)為計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、軟件組件、或其它數(shù)據(jù),且包括任何信息輸送 介質(zhì)。術(shù)語"己調(diào)制數(shù)據(jù)信號"意指在信號中用對信息編碼的方式設置或改變其一 個或多個特征的信號。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接連 線連接的有線介質(zhì),和諸如聲學、射頻、紅外線和其它無線介質(zhì)的無線介質(zhì)。以上 任何介質(zhì)的組合也應包括在計算機可讀介質(zhì)的范圍中。系統(tǒng)存儲器2806包括諸如只讀存儲器(ROM)2810和隨機存取存儲器(RAM) 2812的易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。包含有助于如起動時 在計算機2802的元件間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS) 2814 通常存儲在ROM 2810中。RAM 2812通常包含可被處理單元2804即時訪問和/或 當時正被操作的數(shù)據(jù)和/或軟件組件。作為示例,而非限制,圖28示出了操作系統(tǒng) 2816、應用程序2818、軟件組件2820、和程序數(shù)據(jù)2822。計算機2802還可包括其它可移動/不可移動、易失性/非易失性計算機存儲介
質(zhì)。作為示例,圖28圖示了讀取和寫入不可移動、非易失性磁性介質(zhì)的硬盤驅(qū)動器2824,讀取和寫入可移動、非易失性磁盤2828的磁盤驅(qū)動器2826,讀取和寫入 可移動、非易失性光盤2832,諸如CD-ROM或其它光學介質(zhì)的光盤驅(qū)動器2830。 其它也用在示例性操作環(huán)境中的可移動/不可移動、易失性/非易失性計算機存儲介 質(zhì)包括,但不限于,如磁帶盒、閃存卡、數(shù)字化多功能盤、數(shù)字化錄像帶、固態(tài) RAM、固態(tài)ROM等等。硬盤驅(qū)動器2824通常通過諸如數(shù)據(jù)介質(zhì)接口 2834的不 可移動存儲器接口與系統(tǒng)總線2808連接,而磁盤驅(qū)動器2826和光盤驅(qū)動器2830 通常通過可移動存儲器接口與系統(tǒng)總線2808連接。如上所述并如圖28所示的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機 2802提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、軟件組件、和其它數(shù)據(jù)的存儲。在圖28中, 例如,硬盤驅(qū)動器2824被示為存儲操作系統(tǒng)2816'、應用程序2818'、軟件組件 2820'、和程序數(shù)據(jù)2822'。注意這些組件可以與操作系統(tǒng)2816、應用程序2818、 其它軟件組件2820、和程序數(shù)據(jù)2822相同或不同。在此給予操作系統(tǒng)2816'、應 用程序2818'、軟件組件2820'、和程序數(shù)據(jù)2822'的不同的編號至少說明它們是不 同的副本。用戶可通過輸入裝置如鍵盤2836、通常是指鼠標、跟蹤球或觸摸板等 的定位裝置(未示出)向計算機2802輸入命令和信息。其它輸入裝置(未示出) 可包括源外圍設備(諸如提供流式數(shù)據(jù)的話筒2838或相機2840)、游戲桿、游戲 墊、衛(wèi)星接收器、掃描儀等等。這些和其它輸入設備常常通過與系統(tǒng)總線耦合的輸 入/輸出(I/O)接口 2842與處理單元2804相連,但也可通過諸如并行端口、游戲 端口或通用串行總線(USB)的其它接口和總線結(jié)構(gòu)連接。監(jiān)視器2844或其它類 型的顯示設備也可通過諸如視頻適配器2846的接口與系統(tǒng)總線2808相連。除了監(jiān) 視器2844之外,計算機還可包括其它外圍再現(xiàn)設備(例如揚聲器)和一個或多個 打印機,它們可通過I/O接口 2842相連。該計算機可在使用與一臺或多臺遠程計算機,諸如遠程設備2850的邏輯連接 的網(wǎng)絡化環(huán)境中運行。該遠程設備2850可以是個人計算機、可用網(wǎng)絡設備、服務 器、路由器、網(wǎng)絡PC、對等裝置或其它公共網(wǎng)絡節(jié)點,而且通常包括上述與計算 機2802相關(guān)的許多或全部組件。圖28中所描繪的邏輯連接包括局域網(wǎng)(LAN) 2852 和廣域網(wǎng)(WAN) 2854。盡管圖28所示的WAN2854是因特網(wǎng),但WAN 2854也可 包括其它網(wǎng)絡。這樣的網(wǎng)絡化環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡和內(nèi)聯(lián)網(wǎng)上是常 見的。當用于LAN網(wǎng)絡化環(huán)境中時,計算機2802通過網(wǎng)絡接口或適配器2856與局
域網(wǎng)2852連接。當用于WAN網(wǎng)絡化環(huán)境中時,計算機2802通常包括調(diào)制解調(diào)器 2858或其它用于在因特網(wǎng)2854上建立通信的裝置。可以是內(nèi)置式或外置式的調(diào)制 解調(diào)器2858與系統(tǒng)總線2808通過I/O接口 2842或其它適當機制連接。在網(wǎng)絡化 環(huán)境中,所示與計算機2802相關(guān)的程序模塊或其一部分可存儲在遠程設備2850 中。作為示例,而非限制,圖28示出了駐留于遠程設備2850中的遠程軟件組件 2860。應當理解,所示網(wǎng)絡連接是示例性的,并且也可使用其它用于在計算機間建 立通信鏈接的手段。 結(jié)論盡管本發(fā)明已用專用于結(jié)構(gòu)特征和/或方法動作的語言進行了描述,但可以理 解在所附權(quán)利要求中定義的本發(fā)明并非必須限于所述的具體特征或動作。相反,具 體特征和動作被揭示為實現(xiàn)所要求權(quán)利的本發(fā)明的示例性形式。
權(quán)利要求
1.一種方法,包括在應用程序編程接口上接收一媒體時間線,其中所述媒體時間線包括多個時間線對象,一個或多個所述時間線對象引用多個媒體的相應之一;以及從所述媒體時間線中生成多個片段以供一個接一個地再現(xiàn),其中每個所述片段引用在所述片段持續(xù)時間期間再現(xiàn)的一組特定的時間線對象。
2. 如權(quán)利要求1所述的方法,其特征在于,至少一個所述時間線對象指定要 應用于另一個所述時間線對象所引用的媒體的效果。
3. 如權(quán)利要求l所述的方法,其特征在于,至少一個所述時間線對象被配置 用于向另一所述節(jié)點傳送事件,從而在再現(xiàn)所述媒體時間線時向所述媒體時間線作 出改變。
4. 如權(quán)利要求l所述的方法,其特征在于,至少一個所述時間線對象引用與 另一所述時間線對象所引用的所述媒體格式不同的所述媒體。
5. 如權(quán)利要求l所述的方法,其特征在于,所述生成包括 對每個所述節(jié)點中所包括的元數(shù)據(jù)檢查所述節(jié)點的開始時間和終止時間; 向陣列添加每個所述開始時間的條目,并向所述陣列添加每個所述終止時間的條目;按年代順序逐個地對每個所述條目排序;以及遍歷所述經(jīng)排序陣列來確定每個所述片段。
6. 如權(quán)利要求5所述的方法,其特征在于,所述生成包括 確定至少一個所述節(jié)點中所包括的元數(shù)據(jù)不指定終止時間;以及 向陣列添加表示至少一個所述節(jié)點要在完成時才再現(xiàn)的條目。
7. 如權(quán)利要求6所述的方法,其特征在于,所述生成包括 確定一特定所述節(jié)點的開始或終止時間取決于至少一個所述節(jié)點的開始或終止時間;以及獲得與至少一個所述節(jié)點相對應的媒體源以確定至少一個所述節(jié)點的開始或 終止時間。
8. 如權(quán)利要求7所述的方法,其特征在于,所述生成包括 向所述陣列添加經(jīng)確定的開始或終止時間;以及 對所述陣列重新排序D
9. 如權(quán)利要求1所述的方法,其特征在于,所述遍歷包括通過以下步驟按經(jīng) 排序陣列的年代順序到達由特定所述片段定義的特定時間來確定多個節(jié)點的哪些節(jié)點被包括在特定所述片段中收集由具有開始時間的條目所引用的每個時間線對象;以及 丟棄由具有終止時間的條目所引用的每個時間線對象。
10. 如權(quán)利要求1所述的方法,其特征在于,還包括 載入由第一所述片段引用的每個所述時間線對象;以及當?shù)谝凰銎握谠佻F(xiàn)時,載入由第二所述片段引用的每個所述時間線對象。
11. 一種方法,包括按年代順序?qū)﹃嚵兄信c媒體時間線相對應的多個條目進行排序,其中所述媒體時間線中所包括的每個時間線對象具與開始時間相對應的所述條目和與終止時間相對應的所述條目;以及一個或多個所述時間線對象引用供再現(xiàn)的媒體;以及遍歷所述經(jīng)排序的陣列以形成多個片段以供再現(xiàn),其中每個所述片段引用要 在片段期間再現(xiàn)的一個或多個媒體。
12. 如權(quán)利要求11所述的方法,其特征在于,至少一個所述時間線對象指定 要應用于另一所述時間線對象所引用的媒體的效果。
13. 如權(quán)利要求11所述的方法,其特征在于,至少一個所述時間線對象引用 與另一所述時間線對象所引用的所述媒體格式不同的所述媒體。
14. 如權(quán)利要求11所述的方法,其特征在于,所述遍歷包括通過以下步驟按 經(jīng)排序陣列的年代順序到達由特定所述片段定義的特定時間來確定多個節(jié)點的哪些節(jié)點被包括在特定所述片段中收集由具有開始時間的條目所引用的每個時間線對象;以及 丟棄由具有終止時間的條目所引用的每個時間線對象。
15. —種方法,包括經(jīng)由應用程序編程接口接收在特定時間點再現(xiàn)具有多個時間線對象的媒體時間線的請求;通過以下步驟遍歷經(jīng)排序陣列直到到達與特定時間點相對應的片段收集由所述經(jīng)排序陣列中具有開始時間的條目所引用的每個時間線對 象;以及丟棄由所述經(jīng)排序陣列中具有終止時間的條目所引用的每個時間線對 象;以及再現(xiàn)所收集的所述時間線對象。
16. 如權(quán)利要求15所述的方法,其特征在于,所述經(jīng)排序陣列中具有終止時 間的至少一個所述條目通過檢查所述媒體時間線的相應所述時間線對象中所包含 的元數(shù)據(jù)來獲得。
17. 如權(quán)利要求15所述的方法,其特征在于,所述終止時間通過獲取由相應 所述時間線對象所引用的媒體源來從至少一個所述條目中獲得。
18. 如權(quán)利要求15所述的方法,其特征在于,至少一個所述時間線對象指定 要應用于另一所述時間線對象所引用的媒體的效果。
19. 如權(quán)利要求15所述的方法,其特征在于,至少一個所述時間線對象引用 與另一所述時間線對象所引用的媒體格式不同的媒體。
20. 如權(quán)利要求15所述的方法,其特征在于,還包括 載入由第一所述片段引用的每個所述時間線對象;以及當?shù)谝凰銎蔚脑佻F(xiàn)在進行時,載入由第二所述片段引用的每個所述時間 線對象。
全文摘要
描述了媒體時間線排序。在一實現(xiàn)中,一種方法包括在應用程序編程接口上接收一媒體時間線,其中該媒體時間線包括多個時間線對象。這些時間線對象的一個或多個引用多個媒體的相應之一。多個片段從該媒體時間線中生成以供順序再現(xiàn),從而每個片段引用在該片段持續(xù)時間期間再現(xiàn)的一組特定的時間線對象。
文檔編號G06F15/00GK101164055SQ200680013422
公開日2008年4月16日 申請日期2006年3月16日 優(yōu)先權(quán)日2005年4月20日
發(fā)明者A·V·格里格羅維齊, S·U·拉赫曼, X·D·至 申請人:微軟公司