IAMTimelineObj::SetStartStop メソッド
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
注意
[非推奨。 この API は、Windows の今後のリリースから削除される可能性があります。
メソッドは SetStartStop
、オブジェクトの親を基準にして、オブジェクトの開始時刻と終了時刻を設定します。
構文
HRESULT SetStartStop(
REFERENCE_TIME Start,
REFERENCE_TIME Stop
);
パラメーター
-
Start
-
新しい開始時刻 (100 ナノ秒単位)、または –1 で既存の開始時刻を維持します。
-
Stop
-
既存の停止時間を維持するために、新しい停止時間 (100 ナノ秒単位)、または –1。
戻り値
次のいずれかの HRESULT 値を 返します。
リターン コード | 説明 |
---|---|
|
成功しました。 |
|
引数が無効です。 |
|
実装されていません。 |
解説
トラック、コンポジション、およびグループでは、このメソッドは実装されません。 これらのオブジェクトの場合、開始時刻は常に 0 で、停止時間は含まれるオブジェクトの最大停止時間です。
同じトラック内のソース オブジェクトに重複する時間を設定しないでください。これにより、未定義の動作が発生する可能性があります。
ソース オブジェクトの場合、開始時刻と停止時刻は、メディアの開始時刻とメディアの停止時間とは無関係です。 一方の値のペアを変更しても、もう一方は変更されません。 メディアの開始時刻と停止時刻を設定するには、 IAMTimelineSrc::SetMediaTimes メソッドを 呼び出します。 詳細については、「 Time in DirectShow Editing Services」を参照してください。
フレームの正確な切り取りと切り替えを取得するには、 Start パラメーターと Stop パラメーターをフレーム境界に設定します。 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 および .NET Framework 3.0 のMicrosoft Windows SDK Update をダウンロードします。 Qedit.h は、Windows 7 および .NET Framework 3.5 Service Pack 1 のMicrosoft Windows SDKでは使用できません。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目