wave header
来源:互联网 发布:linux用户加组 编辑:程序博客网 时间:2024/06/06 00:27
/*wave 文件一共有四个Chunk组成,其中第三个Chunk可以省略,每个Chunk有标示(ID),大小(size,就是本Chunk的内容部分长度),内容三部分组成*//*------------------------------------------------| RIFF WAVE Chunk || ID = 'RIFF' || RiffType = 'WAVE' |------------------------------------------------| Format Chunk || ID = 'fmt ' |------------------------------------------------| Fact Chunk(optional) || ID = 'fact' |------------------------------------------------| Data Chunk || ID = 'data' |------------------------------------------------*/typedef struct waveheader{ /****RIFF WAVE CHUNK*/ unsigned char a[4];//四个字节存放'R','I','F','F' long int b; //整个文件的长度-8;每个Chunk的size字段,都是表示除了本Chunk的ID和SIZE字段外的长度; unsigned char c[4];//四个字节存放'W','A','V','E' /****Format CHUNK*/ unsigned char d[4];//四个字节存放'f','m','t','' long int e; //16后没有附加消息,18后有附加消息;一般为16,其他格式转来的话为18 short int f; //编码方式,一般为0x0001; short int g; //声道数目,1单声道,2双声道; long int h; //采样频率; long int i; //每秒所需字节数; short int j; //每个采样需要多少字节,若声道是双,则两个一起考虑; short int k; //即量化位数 /***Data Chunk**/ unsigned char p[4];//四个字节存放'd','a','t','a' long int q; //语音数据部分长度,不包括文件头的任何部分} waveheader;//定义WAVE文件的文件头结构体waveheader *get_waveheader(int bits, int rates, int channels, unsigned long size){ waveheader *header = malloc(sizeof(*header)); header->a[0] = 'R'; header->a[1] = 'I'; header->a[2] = 'F'; header->a[3] = 'F'; header->b = size - 8; header->c[0] = 'W'; header->c[1] = 'A'; header->c[2] = 'V'; header->c[3] = 'E'; header->d[0] = 'f'; header->d[1] = 'm'; header->d[2] = 't'; header->d[3] = ' '; header->e = 16; header->f = 1; header->g = channels; header->h = rates; header->i = size / (rates * channels * bits / 8); header->j = channels * bits / 8; header->k = bits; header->p[0] = 'd'; header->p[1] = 'a'; header->p[2] = 't'; header->p[3] = 'a'; header->q = size; return header;}
阅读全文
0 0
- wave header
- wave
- wave
- wave
- opensmile读取wav出错:bogus wave/riff header or file in wrong format解决办法
- header
- header
- header
- header
- Header();
- header
- header
- header
- Ocean wave
- WAVE文件格式
- WAVE文件格式
- Wave文件格式
- wave文件格式
- Day30-Redis&Jedis
- SM4密码算法(附源码)
- 抽象方法声明位置
- C语言简单知识点总结
- 将py文件打包成exe文件
- wave header
- Eclipse FindBugs插件安装
- ConcurrentHashMap总结
- 【C++】【C】浅谈C 与 C++ 的区别【标准又更新了。.】
- CSS可继承的样式
- 微信小程序周报(第七期)
- 网络流建模总结
- POJ 2250 Compromise(最长公共子序列 列出子序列)
- 新路程------hi3516a uboot测试网络是否正常