IAMTimelineObj::SetStartStop 方法
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
注意
[已被取代。 此 API 可能會從未來的 Windows 版本中移除。]
方法會 SetStartStop
設定物件的開始和停止時間,相對於物件的父代。
語法
HRESULT SetStartStop(
REFERENCE_TIME Start,
REFERENCE_TIME Stop
);
參數
-
啟動
-
新的開始時間,以 100 奈秒為單位,或 –1 保留現有的開始時間。
-
停止
-
新的停止時間,以 100 奈秒為單位,或 –1 保留現有的停止時間。
傳回值
傳回下列其中一個 HRESULT 值:
傳回碼 | 描述 |
---|---|
|
成功。 |
|
無效引數。 |
|
未實作。 |
備註
追蹤、組合和群組不會實作此方法。 對於這些物件,開始時間一律為零,而停止時間是其包含之物件的最大停止時間。
請勿在相同追蹤內設定來源物件的重迭時間。這樣做可能會導致未定義的行為。
對於來源物件,啟動和停止時間與媒體啟動和媒體停止時間無關。 變更一組值並不會變更另一組值。 若要設定媒體啟動和停止時間,請呼叫 IAMTimelineSrc::SetMediaTimes 方法。 如需詳細資訊,請參閱 DirectShow 編輯服務中的時間。
若要取得畫面精確的剪下和轉換,請將 開始 和 停止 參數設定為框架界限。 您可以使用 IAMTimelineObj::FixTimes 方法,將時間值轉換成最接近的框架界限,或使用下列函式,從框架編號轉換成參考時間:
REFERENCE_TIME inline FrameNumToTime(LONGLONG frame, double fps)
{
double dt = (frame * 10000000 / fps);
if (frame >= 0)
{
dt += 0.5; }
else
{
dt -= 0.5;
}
return (REFERENCE_TIME)dt;
}
注意
標頭檔 Qedit.h 與 7 版之後的 Direct3D 標頭不相容。
注意
若要取得 Qedit.h,請下載Windows Vista Microsoft Windows SDK Update 和 .NET Framework 3.0。 Qedit.h 不適用於 Windows 7 和 .NET Framework 3.5 Service Pack 1 的 Microsoft Windows SDK。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱