Windows 媒體格式 SDK 概觀
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器 和 匯出寫入器已取代它。 來源讀取器 和 接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 源讀取器 和 匯流寫入器,而不是 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
Windows 媒體格式 SDK 包含物件,可在 ASF 檔案生命週期的三點執行工作:建立、編輯和播放。 某些應用程式,特別是用於視訊編輯的應用程式,會使用 Windows 媒體格式 SDK 的廣泛功能來讀取 ASF 檔案的內容、改變該內容,並將結果寫入新檔案。 不過,在檔案建立、編輯和播放的三個階段中,最容易想到此 SDK。
使用 Windows 媒體格式 SDK 建立 ASF 檔案
使用 Windows 媒體格式 SDK 撰寫 ASF 檔案的程序相當簡單。 檔案建立是由寫入器物件所管理。 您可以指定設定檔物件,讓寫入器物件知道您想要建立的檔案類型。 每個配置檔物件都包含 ASF 檔案的設定。 某些配置檔隨附於此 SDK 中,而且設定檔編輯支援是由許多物件提供。 當您已設定要使用的寫入器物件的設定檔時,您可以開始將範例傳遞至寫入器進行處理。 在大部分情況下,範例是未壓縮的音訊或視訊片段,但範例可以是任何類型的數據。
在內部,作者會執行三個主要任務。 首先,如果樣本所屬的數據流要壓縮,寫入器會與編解碼器的編碼部分進行通訊,以壓縮樣本。 一旦樣本以配置檔所指定的形式顯示,寫入器會將樣本分成適當大小的封包,以透過網路串流處理。 最後,來自各種數據流的數據會被復用或交錯處理,讓在所有數據流中具有類似呈現時間的樣本在 ASF 檔案的數據區段中彼此靠近。
寫入器對象實際上不會寫入檔案本身。 它會與一個或多個稱為下游節點的物件進行通訊,這些物件會將數據從寫入器傳遞至其目的地。 在處理本機檔案時,檔案匯流器會負責將資料寫入檔案。 您也可以配置網路接收端,以透過網路傳送 ASF 格式的數據。 通常會使用一個以上的水槽。 例如,應用程式可以跨網路串流檔案,並將復本儲存為本機磁碟上的檔案。 藉由使用推送匯接,您可以將內容從您的撰寫應用程式推送到一台或多台運行 Windows 媒體服務的伺服器,接著將內容分發給使用者。
使用 Windows 媒體格式 SDK 編輯 ASF 檔案 (元數據編輯)
編輯 ASF 檔案之數據區段的內容牽涉到重寫檔案。 Windows 媒體格式 SDK 不提供任何可直接操作資料部分的物件。 針對簡單的編輯,例如串連兩個檔案,或從檔案剪下內容,您可以讀取範例而不解壓縮它們,然後使用相同的標頭資訊將它們寫入新檔案。 更複雜的編輯牽涉到對新檔案所使用的配置文件進行變更。
Windows 媒體格式 SDK 支援編輯標頭區段的部分,而不需重寫檔案。 ASF 檔案的標頭包含許多不同類型的數據。 最常編輯的是元數據屬性,這些屬性是名稱/值組,可描述內容的各個層面,以及參與製作內容的人員。 您可以使用 Windows 媒體格式 SDK 的元資料編輯器物件來編輯元數據。 此物件會開啟 ASF 檔案、讓您變更標頭的某些內容、將變更寫入檔案,以及關閉檔案。 元數據編輯非常簡單,使用簡單的方法呼叫來擷取和設定值。
使用 Windows 媒體格式 SDK 讀取 ASF 檔案
Windows 媒體格式 SDK 提供兩個不同的物件來讀取 ASF 檔案:讀取器物件和同步讀取器物件。 讀取器物件適用於所有版本的 SDK,而同步讀取器物件需要 Windows Media Format 9 Series SDK 或更新版本。 這兩者的主要差異在於,讀取器物件會透過引發事件至回呼方法,將範例傳遞給您的應用程式,而同步讀取器則是透過回應方法呼叫來提供個別範例。
若要使用讀取器物件,您必須實作數個回呼方法,以回應讀取器物件的狀態和範例訊息。 您可以將讀取器設定為視需要傳遞內容、啟動讀取器,並等候範例訊息。 從 ASF 檔案擷取樣本的程式基本上是寫入程式的反向程式。 讀取器物件會與譯碼任何壓縮數據流所需的編解碼器通訊,並將未壓縮的數據傳遞給您的應用程式。 您也可以將讀取器物件設定為以壓縮狀態傳遞樣本,讓您可以在新檔案中包含先前編碼的數據流。
同步讀取器對象的運作方式與讀取器物件大致相同。 相較於設定回呼函數,您必須逐一向同步讀取器請求每個範例。 使用同步讀取器只需要單個線程,而使用讀取器需要多個線程。 在某些情況下,同步讀取器物件比讀取器物件有數個優點,主要是針對需要快速存取檔案不同部分的內容編輯應用程式,以及在檔案之間複製數據。 同步讀取器物件更容易使用,並讓搜尋數據區段中的特定位置變得簡單。 不過,同步讀取器不支援透過網路讀取檔案,而且不支援數位版權管理。
使用 Windows 媒體格式 SDK 進行的其他作業
除了剛才描述的三個主要功能區域之外,Windows 媒體格式 SDK 還有 對象來執行與 ASF 檔案相關的其他作業。 配置檔管理員物件可用來建立和存取配置檔,並加以儲存。 索引器物件會在 ASF 檔案中建立索引物件,以允許在視訊檔案中搜尋。 最後,讀者對象和寫入器對象支援數位版權管理,以保護內容建立者的智慧財產權。
附註 ASF 檔案結構以及這個 SDK 基本上是為了產生包含音訊和視訊的數位媒體檔案而設計的,因此本文件也是以這個目標作為撰寫基礎。 不過,ASF 檔案結構也會適用於其他類型的內容。 您可能會發現許多與音訊和視訊無關的 ASF 檔案應用程式。
相關主題