次の方法で共有


DirectShow Editing Services での Windows メディアの使用

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

[この API はサポートされていないため、今後変更または使用できない可能性があります。]

このセクションでは、 DirectShow Editing Services (DES) アプリケーションで Windows Media ベースのコンテンツを使用する方法について説明します。 次の 2 つのメインシナリオがあります。

  • ソース クリップ。 DES プロジェクトには、Windows Media ファイルのオーディオ クリップとビデオ クリップを含めることができます。
  • ターゲットの形式。 Windows Media は、ビデオ編集プロジェクトの最終出力に最適な形式です。

Windows Media ファイルを操作するには、アプリケーションでソフトウェア証明書 (キーとも呼ばれます) を提供する必要があります。 これは、キー プロバイダー オブジェクトを実装することによって行われます。 キー プロバイダーは、 IServiceProvider インターフェイスを公開する COM オブジェクトです。 キー プロバイダーの実装の詳細については、「 Windows Media Format SDK のロック解除」を参照してください。

WINDOWS メディア ファイルで DES を使用するには、次の DES オブジェクトにソフトウェア キーが必要です。

  • プレビューまたはファイル書き込み用のレンダリング エンジン。

  • ASF ファイルからビデオ フレームまたはメディアの種類を取得する MediaDet オブジェクト。

  • ![重要]

    スマート レンダリング エンジンを使用して Windows メディア ファイルの読み取りまたは書き込みを行わないでください。 基本レンダリング エンジン (CLSID_RenderEngine) を常に使用します。

     

オブジェクトにソフトウェア キーを指定するには、そのオブジェクトに対して IObjectWithSite インターフェイスのクエリを実行し、キー プロバイダーへのポインターを使用して IObjectWithSite::SetSite を呼び出します。 たとえば、次のコードは、レンダリング エンジンにソフトウェア キーを提供します。

// Create your key provider, using an application-defined function:
IServiceProvider *pKey;
hr = MyCreateKeyProviderFunction(&pKey);  

// Query the Render Engine for IObjectWithSite.
IObjectWithSite *pOWS;
hr = pRenderEngine->QueryInterface(__uuidof(IObjectWithSite), 
    reinterpret_cast<void**>(&pOWS));
if (SUCCEEDED(hr))
{
    // Give it your key provider.
    hr = pOWS->SetSite(pKey);
    pOWS->Release();
}
pKey->Release();

DES プロジェクトで Windows Media ソース クリップを使用するには、レンダー エンジンでキー プロバイダーへのポインターを使用して IObjectWithSite::SetSite を呼び出します。

Windows メディア ファイルの書き込みの詳細については、「 DES での Windows メディア ファイルの書き込み」を参照してください。

DirectShow Editing Services の使用