Freigeben über


So verwenden Sie die manuelle Streamauswahl

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Sie wurde durch den Quellleser und den Senkenschreiber ersetzt. Quellleser und Senkenschreiber wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit den Quellleser und senkenden Writer anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Wenn Sie nicht komprimierte Beispiele mit dem Reader-Objekt übermitteln, können Sie diese nur nach Ausgabenummer übermitteln. Im Fall von sich gegenseitig ausschließenden Streams bedeutet dies, dass Sie nur Stichproben von einem Stream im gegenseitigen Ausschluss gleichzeitig empfangen können. Der Prozess der Auswahl des sich gegenseitig ausschließenden Streams, der übermittelt werden soll, wird als Streamauswahl bezeichnet.

Für den gegenseitigen Ausschluss von Bitraten trifft der Leser die Streamauswahl automatisch basierend auf den Bedingungen auf dem Hostcomputer bei der Wiedergabe. Bei anderen Arten des gegenseitigen Ausschlusses liefert der Leser Beispiele aus dem Standardstream, es sei denn, Sie wählen einen anderen Stream selbst manuell aus. Es kann auch Instanzen geben, in der Sie einen Stream manuell aus einem gegenseitigen Ausschluss von Bitraten auswählen möchten.

Die manuelle Streamauswahl ist für die gesamte Datei aktiviert oder deaktiviert. Wenn eine Datei gegenseitige Bitratenausschlüsse und einen anderen gegenseitigen Ausschlusstyp enthält, müssen Sie die auf Bitraten basierenden Datenströme manuell auswählen.

Um einen sich gegenseitig ausschließenden Stream manuell auszuwählen, müssen Sie die folgenden Schritte ausführen.

  1. Rufen Sie einen Zeiger auf die IWMReaderAdvanced-Schnittstelle des Leserobjekts ab, indem Sie IWMReader::QueryInterface aufrufen.
  2. Aktivieren Sie die manuelle Streamauswahl, indem Sie IWMReaderAdvanced::SetManualStreamSelection aufrufen.
  3. Um herauszufinden, ob ein bestimmter Stream ausgewählt ist, rufen Sie IWMReaderAdvanced::GetStreamSelected auf. Sie müssen einen Zeiger auf eine Variable des WMT_STREAM_SELECTION Enumerationstyps übergeben. Wenn der Aufruf zurückgibt, beschreibt der Wert in der Variablen den aktuellen Auswahltyp des Datenstroms.
  4. Um einen Stream auszuwählen, rufen Sie IWMReaderAdvanced::SetStreamsSelected auf. Mit dieser Methode können Sie mehrere Datenströme gleichzeitig für den synchronisierten Streamwechsel angeben.

Lesen von Dateien mit dem asynchronen Reader