[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器 和 接收寫入器已取代它。 來源讀取器 和 接收寫入器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式碼在可能的情況下使用 Source Reader 和 Sink Writer,取代 Windows Media Format 11 SDK。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
異步讀取器會使用多個線程和異步呼叫,從 ASF 檔案讀取內容。 異步讀取器所支援的功能非常適合將內容轉譯給使用者的應用程式。
讀取器物件最基本的功能可細分為下列步驟。 在這些步驟中,「應用程式」是指您使用 Windows 媒體格式 SDK 撰寫的程式。
- 應用程式會實作 IWMReaderCallback 介面來處理來自讀取器的訊息。 這包括兩個回呼方法:OnStatus,其會接收與讀取器各層面狀態相關的訊息,以及OnSample,其會接收讀取器未壓縮樣本。
- 應用程式會傳遞至讀取者要讀取的檔名。 讀取器開啟檔案時,會將輸出編號指派給每個數據流。 如果檔案使用互斥,讀取器會為所有互斥數據流指派單一輸出。
- 應用程式會從讀取器取得各種輸出組態的相關信息。 收集到的資訊可讓應用程式正確轉譯媒體範例。
- 應用程式會指示讀取器開始從檔案讀取數據。 讀取器會開始將未壓縮的範例以緩衝區物件封裝後一次一個傳遞至 OnSample 回呼。 讀取器所傳遞的範例會以簡報時間順序排列。 讀取器會繼續傳遞範例,直到應用程式停止,或直到到達檔尾為止。
- 應用程式會在讀取器傳遞數據之後負責轉譯數據。 Windows 媒體格式 SDK 不提供任何轉譯例程。 一般而言,應用程式會使用其他 SDK 來轉譯數據,例如 Microsoft DirectX® SDK,或 Microsoft Windows 平臺 SDK 的多媒體功能。
- 讀取完成時,應用程式會指示讀取器關閉檔案。
AudioPlayer 範例應用程式中會說明這些步驟等等。 如需詳細資訊,請參閱 範例應用程式。
讀取器也支援更進階的功能。 讀取器可讓您執行下列動作:
- 暫停檔案的播放。
- 擷取讀取器效能統計數據。
- 控制互斥資料流的選擇。
- 手動配置輸出的緩衝區。
- 提供您自己的時鐘。
- 擷取檔案作業的狀態(緩衝處理、下載或儲存)。
- 使用標準 COM 介面開啟檔案,IStream。
- 定位 ASF 檔案中的特定點。
- 從檔案的標頭讀取個人資料數據。
下列各節將詳細說明讀取器物件的用法。
- 在 OnStatus 回調中執行讀取器訊息
- 實作 OnSample 回呼
- 建立讀取器並開啟檔案
- 使用異步讀取器獲取媒體範例
- 依時間搜尋 使用異步讀取器
- 使用異步讀取器 依框架編號搜尋
- 使用異步讀取器 透過 SMPTE 時間程式代碼搜尋
- 尋找標記
- 暫停或停止播放
- 取得讀取器效能統計數據
- 使用手動串流選擇
- 藉由異步讀取器傳遞壓縮樣本
相關主題