WAVEFORMATEX-Struktur (mmeapi.h)

Die WAVEFORMATEX-Struktur definiert das Format von Waveform-Audiodaten. In dieser Struktur sind nur Formatinformationen enthalten, die allen Waveform-Audio-Datenformaten gemeinsam sind. Für Formate, die zusätzliche Informationen erfordern, ist diese Struktur zusammen mit den zusätzlichen Informationen als erstes Element in einer anderen Struktur enthalten.

Formate, die mehr als zwei Kanäle oder Beispielgrößen von mehr als 16 Bit unterstützen, können in einer WAVEFORMATEXTENSIBLE-Struktur beschrieben werden, die die WAVEFORMAT-Struktur enthält.

Syntax

typedef struct tWAVEFORMATEX {
  WORD  wFormatTag;
  WORD  nChannels;
  DWORD nSamplesPerSec;
  DWORD nAvgBytesPerSec;
  WORD  nBlockAlign;
  WORD  wBitsPerSample;
  WORD  cbSize;
} WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;

Members

wFormatTag

Waveform-Audioformattyp. Formattags werden bei der Microsoft Corporation für viele Komprimierungsalgorithmen registriert. Eine vollständige Liste der Formattags finden Sie in der Headerdatei Mmreg.h. Für PCM-Daten mit einem oder zwei Kanälen sollte dieser Wert WAVE_FORMAT_PCM werden. Wenn diese Struktur in einer WAVEFORMATEXTENSIBLE-Struktur enthalten ist, muss dieser Wert WAVE_FORMAT_EXTENSIBLE werden.

nChannels

Anzahl der Kanäle in den Waveform-Audiodaten. Monaurale Daten verwenden einen Kanal und Stereodaten zwei Kanäle.

nSamplesPerSec

Abtastrate in Stichproben pro Sekunde (Hertz). Wenn wFormatTag WAVE_FORMAT_PCM ist, sind die gängigen Werte für nSamplesPerSec 8,0 kHz, 11,025 kHz, 22,05 kHz und 44,1 kHz. Bei Nicht-PCM-Formaten muss dieser Member gemäß der Herstellerspezifikation des Formattags berechnet werden.

nAvgBytesPerSec

Erforderliche durchschnittliche Datenübertragungsrate (in Bytes pro Sekunde) für das Formattag. Wenn wFormatTag WAVE_FORMAT_PCM ist, sollte nAvgBytesPerSec gleich dem Produkt von nSamplesPerSec und nBlockAlign sein. Bei Nicht-PCM-Formaten muss dieser Member gemäß der Herstellerspezifikation des Formattags berechnet werden.

nBlockAlign

Blockausrichtung in Bytes. Die Blockausrichtung ist die minimale atomare Dateneinheit für den Formattyp wFormatTag . Wenn wFormatTag WAVE_FORMAT_PCM oder WAVE_FORMAT_EXTENSIBLE ist, muss nBlockAlign gleich dem Produkt von nChannels und wBitsPerSample dividiert durch 8 (Bits pro Byte) sein. Bei Nicht-PCM-Formaten muss dieser Member gemäß der Herstellerspezifikation des Formattags berechnet werden.

Software muss ein Vielfaches von nBlockAlign-Datenbytes gleichzeitig verarbeiten. Daten, die auf ein Gerät geschrieben und von einem Gerät gelesen werden, müssen immer am Anfang eines Blocks beginnen. Beispielsweise ist es unzulässig, die Wiedergabe von PCM-Daten in der Mitte eines Beispiels zu starten (d.a. an einer nicht blockbündigen Grenze).

wBitsPerSample

Bits pro Beispiel für den Formattyp wFormatTag . Wenn wFormatTag WAVE_FORMAT_PCM ist, sollte wBitsPerSample gleich 8 oder 16 sein. Bei Nicht-PCM-Formaten muss dieser Member gemäß der Herstellerspezifikation des Formattags festgelegt werden. Wenn wFormatTag WAVE_FORMAT_EXTENSIBLE ist, kann dieser Wert ein beliebiges Vielfaches von 8 sein und stellt die Containergröße dar, nicht unbedingt die Stichprobengröße. Beispielsweise befindet sich eine 20-Bit-Beispielgröße in einem 24-Bit-Container. Einige Komprimierungsschemas können keinen Wert für wBitsPerSample definieren, sodass dieser Member 0 sein kann.

cbSize

Größe von zusätzlichen Formatinformationen in Bytes, die an das Ende der WAVEFORMATEX-Struktur angefügt werden. Diese Informationen können von Nicht-PCM-Formaten verwendet werden, um zusätzliche Attribute für das wFormatTag zu speichern. Wenn für das wFormatTag keine zusätzlichen Informationen erforderlich sind, muss dieser Member auf 0 festgelegt werden. Bei WAVE_FORMAT_PCM Formaten (und nur WAVE_FORMAT_PCM Formaten) wird dieser Member ignoriert. Wenn diese Struktur in einer WAVEFORMATEXTENSIBLE-Struktur enthalten ist, muss dieser Wert mindestens 22 sein.

Hinweise

Ein Beispiel für ein Format, das zusätzliche Informationen verwendet, ist das Microsoft Adaptive Delta Pulse Code Modulation-Format (MS-ADPCM). Das wFormatTag für MS-ADPCM ist WAVE_FORMAT_ADPCM. Das cbSize-Element wird in der Regel auf 32 festgelegt. Die für WAVE_FORMAT_ADPCM gespeicherten zusätzlichen Informationen sind Koeffizientenpaare, die zum Codieren und Decodieren der Signalform-Audiodaten erforderlich sind.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile mmeapi.h (include Mmreg.h)

Weitere Informationen

Waveform Audio

Wellenformstrukturen