配置緩衝區以供檔案讀取
在最基本的檔案讀取案例中,用來傳遞樣本的緩衝區是由讀取物件 (讀取器物件或同步讀取器物件) 所配置。 不過,您可以自行配置緩衝區。 如需配置您自己的緩衝區優點的詳細資訊,請參閱 使用者配置範例支援。
若要使用您自己的緩衝區進行檔案讀取,請執行下列步驟。
- 為讀取器實作回呼或回呼,以在需要緩衝區時呼叫。 如果您要讀取輸出範例,請使用 IWMReaderAllocatorEx::AllocateForOutputEx。 如果您要讀取串流範例,請使用 IWMReaderAllocatorEx::AllocateForStreamEx。 包含管理適合您應用程式之緩衝區的任何邏輯。
- 配置您將用於檔案讀取的緩衝區集區。
- 針對使用緩衝區的每個輸出和/或資料流程呼叫 IWMReaderAdvanced::GetMaxOutputSampleSize 或 IWMReaderAdvanced::GetMaxStreamSampleSize ,以尋找緩衝區所需的大小。 如果使用同步讀取器,請改用 IWMSyncReader::GetMaxOutputSampleSize 或 IWMSyncReader::GetMaxStreamSampleSize 。
- 建立集區的每個緩衝區。
- 設定讀取器或同步讀取器以供讀取。 如需詳細資訊,請參閱 使用非同步讀取器讀取檔案 或使用 同步讀取器讀取檔案。
- 開始撰寫之前,請先針對您使用讀取器物件配置緩衝區的每個輸出和資料流程,呼叫IWMReaderAdvanced::SetAllocateForStream,再呼叫 IWMReaderAdvanced::SetAllocateForStream。 針對同步讀取器,請改為呼叫 IWMSyncReader2::SetAllocateForOutput 或 IWMSyncReader2::SetAllocateForStream 。
- 開始讀取檔案。
讀取物件會呼叫適當的配置器回呼,並從您的應用程式取得範例。 您的緩衝區管理邏輯必須包含一種方式,以指示緩衝區可供再次使用。 一般而言,當緩衝區的內容轉譯時,緩衝區會放回集區。 視您的應用程式而定,您可能需要集區或多個緩衝區。
相關主題