20H~21H 2 整数 数据的调整数(按字节计算)

22H~23H 2 整数 样本数据位数

表  2  WAV文件的数据块

偏移地址 字节数 类型 内容

24H~27H 4 字符 数据标志符(data)

28H~2BH 4 长整型 采样数据总数

2CH--- --- 采样数据

2.1.2 WAV文件常用块的定义

(1)RIFF头格式

struct RIFF_HEADER 

{  

char szRiffID[4];     // 'R','I','F','F' 

DWORD dwRiffSize;  

char szRiffFormat[4]; // 'W','A','V','E' 

};

(2)FMT块头格式

struct FMT_BLOCK 

char   szFmtID[4]; // 'f','m','t',' ' 

DWORD   dwFmtSize; 

WAVE_FORMAT wavFormat; 

};

(3)WAVE格式块

typedef struct WAVE_FORMAT 

{

WORD wFormatTag;       //编码格式

WORD wChannels;        //声道数

DWORD dwSamplesPerSec; //采样频率

DWORD dwAvgBytesPerSec;//每秒的数据量

WORD wBlockAlign;      //块对齐

WORD wBitsPerSample;   //采样位数

};

(4)数据块

struct DATA_BLOCK 

char szDataID[4]; // 'd','a','t','a' 

DWORD dwDataSize; 

};

2.2  语音WAV文件读取操作

2.2.1 WAV文件读取操作所用到的数据结构

(1)波形音频流格式的数据结构

typedef struct tWAVEFORMATEX

{

    WORD        wFormatTag;         /* 格式类型 */

    WORD        nChannels;          /* 声道数目*/

    DWORD       nSamplesPerSec;     /* 采样频率 */

    DWORD       nAvgBytesPerSec;    /* 每秒的数据量*/

    WORD        nBlockAlign;        /* 数据块的对齐标志 */

    WORD        wBitsPerSample;     /* 采样量化位数 */

    WORD        cbSize;             /* 该数据结构的大小 */

} WAVEFORMATEX;

(2)在mmsystem.h中处理RIFF数据块信息的基本数据结构

typedef struct _MMCKINFO

{源:自~吹冰·论`文'网·www.chuibin.com/

FOURCC          ckid;           /* RIFF数据块的4字节ID */

DWORD           cksize;         /* 数据块大小 */

FOURCC          fccType;        /* 数据块的形式类型 */

DWORD           dwDataOffset;   /* 数据块的数据起始位置偏移量 */

上一篇:mybatis+JMF模拟手机系统的常用功能
下一篇:Android基于MANET的周边车辆显示系统的设计

Android手机考勤平台的设计与实现

基于android的环境信息管理系统设计

java+mysql班级评优系统的设计实现

Python+mysql宠物领养平台的设计与实现

ASP.NET飞翔租贷汽车公司信...

基于激光超声检测金属材...

多频激励下典型非线性系统的振动特性研究

提高教育质量,构建大學生...

浅谈高校行政管理人员的...

酵母菌发酵生产天然香料...

STC89C52单片机NRF24L01的无线病房呼叫系统设计

压疮高危人群的标准化中...

从政策角度谈黑龙江對俄...

AES算法GPU协处理下分组加...

浅论职工思想政治工作茬...

基于Joomla平台的计算机学院网站设计与开发

上海居民的社会参与研究