ソースの追加
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
[この API はサポートされていないため、今後変更または使用できない可能性があります。]
他のタイムライン オブジェクトを作成するのと同じ方法でソース オブジェクトを作成します。 ただし、タイムラインに挿入する前に、ソースに少なくとも次のプロパティを指定する必要があります。
- タイムラインを基準とした開始時刻と終了時刻。 IAMTimelineObj::SetStartStop メソッドを呼び出します。
- ソースとして使用するメディア ファイル。 ファイルの名前を表すワイド文字列を使用して 、IAMTimelineSrc::SetMediaName メソッドを呼び出します。
- メディアの開始時刻と停止時間。これは元のファイルに対して相対的です。 IAMTimelineSrc::SetMediaTimes メソッドを呼び出します。 メディア時間の詳細については、「 Time in DirectShow Editing Services」を参照してください。
次の例では、ソース クリップはファイルから 4 秒開始します。 メディアの継続時間は 10 秒で、タイムライン期間の 2 倍の長さです。つまり、ソースは通常の 2 倍の速度で再生されます。 定数 UNITS は 100000000 (10^7) として定義され、1 秒と等しくなります。
pSourceObj->SetStartStop(0, 50000000)
BSTR bstrFile = SysAllocStringLen(OLESTR("C:\\example.avi"), 15);
pSource->SetMediaName(bstrFile);
SysFreeString(bstrFile);
pSource->SetMediaTimes(40000000, 140000000);
注意
現在、DES では、Video Compression Manager (VCM) コーデックで圧縮された 75 を超えるソースを同時にレンダリングすることはできません。 また、プロジェクト全体に 75 を超えるソースが含まれている場合は、動的再接続を使用する必要があります。DES ではプロジェクトをプレビューできません。 詳細については、「 IRenderEngine::SetDynamicReconnectLevel」を参照してください。
ソースの詳細については、「ソース の操作」を参照してください。
関連トピック