實作 OnSample 回呼
[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
非同步讀取器會呼叫 IWMReaderCallback::OnSample 回呼方法,以簡報時間順序將範例傳遞給控制應用程式。 當您使用非同步讀取器建立應用程式時,必須實作 OnSample 來處理未壓縮的範例。 一般而言,建立用來轉譯內容的函式或方法將會從 OnSample內呼叫。
OnSample回呼的一般實作包括下列步驟。
- 在傳遞為pSample的緩衝區上呼叫INSSBuffer::GetBufferAndLength,以擷取包含樣本的緩衝區位置和大小。
- 視輸出編號而定,將您的邏輯分支。 輸出編號會以dwOutputNumber的形式傳遞至OnSample。
- 包含您想要支援之每個輸出編號的轉譯邏輯。 如果您要從多個輸出轉譯範例,您可能需要同步處理轉譯。
從 ASF 檔案傳遞壓縮樣本的應用程式必須實作 IWMReaderCallbackAdvanced::OnStreamSample 回呼方法。 OnStreamSample 函式幾乎與 OnSample相同,不同之處在于它會依資料流程編號接收壓縮的樣本,而不是依輸出編號未壓縮的樣本。
相關主題