搭配媒體會話使用媒體來源

如果您使用媒體會話來控制播放,您應該在媒體來源上呼叫的方法集合會受到限制。 本節說明如何搭配媒體會話使用媒體來源。

以下是應用程式將執行的基本步驟:

  1. 建立媒體來源。 若要建立媒體來源,請使用來源解析程式。 如需詳細資訊,請參閱 來源解析程式。 來源解析程式會傳回來源 之 IMFMediaSource 介面的指標。 (如果您已撰寫自訂媒體來源,您可以改為提供自訂建立方法。)

  2. 設定簡報。 若要設定來源的簡報,請呼叫 IMFMediaSource::CreatePresentationDescriptor。 您可以修改此複本,但在播放開始之前,變更不會變成作用中。 播放期間請勿修改簡報描述項。 如需詳細資訊,請參閱 簡報描述元

  3. 建立包含媒體來源的拓撲。 如需詳細資訊,請參閱 拓撲

  4. 使用媒體會話來控制播放。 媒體會話會在媒體來源上呼叫方法。 應用程式目前不應該在媒體來源上呼叫任何方法。

  5. 在釋放媒體來源之前,請先呼叫 IMFMediaSource::Shutdown 以關閉來源。

    注意

    如果您使用排序器來源,則排序器來源會處理關閉區段來源。 如需詳細資訊,請參閱 Sequencer 來源

     

如果您使用媒體會話,您應該在媒體來源上呼叫的唯一方法是 CreatePresentationDescriptorGetCharacteristicsShutdown。 尤其是:

  • 請勿呼叫 StartPauseStop;這些方法只能由媒體會話呼叫。

  • 請勿呼叫任何 IMFMediaStream 方法。

  • 請勿直接從媒體來源或任何資料流程擷取事件。 媒體會話必須接收這些事件,管線才能正常運作。 媒體會話會轉送應用程式所需的任何事件。

媒體會話