共用方式為


將 ASF 資料傳送至發佈點

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

您可以使用 Windows 媒體格式 SDK,將 ASF 資料推送至 Windows 媒體伺服器上的發佈點。 然後,伺服器會從該發佈點廣播資料。 如果您在一部電腦上擷取或重新編碼內容,而且想要將內容從另一部電腦散發 (或數部電腦) ,則此案例很有用。 如果您需要將防火牆內的電腦內容移至防火牆外部的 Windows 媒體伺服器,因為推播發布會使用 HTTP 通訊協定,所以也很有用。

注意

發佈點基本上就像重新導向器一樣。 用戶端會在 (URL 中指定發佈點,例如,mms://MyServer/MyPublishingPoint) ,而伺服器會將它轉譯為內容要求。

 

若要將資料推送至發佈點,請將推送接收物件附加至寫入器物件。 推播接收是用來開啟與伺服器的連線,以及管理推播會話。 寫入器物件會處理建立檔案的所有其他層面。

執行下列步驟:

  1. 呼叫 WMCreateWriter 函式來建立寫入器物件,此函式會傳回 IWMWriter 指標。
  2. 藉由呼叫 WMCreateWriterPushSink 函式來建立推播接收物件,這會傳回 IWMWriterPushSink 指標。
  3. 在寫入器上呼叫 IWMWriterAdvanced::AddSink ,並使用網路接收器 IWMWriterPushSink 介面的指標,將網路接收連結至寫入器。
  4. 呼叫 IWMWriterPushSink::Connect以連線到伺服器。
  5. 寫入資料流。 此步驟牽涉到在寫入器物件上設定設定檔、將範例傳送至寫入器,以及其他工作。 如需詳細資訊,請參閱 撰寫 ASF 檔案。 其他工作可能包括設定中繼資料屬性 (,如 使用中繼資料) 或在資料流程 (上設定即時 DRM 中所述,如 啟用 DRM 支援) 中所述。 這些工作與 ASF 檔案寫入完全相同。
  6. 完成寫入之後,請在寫入器上呼叫 IWMWriterAdvanced::RemoveSink ,以卸離發送接收物件。
  7. 在推播接收上呼叫 IWMWriterPushSink::EndSession ,以結束與伺服器的會話。

WMVNetWrite 範例應用程式中會說明這些步驟。

注意

如果您要傳送非常低位元速率的僅限視訊檔案,它可能不會開始在發佈點上播放數秒。 例如,當單一封包包含許多小型視訊畫面且沒有音訊,或當第一個封包與低位元速率視訊檔案中的第二個封包之間有很長的時間間隔時,就會發生這種情況。 若要避免這個問題,請將無訊息音訊資料流程插入檔案中。

 

驗證

推送接收物件會自動處理對伺服器的驗證。 不過,應用程式可能需要提供認證。 這是透過 IWMCredentialCallback 回 呼介面來完成的,如下所示:

  1. 在您的應用程式中實作 IWMStatusCallbackIWMCredentialCallback 介面。
  2. 查詢 IWMRegisterCallback 介面的推送接收物件。
  3. 使用應用程式IWMStatusCallback介面的指標呼叫IWMRegisterCallback::建議
  4. 如果推送接收需要從應用程式取得認證,它會查詢IWMCredentialCallback 介面的 IWMStatusCallback 指標,並呼叫 IWMCredentialCallback::AcquireCredentials 如需此方法的相關資訊,請參閱 驗證
  5. 完成後,請呼叫 IWMRegisterCallback::Unadvise 停止從推播接收取得事件通知。

透過網路傳送 ASF 資料

使用寫入器接收

寫入器推播接收物件