寻wav文件的格式(109分!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!) 1.运用多媒体WAV文件格式二三例http://tech.sina.com.cn/s/923.html2.http://www.csdn.net/dev/Format/ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 2、采样点和采样帧一个采样点就是一个采样数据,按采样位数的不同,可能占有1、2、4个字节。要注意采样数据的正负,采样位为16时,一个采样点就是一个短整型数,占两个字节,取值范围是-32768-32767;采样位是8或更少时,一个采样点是一个无符号字符型数据,取值范围是0-255。如果声音是多通道的,每个通道的采样点是交错排列的。以立体声(两通道)为例,先存储左声道的第一个采样点,然后是右声道的第一个采样点,然后是左声道的第二个采样点,右声道的第二个采样点……每个通道相同位置的采样点合称为一个采样帧,如立体声左声道的第一个采样点和右声道的第一个采样点构成一个采样帧,同样它们的第二个采样点组成另一个采样帧。如果是单声道,一个采样点就是一个采样帧。3、格式数据块(format chunk)typedef struct{ char szChunkID[4]; // 前3个字符总是“fmt”标志该块是格式数据块 long nChunkSize; // 存放格式数据块剩余的字节数。 // 等于:sizeof(FORMATCHUNK) - sizeof(szChunkID) - sizeof(nChunkSize); short wFormatTag; // 采样数据是否使用了压缩格式: // 1: 非压缩(PCM); // 非1时表示采用了压缩格式(这里不讨论) unsigned short wChannels; // 声音的通道数;1:单声道;2:立体声 unsigned long dwSamplesPerSec;// 采样率:11025、22050、44100等等 unsigned long dwAvgBytesPerSec;// 采样数据每秒的数据量 = wBlockAlign * dwSamplesPerSec; unsigned short wBlockAlign; // 一个采样帧占用的字节数 unsigned short wBitsPerSample; // 声音的采样位数}FORMATCHUNK; 对不起,丢了第一部分WAV文件格式请注意:这里讲述的只是一种PCM格式(非压缩方式)的WAV文件1、文件格式:一个WAV文件由若干个不同类型的数据块组成:这些数据块包含声音的各种信息;如采样率、波形数据块是实际的采样数据,这两个数据块是必须的。其他数据块是可选的。在排列顺序上,要求格式数据块必须位于波形数据块之前,但可以不相邻。具体结构:(省略号代表可选数据块)"RIFF" 标志,4个字节;一个长整型数、文件剩余的字节数 等于文件长度 - 8,4个字节;"WAVE" 标志,4个字节;格式数据块……波形数据块…… 4、波形数据块 typedef struct { char szChunkID[4]; // 数据块标志,总是为"data" long nChunkSize; // 采样数据的大小,不包括szChunkID,nChunkSize占用的8个字节 // 也不包括可能存在的末尾的用于补齐的空白字节 unsigned char szWaveFormatData[1]; //采样数据,按照采样帧放置。帧数等于nChunkSize // 除以格式数据块的wBlockAlign. }DATACHUNK; 不好意思,昨天忘记把最后一部分发出去了.不过最后一部分是讲述并不重要的其他数据块的.我给[email protected]发了电子邮件.不知道你是否已经收到. 类似PS的文字输入编辑如何做 List Control 某一列排序 在子线程里调用主线程里定义的一个变量 ,这个变量在主线程中也有使用,这种情况需不需要同步? vc 响应键盘输入消息出错 Picture control 在不打开对方网页的情况下怎样下载网页图片到本机? 获取网页的问题 看看这段代码有什么问题? 怎么样使得在CMyView中实时采集来的数据在CMyDlg的静态文本框中显示并实时刷新 自认为重要的概念问题 listctrl问题请教 _variant_t变量不能为空吗?
一个采样点就是一个采样数据,按采样位数的不同,可能占有1、2、4个字节。要注意
采样数据的正负,采样位为16时,一个采样点就是一个短整型数,占两个字节,取值范围
是-32768-32767;采样位是8或更少时,一个采样点是一个无符号字符型数据,取值范围
是0-255。
如果声音是多通道的,每个通道的采样点是交错排列的。以立体声(两通道)为例,先存储
左声道的第一个采样点,然后是右声道的第一个采样点,然后是左声道的第二个采样点,右
声道的第二个采样点……
每个通道相同位置的采样点合称为一个采样帧,如立体声左声道的第一个采样点和右声道的
第一个采样点构成一个采样帧,同样它们的第二个采样点组成另一个采样帧。如果是单声道,
一个采样点就是一个采样帧。
3、格式数据块(format chunk)
typedef struct
{
char szChunkID[4]; // 前3个字符总是“fmt”标志该块是格式数据块
long nChunkSize; // 存放格式数据块剩余的字节数。
// 等于:sizeof(FORMATCHUNK) - sizeof(szChunkID) - sizeof(nChunkSize);
short wFormatTag; // 采样数据是否使用了压缩格式:
// 1: 非压缩(PCM);
// 非1时表示采用了压缩格式(这里不讨论)
unsigned short wChannels; // 声音的通道数;1:单声道;2:立体声
unsigned long dwSamplesPerSec;// 采样率:11025、22050、44100等等
unsigned long dwAvgBytesPerSec;// 采样数据每秒的数据量 = wBlockAlign * dwSamplesPerSec;
unsigned short wBlockAlign; // 一个采样帧占用的字节数
unsigned short wBitsPerSample; // 声音的采样位数
}FORMATCHUNK;
WAV文件格式
请注意:这里讲述的只是一种PCM格式(非压缩方式)的WAV文件
1、文件格式:
一个WAV文件由若干个不同类型的数据块组成:这些数据块包含声音的各种信息;
如采样率、波形数据块是实际的采样数据,这两个数据块是必须的。其他数据块是可选的。
在排列顺序上,要求格式数据块必须位于波形数据块之前,但可以不相邻。具体结构:(省略号代表可选数据块)
"RIFF" 标志,4个字节;
一个长整型数、文件剩余的字节数 等于文件长度 - 8,4个字节;
"WAVE" 标志,4个字节;
格式数据块
……
波形数据块
……
typedef struct
{
char szChunkID[4]; // 数据块标志,总是为"data"
long nChunkSize; // 采样数据的大小,不包括szChunkID,nChunkSize占用的8个字节
// 也不包括可能存在的末尾的用于补齐的空白字节
unsigned char szWaveFormatData[1]; //采样数据,按照采样帧放置。帧数等于nChunkSize
// 除以格式数据块的wBlockAlign.
}DATACHUNK;