共用方式為


關於 Sequencer 來源

排序器來源可讓應用程式依序播放 媒體來源的集合,並在來源之間無縫轉換。 排序器來源可用於下列案例:

  • 建立可順暢地從一個媒體來源切換至下一個媒體來源的播放清單。
  • 同時播放來自多個來源的數據流;例如,使用另一個檔案中的視訊播放音訊。
  • 在連續播放清單項目中於不同媒體來源的串流間切換;例如,播放清單中的項目可以共用相同的視訊來源,而每個項目包含不同的音訊來源。

針對播放清單的每個元素,應用程式會建立個別的拓撲。 這些拓撲中的媒體來源稱為 原生來源,以區別它們與排序器來源。 在播放期間,整個拓撲序列稱為 簡報,序列中的每個拓撲稱為 區段

播放是由 媒體會話所控制,可提供傳輸控件,例如播放、暫停和停止。 媒體會話也會管理簡報時間,並將事件傳送至應用程式。 (來自排序器來源的事件會透過媒體會話轉送至應用程式。

為了建立播放清單,應用程式會建立一或多個播放拓撲,並以所需的播放順序,在排序器來源上排入佇列。 在內部,排序器來源會修改拓撲,讓來源節點指向排序器來源,而不是原生來源。 應用程式會將這些修改過的拓撲,而不是原始拓撲傳送至媒體會話。 這可讓排序器來源匯總原生來源,並與媒體會話通訊。

為了在區段之間實現無縫轉換,序列器來源會預先準備每個區段。 當一個區段正在播放,而且在播放下列區段之前,排序器來源會引發 MENewPresentation 事件,其中包含簡報描述元。 應用程式會使用此簡報描述元來取得簡報中下一個區段的拓撲,並將拓撲排入媒體會話的佇列。

下圖顯示透過排序器來源的播放清單項目數據流。 應用程式會使用來源解析程式來建立原生來源、建置每個區段的拓撲,並將排序器來源上的拓撲排入佇列。

圖表,展示來自 imfmediasession、imfsequencersource 和播放清單區段的數據流,流向 imfmediasource

如何建立播放清單

拓撲

使用排序器來源

信號產生器來源