共用方式為


進階拓撲建置

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

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

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

  1. 應用程式會建置一個局部拓撲,並將其放入媒體會話的佇列中。
  2. 媒體會話會叫用拓撲載入器來解析拓撲。

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

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

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

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

本節包含下列主題。

主題 描述
自定義拓撲載入器 如何為媒體會話提供 IMFTopoLoader 的自定義實作。
將輸出節點系結至媒體接收端 在媒體會話之外使用拓撲載入器時,如何準備拓撲的輸出節點。
將譯碼器新增至拓撲 如何手動選取譯碼器,並將其新增至拓撲。

 

拓撲