使用自訂接收
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
如果您有特殊寫入需求,您可以建立自己的寫入器接收。 寫入器會呼叫 IWMWriterSink的方法,以維護與接收的單向通訊。 若要建立您自己的接收,請在應用程式中的類別中實作 IWMWriterSink 介面。 此程式非常類似于實作 Windows 媒體格式 SDK 物件所使用的任何其他回呼介面。 如需回呼的詳細資訊,請參閱 使用回呼方法。
在 IWMWriterSink::OnHeader中收到的緩衝區應該寫入檔案的開頭,而且在 OnDataUnit中收到的所有緩衝區都應該循序寫出。 OnHeader 會在開頭呼叫,但可能在其他時間呼叫,如果是的話,您應該盡可能覆寫原始標頭。 如果您的應用程式因為某些原因而無法執行此動作,則只要忽略後續 的 OnHeader 呼叫即可。
您的自訂接收應該透過呼叫 IWMStatusCallback::OnStatus 回 呼方法,將其狀態傳達給寫入應用程式。 如果您實作接收做為 COM 物件,您可能會想要公開 IWMRegisterCallback 介面。 不過,您可以將 OnStatus 回呼的位址傳遞至接收,並以您想要的任何方式設定內容。