Freigeben über


Verwenden von Windows Media mit DirectShow Editing Services

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

[Diese API wird nicht unterstützt und kann in Zukunft geändert oder nicht mehr verfügbar sein.]

In diesem Abschnitt wird beschrieben, wie Sie Windows Media-basierte Inhalte in einer DirectShow Editing Services (DES)-Anwendung verwenden. Es gibt zwei Standard Szenarien:

  • Quellclips. Ein DES-Projekt kann Audio- und Videoclips aus Windows Media-Dateien enthalten.
  • Zielformat. Windows Media ist ein ideales Format für die endgültige Ausgabe eines Videobearbeitungsprojekts.

Um mit Windows Media-Dateien arbeiten zu können, muss die Anwendung ein Softwarezertifikat bereitstellen, das auch als Schlüssel bezeichnet wird. Dazu wird ein Schlüsselanbieterobjekt implementiert. Der Schlüsselanbieter ist ein COM-Objekt, das die IServiceProvider-Schnittstelle verfügbar macht. Informationen zum Implementieren des Schlüsselanbieters finden Sie unter Entsperren des Windows Media Format SDK.

Um DES mit Windows Media-Dateien verwenden zu können, benötigen die folgenden DES-Objekte den Softwareschlüssel:

  • Die Render-Engine für die Vorschau oder das Schreiben von Dateien.

  • Das MediaDet-Objekt, um Videoframes oder Medientypen aus ASF-Dateien abzurufen.

  • ![Wichtig]

    Verwenden Sie die Smart Render Engine nicht zum Lesen oder Schreiben von Windows Media-Dateien. Verwenden Sie immer die Basic Render Engine (CLSID_RenderEngine).

     

Um einem Objekt den Softwareschlüssel zu erteilen, fragen Sie dieses Objekt für die IObjectWithSite-Schnittstelle ab, und rufen Sie IObjectWithSite::SetSite mit einem Zeiger auf Ihren Schlüsselanbieter auf. Der folgende Code stellt beispielsweise den Softwareschlüssel für die Render-Engine bereit:

// 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();

Um Windows Media-Quellclips in einem DES-Projekt zu verwenden, rufen Sie einfach IObjectWithSite::SetSite auf der Render-Engine mit einem Zeiger auf Ihren Schlüsselanbieter auf.

Informationen zum Schreiben von Windows Media-Dateien finden Sie unter Schreiben einer Windows Media-Datei in DES.

Verwenden von DirectShow-Bearbeitungsdiensten