Condividi tramite


Struttura WAVEFORMATEX (mmeapi.h)

La struttura WAVEFORMATEX definisce il formato dei dati audio della forma d’onda In questa struttura sono incluse solo le informazioni di formato comuni a tutti i formati di dati audio waveform. Per i formati che richiedono informazioni aggiuntive, questa struttura viene inclusa come primo membro in un'altra struttura, insieme alle informazioni aggiuntive.

I formati che supportano più di due canali o dimensioni campione di più di 16 bit possono essere descritti in una struttura WAVEFORMATEXTENSIBLE , che include la struttura WAVEFORMAT .

Sintassi

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

Members

wFormatTag

Tipo di formato audio waveform. I tag di formato vengono registrati con Microsoft Corporation per molti algoritmi di compressione. Un elenco completo dei tag di formato è disponibile nel file di intestazione Mmreg.h. Per i dati PCM uno o due canali, questo valore deve essere WAVE_FORMAT_PCM. Quando questa struttura è inclusa in una struttura WAVEFORMATEXTENSIBLE , questo valore deve essere WAVE_FORMAT_EXTENSIBLE.

nChannels

Numero di canali nei dati audio waveform. I dati Monaurali usano un canale e i dati stereo usano due canali.

nSamplesPerSec

Frequenza di campionamento, in campioni al secondo (hz). Se wFormatTag è WAVE_FORMAT_PCM, i valori comuni per nSamplesPerSec sono 8,0 kHz, 11,025 kHz, 22,05 kHz e 44,1 kHz. Per i formati non PCM, questo membro deve essere calcolato in base alla specifica del produttore del tag di formato.

nAvgBytesPerSec

Velocità media di trasferimento dei dati richiesta, in byte al secondo, per il tag di formato. Se wFormatTag è WAVE_FORMAT_PCM, nAvgBytesPerSec deve essere uguale al prodotto di nSamplesPerSec e nBlockAlign. Per i formati non PCM, questo membro deve essere calcolato in base alla specifica del produttore del tag di formato.

nBlockAlign

Allineamento dei blocchi, in byte. L'allineamento del blocco è l'unità atomica minima di dati per il tipo di formato wFormatTag . Se wFormatTag è WAVE_FORMAT_PCM o WAVE_FORMAT_EXTENSIBLE, nBlockAlign deve essere uguale al prodotto di nChannels e wBitsPerSample diviso per 8 (bit per byte). Per i formati non PCM, questo membro deve essere calcolato in base alla specifica del produttore del tag di formato.

Il software deve elaborare un multiplo di byte nBlockAlign di dati alla volta. I dati scritti e letti da un dispositivo devono sempre iniziare all'inizio di un blocco. Ad esempio, è illegale avviare la riproduzione di dati PCM al centro di un campione (ovvero su un limite non allineato a blocchi).

wBitsPerSample

Bit per esempio per il tipo di formato wFormatTag . Se wFormatTag è WAVE_FORMAT_PCM, wBitsPerSample deve essere uguale a 8 o 16. Per i formati non PCM, questo membro deve essere impostato in base alla specifica del produttore del tag di formato. Se wFormatTag è WAVE_FORMAT_EXTENSIBLE, questo valore può essere qualsiasi multiplo intero di 8 e rappresenta le dimensioni del contenitore, non necessariamente le dimensioni del campione; Ad esempio, una dimensione del campione a 20 bit si trova in un contenitore a 24 bit. Alcuni schemi di compressione non possono definire un valore per wBitsPerSample, quindi questo membro può essere 0.

cbSize

Dimensioni, in byte, di informazioni di formato aggiuntive aggiunte alla fine della struttura WAVEFORMATEX . Queste informazioni possono essere usate dai formati non PCM per archiviare attributi aggiuntivi per wFormatTag. Se non sono richieste informazioni aggiuntive da wFormatTag, questo membro deve essere impostato su 0. Per i formati WAVE_FORMAT_PCM (e solo WAVE_FORMAT_PCM formati), questo membro viene ignorato. Quando questa struttura è inclusa in una struttura WAVEFORMATEXTENSIBLE , questo valore deve essere almeno 22.

Commenti

Un esempio di formato che usa informazioni aggiuntive è il formato Microsoft Adaptive Delta Pulse Code Modulation (MS-ADPCM). WFormatTag per MS-ADPCM è WAVE_FORMAT_ADPCM. Il membro cbSize verrà in genere impostato su 32. Le informazioni aggiuntive archiviate per WAVE_FORMAT_ADPCM sono coppie di coefficienti necessarie per la codifica e la decodifica dei dati audio della forma d'onda.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione mmeapi.h (include Mmreg.h)

Vedi anche

Waveform Audio

Strutture waveform