IMediaSeeking::GetCurrentPosition 方法 (strmif.h)

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

方法會 GetCurrentPosition 擷取相對於數據流總持續時間的目前位置。

語法

HRESULT GetCurrentPosition(
  [out] LONGLONG *pCurrent
);

參數

[out] pCurrent

接收目前位置之變數的指標,以目前時間格式的單位為單位。

傳回值

傳回 HRESULT 值。 可能的值如下。

傳回碼 描述
S_OK
成功。
E_NOTIMPL
不支援方法。
E_POINTER
NULL 指標自變數。

備註

這個方法會傳回已達到播放的目前位置。 值包括播放速率和開始時間的調整。 例如,如果開始時間是 5 秒,則播放速率為 2.0,而您執行圖形四秒,則目前位置為 5 + (4 x 2.0) = 13.0 秒。

傳回的值是以目前時間格式的單位表示。 若要判斷目前的時間格式,請呼叫 GetTimeFormat 方法。

如果圖表已暫停或停止,則目前的位置是播放繼續的點。

Filter Graph 管理員會計算目前數據流時間的位置;它不會查詢圖表中的篩選。 針對檔案播放,這會產生精確的結果,因為播放會同步至數據流時間。 針對檔案寫入,結果不正確。 若要取得檔案寫入圖形中的目前位置,請查詢多任務器篩選條件。 (位置與實時擷取無關,不過。)

傳回的值是以目前時間格式表示。 默認時間格式REFERENCE_TIME單位 ( 100 奈秒) 。 若要變更時間格式,請使用 IMediaSeeking::SetTimeFormat 方法。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IMediaSeeking 介面