Freigeben über


Zuweisen von Ausgabeformaten

Einige Codecs können digitale Mediendaten in mehrere nicht komprimierte Formate dekomprimieren. Sie können alle unterstützten Formate für eine bestimmte Ausgabe mithilfe des asynchronen Lesegeräts oder des synchronen Readers finden.

Führen Sie die folgenden Schritte aus, um alle verfügbaren Formate für eine Ausgabe zu untersuchen. Diese Prozeduren sind sowohl für den asynchronen Reader als auch für den synchronen Reader identisch. Bei unterschiedlichen Schnittstellennamen werden die synchronen Lesemethoden in Klammern nach den Methoden des asynchronen Lesers aufgeführt.

  1. Erstellen Sie ein Leserobjekt, und laden Sie eine Datei zum Lesen. Weitere Informationen finden Sie unter So erstellen Sie einen Reader und öffnen eine Datei (oder So erstellen Sie einen synchronen Reader und Öffnen einer Datei).

  2. Bestimmen Sie die Ausgabe, für die Sie die verfügbaren Formate finden möchten. Wenn Sie noch nicht wissen, welche Ausgabe Sie verwenden möchten, können Sie die Ausgaben in der Datei mithilfe der Prozeduren unter So identifizieren Sie Ausgabenummern identifizieren identifizieren.

  3. Rufen Sie die Gesamtzahl der verfügbaren Formate für die gewünschte Ausgabe ab, indem Sie IWMReader::GetOutputFormatCount (oder IWMSyncReader::GetOutputFormatCount) aufrufen.

  4. Durchlaufen Sie die verfügbaren Formate nacheinander, und führen Sie die folgenden Schritte für die einzelnen Formate aus:

    • Rufen Sie die IWMOutputMediaProps-Schnittstelle für das aktuelle Ausgabeformat ab, indem Sie IWMReader::GetOutputFormat (oder IWMSyncReader::GetOutputFormat) aufrufen.

    • Rufen Sie die WM_MEDIA_TYPE-Struktur für das Ausgabeformat ab, indem Sie zwei Aufrufe von IWMMediaProps::GetMediaType ausführen. Führen Sie den ersten Aufruf aus, um die Größe der Struktur abzurufen, weisen Sie dann Arbeitsspeicher zu, und übergeben Sie beim zweiten Aufruf einen Zeiger an den zugewiesenen Arbeitsspeicher.

    • Suchen Sie den Medienuntertyp des Ausgabeformats in WM_MEDIA_TYPE.subtype.

    • Wenn für Video der aktuelle Untertyp das Format ist, das Sie für die Ausgabe verwenden möchten, brechen Sie die Schleife aus. Wechseln Sie andernfalls zur nächsten Iteration.

      Für Audio müssen Sie die Werte in der WAVEFORMATEX-Struktur anhand Ihrer Anforderungen überprüfen. WM_MEDIA_TYPE.pbFormat verweist für Audioausgaben auf die WAVEFORMATEX-Struktur .

  5. Wenn Sie die gewünschte Ausgabe gefunden haben, legen Sie sie für die Verwendung mit dem Reader fest, indem Sie IWMReader::SetOutputProps (oder IWMSyncReader::SetOutputProps) aufrufen. Sie müssen einen Zeiger an die IWMOutputMediaProps-Schnittstelle übergeben, die im ersten Schritt der Schleife abgerufen wurde.

IWMMediaProps-Schnittstelle

IWMOutputMediaProps-Schnittstelle

IWMReader-Schnittstelle

IWMSyncReader-Schnittstelle

Arbeiten mit Ausgaben