共用方式為


使用非同步讀取器讀取檔案

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

非同步讀取器會使用多個執行緒和非同步呼叫,從 ASF 檔案讀取內容。 非同步讀取器所支援的功能,使其非常適合將內容轉譯給終端使用者的應用程式。

讀取器物件最基本的功能可以細分為下列步驟。 在這些步驟中,「應用程式」是指您使用 Windows 媒體格式 SDK 撰寫的程式。

  1. 應用程式會實作 IWMReaderCallback 介面,以處理來自讀取器的訊息。 這包括兩個回呼方法: OnStatus,其會接收與讀取器各種層面狀態相關的訊息,以及從讀取器接收未壓縮樣本的 OnSample
  2. 應用程式會傳遞至讀取者要讀取的檔案名。 當讀取器開啟檔案時,它會將輸出編號指派給每個資料流程。 如果檔案使用互斥,讀取器會指派所有互斥資料流程的單一輸出。
  3. 應用程式會從讀取器取得各種輸出組態的相關資訊。 收集的資訊可讓應用程式正確轉譯媒體範例。
  4. 應用程式會指示讀取器開始從檔案讀取資料。 讀取器會開始在包裝于緩衝區物件的緩衝區中,一次一次將未壓縮的樣本傳遞至 OnSample 回呼。 讀取器所傳遞的範例會依簡報時間順序排列。 讀取器會繼續傳遞範例,直到應用程式停止或到達檔案結尾為止。
  5. 應用程式負責在讀取器傳遞資料之後轉譯資料。 Windows 媒體格式 SDK 不提供任何轉譯常式。 一般而言,應用程式會使用其他 SDK 來轉譯資料,例如 Microsoft DirectX® SDK,或 Microsoft Windows 平臺 SDK的多媒體功能。
  6. 讀取完成時,應用程式會指示讀取器關閉檔案。

這些步驟會在 AudioPlayer 範例應用程式中說明,以及其他步驟。 如需詳細資訊,請參閱 範例應用程式

讀取器也支援更進階的功能。 讀取器可讓您執行下列動作:

  • 暫停檔案的播放。
  • 擷取讀取器效能統計資料。
  • 控制互斥資料流程的資料流程選取。
  • 手動設定用於輸出的緩衝區。
  • 提供您自己的時鐘。
  • 擷取檔作業的狀態, (緩衝、下載或儲存) 。
  • 使用標準 COM 介面 IStream開啟檔案。
  • 搜尋 ASF 檔案中的特定點。
  • 從檔案的標頭讀取設定檔資料。

下列各節將詳細說明讀取器物件的用法。

讀取 ASF 檔案

讀取器物件