다음을 통해 공유


WAVEFORMATEX 구조체(mmeapi.h)

WAVEFORMATEX 구조체는 파형 오디오 데이터의 형식을 정의합니다. 모든 파형 오디오 데이터 형식에 공통적인 형식 정보만 이 구조에 포함됩니다. 추가 정보가 필요한 형식의 경우 이 구조체는 추가 정보와 함께 다른 구조체의 첫 번째 멤버로 포함됩니다.

WAVEFORMAT 구조를 포함하는 WAVEFORMATEXTENSIBLE 구조체에서 두 개 이상의 채널 또는 16비트 이상의 샘플 크기를 지원하는 형식을 설명할 수 있습니다.

구문

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

멤버

wFormatTag

파형 오디오 형식입니다. 서식 태그는 많은 압축 알고리즘에 대해 Microsoft Corporation에 등록됩니다. 형식 태그의 전체 목록은 Mmreg.h 헤더 파일에서 찾을 수 있습니다. 1-또는 2 채널 PCM 데이터의 경우 이 값은 WAVE_FORMAT_PCM 합니다. 이 구조체가 WAVEFORMATEXTENSIBLE 구조체에 포함된 경우 이 값은 WAVE_FORMAT_EXTENSIBLE 합니다.

nChannels

파형 오디오 데이터의 채널 수입니다. Monaural 데이터는 하나의 채널을 사용하고 스테레오 데이터는 두 개의 채널을 사용합니다.

nSamplesPerSec

샘플 속도(초당 샘플 수)(hertz)입니다. wFormatTag가 WAVE_FORMAT_PCM 경우 nSamplesPerSec의 일반 값은 8.0kHz, 11.025kHz, 22.05kHz 및 44.1kHz입니다. PCM이 아닌 형식의 경우 이 멤버는 제조업체의 형식 태그 사양에 따라 계산되어야 합니다.

nAvgBytesPerSec

형식 태그에 필요한 평균 데이터 전송 속도(초당 바이트)입니다. wFormatTag가 WAVE_FORMAT_PCM 경우 nAvgBytesPerSecnSamplesPerSecnBlockAlign의 제품과 같아야 합니다. PCM이 아닌 형식의 경우 이 멤버는 제조업체의 형식 태그 사양에 따라 계산되어야 합니다.

nBlockAlign

블록 맞춤(바이트)입니다. 블록 맞춤은 wFormatTag 형식 형식에 대한 데이터의 최소 원자 단위입니다. wFormatTag가 WAVE_FORMAT_PCM 또는 WAVE_FORMAT_EXTENSIBLE 경우 nBlockAlignnChannelswBitsPerSample의 곱과 8(바이트당 비트)으로 나누어야 합니다. PCM이 아닌 형식의 경우 이 멤버는 제조업체의 형식 태그 사양에 따라 계산되어야 합니다.

소프트웨어는 한 번에 여러 nBlockAlign 바이트의 데이터를 처리해야 합니다. 디바이스에서 쓰고 읽은 데이터는 항상 블록의 시작 부분에서 시작해야 합니다. 예를 들어 샘플 중간에 PCM 데이터의 재생을 시작하는 것은 불법입니다(즉, 블록 맞춤이 아닌 경계에서).

wBitsPerSample

wFormatTag 형식 형식에 대한 샘플당 비트입니다. wFormatTag가 WAVE_FORMAT_PCM 경우 wBitsPerSample은 8 또는 16과 같아야 합니다. PCM이 아닌 형식의 경우 이 멤버는 제조업체의 형식 태그 사양에 따라 설정해야 합니다. wFormatTag가 WAVE_FORMAT_EXTENSIBLE 경우 이 값은 8의 정수 배수일 수 있으며 반드시 샘플 크기가 아니라 컨테이너 크기를 나타냅니다. 예를 들어 20비트 샘플 크기는 24비트 컨테이너에 있습니다. 일부 압축 체계는 wBitsPerSample에 대한 값을 정의할 수 없으므로 이 멤버는 0일 수 있습니다.

cbSize

WAVEFORMATEX 구조체의 끝에 추가된 추가 형식 정보의 크기(바이트)입니다. 이 정보는 비 PCM 형식에서 wFormatTag에 대한 추가 특성을 저장하는 데 사용할 수 있습니다. wFormatTag에 추가 정보가 필요하지 않은 경우 이 멤버를 0으로 설정해야 합니다. WAVE_FORMAT_PCM 형식(및 WAVE_FORMAT_PCM 형식만)의 경우 이 멤버는 무시됩니다. 이 구조체가 WAVEFORMATEXTENSIBLE 구조체에 포함된 경우 이 값은 22 이상이어야 합니다.

설명

추가 정보를 사용하는 형식의 예로는 MS-ADPCM(Microsoft Adaptive Delta Pulse Code Modulation) 형식이 있습니다. MS-ADPCM에 대한 wFormatTag 가 WAVE_FORMAT_ADPCM. cbSize 멤버는 일반적으로 32로 설정됩니다. WAVE_FORMAT_ADPCM 위해 저장된 추가 정보는 파형 오디오 데이터를 인코딩하고 디코딩하는 데 필요한 계수 쌍입니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 mmeapi.h(Mmreg.h 포함)

참고 항목

파형 오디오

파형 구조체