Lesen von Multichannel-Audio
[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.]
Der Windows Media Audio 9 Professional-Codec kann mehrkanaliges Audio (mehr als zwei Kanäle) codieren. Wenn Sie eine Datei mit Mehrkanalaudio lesen, müssen Sie die Ausgabe ordnungsgemäß konfigurieren, sonst wird die Audiowiedergabe in einer niedrigeren Qualität und in Stereo übermittelt. Um eine Ausgabe für die mehrkanalige Audioübermittlung festzulegen, müssen Sie zwei Ausgabeeinstellungen festlegen: g_wszEnableDiscreteOutput und g_wszSpeakerConfig.
Wenn sie g_wszEnableDiscreteOutput auf TRUE festlegen, wird der Codec so festgelegt, dass er eine High-Definition-Audioausgabe liefert. High-Definition-Audio wird vom Windows Media Audio 9-Codec mit 24-Bit-Beispielen in Stereo oder mehreren Kanälen codiert. Wenn diese Einstellung FALSE ist, wird nur die 16-Bit-Stereoausgabe übermittelt.
Die Anzahl der Lautsprecher auf dem spielenden Computer wird mit g_wszSpeakerConfig festgelegt. Diese Einstellung ist ein DWORD-Wert , der auf eine der in der folgenden Tabelle aufgeführten DirectSound-Lautsprecherkonstanten festgelegt ist. Um diese Konstantennamen für Ihren Compiler aufzulösen, müssen Sie dsound.h einschließen.
Konstante | Wert | BESCHREIBUNG |
---|---|---|
DSSPEAKER_DIRECTOUT | 0x00000000 | Das Audio wird direkt übergeben, ohne für Lautsprecher konfiguriert zu werden. |
DSSPEAKER_HEADPHONE | 0x00000001 | Der Clientcomputer ist mit Kopfhörern ausgestattet. |
DSSPEAKER_MONO | 0x00000002 | Der Clientcomputer ist mit einem monauralen Lautsprecher ausgestattet. |
DSSPEAKER_QUAD | 0x00000003 | Der Clientcomputer ist mit quadraphonischen Lautsprechern ausgestattet. |
DSSPEAKER_STEREO | 0x00000004 | Der Clientcomputer ist mit Stereolautsprechern ausgestattet. |
DSSPEAKER_SURROUND | 0x00000005 | Der Clientcomputer ist mit Vierkanal-Surround-Sound-Lautsprechern ausgestattet. |
DSSPEAKER_5POINT1 | 0x00000006 | Der Clientcomputer ist mit fünf Lautsprechern und einem Subwoofer ausgestattet. |
DSSPEAKER_7POINT1 | 0x00000007 | Der Clientcomputer ist mit sieben Lautsprechern und einem Subwoofer ausgestattet. |
Verwenden Sie zum Festlegen dieser Einstellungen IWMReaderAdvanced2::SetOutputSetting.
Damit die Kanäle diskret ausgegeben werden können, ohne dass sie in Stereo eingeklappt werden, müssen Sie den richtigen Medientyp für die Ausgabe festlegen, indem Sie die folgenden Schritte ausführen:
- Rufen Sie IWMReader::GetOutputFormatCount auf, um die Anzahl der unterstützten Formate für die entsprechende Audioausgabe abzurufen. Ausgabeformatindizes sind nullbasiert.
- Rufen Sie für jedes unterstützte Format IWMReader::GetOutputFormat auf, um die IWMOutputMediaProps-Schnittstelle für das Ausgabemedieneigenschaftenobjekt abzurufen.
- Rufen Sie IWMMediaProps::GetMediaType auf, um den Medientyp abzurufen.
- Wenn der abgerufene Medientyp der gewünschte Mehrkanaltyp ist, legen Sie ihn fest, indem Sie IWMReader::SetOutputProps aufrufen.
Nachdem Sie die diskrete Ausgabe und die Lautsprecherkonfiguration festgelegt haben, sollten die vom Reader aufgezählten Ausgabeformate Mehrkanalformate enthalten, die die WAVEFORMATEXTENSIBLE-Struktur verwenden. Wenn Sie die Ausgabeformate vor dem Festlegen der Eigenschaften auflisten, werden nur Formate mit 1 oder 2 Kanälen und maximal 16 Bits pro Kanal eingeschlossen. Wie bei anderen Audioformaten sollten Sie nur die vom Reader aufgezählten Formate verwenden. Konfigurieren Sie nicht Ihre eigenen.
Hinweis
Sie können nur mehrkanaliges Audio ausgeben, wenn Ihre Anwendung unter Microsoft Windows XP oder einer höheren Version von Microsoft Windows ausgeführt wird.
Zugehörige Themen