進階拓撲建置

本節說明建置拓撲的一些進階技術。 如果您想要更充分掌控傳送至媒體會話的拓撲,可以使用這些技術。

由於這些技術適用于超出標準拓撲載入器所提供功能的案例,因此許多詳細資料將取決於應用程式的特定需求。 因此,本節會以較小的子工作鬆散方式組織,而不是完整的端對端案例。

典型的播放應用程式會遵循下列步驟:

  1. 應用程式會建置部分拓撲,並在媒體會話上將它排入佇列。
  2. 媒體會話會叫用拓撲載入器來解析拓撲。

如果您想要超越拓撲載入器的功能,有三種一般方法:

  • 建置完整的拓撲。 當您將拓撲排入媒體會話的佇列時,請使用 MFSESSION_SETTOPOLOGY_NORESOLUTION 旗標呼叫 IMFMediaSession::SetTopology 。 此旗標可防止媒體會話嘗試解析拓撲。

  • 直接叫用拓撲載入器來解析拓撲。 然後,您可以在媒體會話上將其排入佇列之前修改完整拓撲。

  • 實作自訂拓撲載入器。 使用此方法時,您會將部分拓撲排入佇列,但媒體會話會叫用您的自訂載入器,而不是標準 Media Foundation 實作。 此方法的其中一個優點是,您可以在受保護的環境內執行自訂拓撲建置。 (在此情況下,拓撲載入器必須是受信任的元件。如需詳細資訊,請參閱 Protected Media Path.)

此章節包含下列主題。

主題 描述
自訂拓撲載入器 如何為媒體會話提供 IMFTopoLoader 的自訂實作。
將輸出節點系結至媒體接收 如果您使用媒體會話外部的拓撲載入器,如何準備拓撲中的輸出節點。
將解碼器新增至拓撲 如何手動選取解碼器,並將其新增至拓撲。

 

拓撲