DirectSound DirectSound C/C++ ·¹ÆÛ·±½º DirectSound ÀÇ ±¸Á¶Ã¼ WAVEFORMATEX [¸ñÂ÷¿¶÷] [ÁÖ¼Òº¹»ç] [½½·Ôºñ¿ì±â]
|
| Microsoft DirectX 9.0 |
WAVEFORMATEX ±¸Á¶Ã¼´Â, ¿þÀÌºê Æû ¿Àµð¿À µ¥ÀÌÅÍÀÇ Æ÷¸ËÀ» Á¤ÀÇÇÑ´Ù. ÀÌ ±¸Á¶Ã¼¿¡´Â, ¸ðµç ¿þÀÌºê Æû ¿Àµð¿À µ¥ÀÌÅÍ Çü½Ä¿¡ °øÅëÀÇ Æ÷¸Ë Á¤º¸¸¸ÀÌ Æ÷ÇԵȴÙ. Ãß°¡ Á¤º¸°¡ ÇÊ¿äÇÑ Æ÷¸Ë¿¡¼´Â, ÀÌ ±¸Á¶Ã¼°¡ ÃÖÃÊÀÇ ¸â¹ö·Î¼ ´Ù¸¥ Á¤º¸¿Í ÇÔ²² ´Ù¸¥ ±¸Á¶Ã¼¿¡ Æ÷ÇԵȴÙ.
ÀÌ ±¸Á¶Ã¼´Â Platform SDK ÀÇ ÀϺÎÀ̸ç, Dsound.h ¿¡¼´Â ¼±¾ðµÇÁö ¾Ê´Ù. ÆíÀÇ»ó ¿©±â¼ ¼³¸íÇϰí ÀÖ´Ù.
±¸¹®
typedef struct {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
} WAVEFORMATEX;
¸â¹ö
wFormatTag
¿þÀÌºê Æû ¿Àµð¿À Æ÷¸ËÀÇ Å¸ÀÔ. ¸¹Àº ¾ÐÃà ¾Ë°í¸®ÁòÀÇ Æ÷¸Ë űװ¡, Microsoft ·Î µî·ÏµÇ¾î ÀÖ´Ù. Æ÷¸Ë ű×ÀÇ ¿ÏÀüÇÑ ¸®½ºÆ®´Â, Çì´õ ÆÄÀÏ Mmreg.h ¿¡ ±â¼úµÇ°í ÀÖ´Ù. 1 ä³Î ¶Ç´Â 2 ä³ÎÀÇ
nChannels
¿þÀÌºê Æû ¿Àµð¿À µ¥ÀÌÅÍÀÇ Ã¤³Î¼ö. ´ÜûÀÇ µ¥ÀÌÅÍ´Â 1 °³ÀÇ Ã¤³ÎÀ» »ç¿ëÇØ, ½ºÅ×·¹¿À µ¥ÀÌÅÍ´Â 2 °³ÀÇ Ã¤³ÎÀ» »ç¿ëÇÑ´Ù.
nSamplesPerSec
»ùÇøµ ·¹ÀÌÆ®. 1 ÃÊ ÂëÀÇ »ùÇüö (Hz)·Î ³ªÅ¸³½´Ù. wFormatTag °¡ WAVE_FORMAT_PCM ÀÇ °æ¿ì,nSamplesPerSec ÀÇ ÀϹÝÀûÀÎ °ªÀº 8.0 kHz, 11.025 kHz, 22.05 kHz, 44.1 kHz ÀÌ´Ù. PCM Æ÷¸ËÀÌ ¾Æ´Ñ °æ¿ì´Â, ¸ÞÀÌÄ¿ÀÇ Æ÷¸Ë ű×ÀÇ »ç¾ç¿¡ µû¶ó ÀÌ ¸â¹ö¸¦ °è»êÇÒ Çʿ䰡 ÀÖ´Ù.
nAvgBytesPerSec
Æ÷¸Ë ű׷ΠÇÊ¿äÇÑ Æò±Õ µ¥ÀÌÅÍ Àü¼Û ¼Óµµ. ´ÜÀ§´Â, 1 ÃÊ ÂëÀÇ ¹ÙÀÌÆ®¼ö. wFormatTag °¡ WAVE_FORMAT_PCM ÀÎ °æ¿ì,nAvgBytesPerSec ´Â nSamplesPerSec ¿Í nBlockAlign ÀÇ Àû¿¡ µ¿ÀÏÇØ¾ß ÇÑ´Ù. PCM Æ÷¸ËÀÌ ¾Æ´Ñ °æ¿ì´Â, ¸ÞÀÌÄ¿ÀÇ Æ÷¸Ë ű×ÀÇ »ç¾ç¿¡ µû¶ó ÀÌ ¸â¹ö¸¦ °è»êÇÒ Çʿ䰡 ÀÖ´Ù.
nBlockAlign
ºê·ÏÅ©¾Æ¶óÀÌ¸ÕÆ® (¹ÙÀÌÆ® ´ÜÀ§). ºê·ÏÅ©¾Æ¶óÀÌ¸ÕÆ®´Â,wFormatTag Æ÷¸Ë ŸÀÔÀÇ µ¥ÀÌÅÍÀÇ ÃÖ¼Ò´ÜÀ§ÀÌ´Ù. wFormatTag °¡ WAVE_FORMAT_PCM ¶Ç´Â WAVE_FORMAT_EXTENSIBLE ÀÎ °æ¿ì,nBlockAlign ´Â nChannels ¿Í wBitsPerSample ÀÇ ÀûÀ» 8 À¸·Î ³ª´« °ª (¹ÙÀÌÆ® ±ÙóÀÇ ºñÆ®¼ö)¿¡ µ¿ÀÏÇØ¾ß ÇÑ´Ù. PCM Æ÷¸ËÀÌ ¾Æ´Ñ °æ¿ì´Â, ¸ÞÀÌÄ¿ÀÇ Æ÷¸Ë ű×ÀÇ »ç¾ç¿¡ µû¶ó ÀÌ ¸â¹ö¸¦ °è»êÇÒ Çʿ䰡 ÀÖ´Ù.
¼ÒÇÁÆ®¿þ¾î´Â, µ¥ÀÌÅÍÀÇ º¹¼öÀÇ nBlockAlign ¹ÙÀÌÆ®¸¦, ÇÑ ¹ø¿¡ ó¸®ÇØ¾ß ÇÑ´Ù. ÀåÄ¡¿¡ ±âÀÔÇÏ´Â µ¥ÀÌÅÍ, ÀåÄ¡·ÎºÎÅÍ ÀоîµéÀÌ´Â µ¥ÀÌÅÍ´Â, Ç×»ó ºí·ÏÀÇ ¼±µÎ·ÎºÎÅÍ ½ÃÀÛ ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, PCM µ¥ÀÌÅÍÀÇ Àç»ýÀ», »ùÇÃÀÇ Áß°£ (Áï, ºñºê·ÏÅ©¾Æ¶óÀÌ¸ÕÆ®ÀÇ °æ°è)À¸·Î ½ÃÀÛ ÇÏ´Â °ÍÀº ºÎÁ¤ÇÏ´Ù.
wBitsPerSample
wFormatTag Æ÷¸Ë ŸÀÔÀÇ, »ùÇøµ ±ÙóÀÇ ºñÆ®¼ö. wFormatTag °¡ WAVE_FORMAT_PCM ÀÎ °æ¿ì,wBitsPerSample ´Â 8 ¶Ç´Â 16 ÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù. PCM Æ÷¸ËÀÌ ¾Æ´Ñ °æ¿ì´Â, ¸ÞÀÌÄ¿ÀÇ Æ÷¸Ë ű×ÀÇ »ç¾ç¿¡ µû¶ó ÀÌ ¸â¹ö¸¦ ¼³Á¤ÇÒ Çʿ䰡 ÀÖ´Ù. wFormatTag °¡ WAVE_FORMAT_EXTENSIBLE ÀÎ °æ¿ì´Â, ÀÓÀÇÀÇ 8 ÀÇ ¹è¼ö¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¾ÐÃà ½ºÅ´ÀÌ wBitsPerSample ÀÇ °ªÀ» Á¤ÀÇÇÒ ¼ö ¾ø´Â °Íµµ ÀÖÀ¸¹Ç·Î, ÀÌ ¸â¹ö´Â 0 ÀÌ µÈ´Ù.
cbSize
WAVEFORMATEX ±¸Á¶Ã¼ÀÇ µÚ·Î Ãß°¡µÇ´Â Æ÷¸Ë Á¤º¸ÀÇ »çÀÌÁî (¹ÙÀÌÆ® ´ÜÀ§). ÀÌ Á¤º¸¸¦ ºñ PCM Æ÷¸ËÀ¸·Î »ç¿ëÇØ,wFormatTag ÀÇ Ãß°¡ ¼Ó¼ºÀ» ÀúÀå ÇÒ ¼ö°¡ ÀÖ´Ù. wFormatTag ·Î ÇÊ¿äÇÑ Ãß°¡ Á¤º¸°¡ ¾ø´Â °æ¿ì, ÀÌ ¸â¹ö´Â 0 À¸·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù. WAVE_FORMAT_PCM Æ÷¸Ë¿¡¼´Â (±×¸®°í WAVE_FORMAT_PCM Æ÷¸ËÀÇ °æ¿ì¿¡ ÇÑÁ¤ÇØ), ÀÌ ¸â¹ö´Â ¹«½ÃµÈ´Ù.
¿ä°Ç
Çì´õ:mmreg.h ·Î ¼±¾ð.
ÂüÁ¶