共用方式為


使用媒體偵測器

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

[此 API 不受支援,未來可能會變更或無法使用。]

媒體偵測器是協助程式物件,可擷取檔案的相關資訊,例如資料流程數目、其類型和持續時間。 它也包含從影片串流擷取海報畫面的方法。 它會公開 IMediaDet 介面。

媒體偵測器會以兩種模式之一運作。 當您建立媒體偵測器的實例時,它不會附加至特定來源檔案。 在此模式中,您可以從多個來源檔案擷取串流資訊。 不過,一旦您使用媒體偵測器來取得海報框架,就會切換到 點陣圖抓取模式。 在點陣圖擷取模式中,媒體偵測器會附加至特定的視訊串流,而串流資訊方法將無法再運作。 此外,無法將媒體偵測器切換回其啟動模式。 因此,取得擷取海報畫面之前所需的任何串流資訊,或為每個資料流程建立媒體偵測器的新實例。

若要取得資料流程資訊,請執行下列動作:

  1. 使用原始程式檔的名稱 呼叫 IMediaDet::p ut_Filename
  2. 呼叫 IMediaDet::get_OutputStreams 以取得來源中的資料流程數目。
  3. 使用 IMediaDet::p ut_CurrentStream指定資料流程編號。 然後呼叫下列一或多個方法:

若要取得海報框架,請指定資料流程編號,如上一個步驟所示。 然後呼叫 IMediaDet::GetBitmapBits,將海報框架複製到緩衝區,或將海報框架儲存至檔案的 IMediaDet::WriteBitmapBits

使用來源