次の方法で共有


IAMTimelineObj::SetStartStop メソッド

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

注意

[非推奨。 この API は、Windows の今後のリリースから削除される可能性があります。

 

メソッドは SetStartStop 、オブジェクトの親を基準にして、オブジェクトの開始時刻と終了時刻を設定します。

構文

HRESULT SetStartStop(
   REFERENCE_TIME Start,
   REFERENCE_TIME Stop
);

パラメーター

Start

新しい開始時刻 (100 ナノ秒単位)、または –1 で既存の開始時刻を維持します。

Stop

既存の停止時間を維持するために、新しい停止時間 (100 ナノ秒単位)、または –1。

戻り値

次のいずれかの HRESULT 値を 返します。

リターン コード 説明
S_OK
成功しました。
E_INVALIDARG
引数が無効です。
E_NOTIMPL
実装されていません。

 

解説

トラック、コンポジション、およびグループでは、このメソッドは実装されません。 これらのオブジェクトの場合、開始時刻は常に 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では使用できません。

 

要件

要件
ヘッダー
Qedit.h
ライブラリ
Strmiids.lib

関連項目

IAMTimelineObj インターフェイス

エラーコードと成功コード