收录日期:2019/05/22 09:29:05 时间:2016/05/27 12:53:20 标签:机器视觉
由程序获得wav文件的16进制数据格式如下:
00000000 h: 52 49 46 46 58 f3 00 00 57 41 56 45 66 6d 74 20 
00000010 h: 10 00 00 00 01 00 01 00 11 2b 00 00 11 2b 00 00 
00000020 h: 01 00 08 00 64 61 74 61 34 f3 00 00 7f 80 80 80 
00000030 h: 80 80 80 80 80 80 81 81 81 81 81 82 82 82 82 82 
00000040 h: 83 82 82 82 82 82 82 82 82 82 82 82 82 82 81 81 
00000050 h: 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 
00000060 h: 81 81 82 82 82 82 82 82 82 83 83 83 83 83 84 84 
00000070 h: 84 84 84 83 84 84 83 83 83 83 83 82 82 82 82 81 
00000080 h: 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81 
地      址:前三行为文件头~
后面接着的是数据~~

请问数据部分的意义分别是什么~?~?
up一下,谁有pcm的解码程序啊?
easy
谁有pcm的解码程序啊?
pcm不需要解码了,直接送给声卡就行了
如果是双声道:数据的顺序是:左右左右...............
-------------------------------------
WAV File Format
The wave file format is broken up into RIFF chunks. Some wave files are non-standard and contain additional chunks and information. This program we are writing does not care for those and we will only honor the traditional chunks. Here is a simple breakdown of the .WAV format.

RIFF
<4 bytes>
WAVE
This is the first thing you generally see in the format and at least this is what I have found. I have tried to use those 4 bytes as a size, but, I've generally just found it better to skip these. So, in the program we write, I simply skip the first 12 bytes. Next, everything is done in RIFFs. A RIFF works like this:

RIFF IDENTIFIER    (4 Bytes)
RIFF SIZE          (4 Bytes)
<RIFF INFORMATION> (RIFF SIZE - 8)
So, you have a 4 byte identifier that tells you what this block is. The next 4 bytes tell you the size of this RIFF. The last chunk is the data which is the size of the RIFF minus the header, so RIFF SIZE - 8. The very first RIFF in a WAVE file will be "fmt ". This is described as this:

"fmt "
DWORD dwRiffSize;
WORD  wFormatTag;         // Format category
WORD  wChannels;          // Number of channels
DWORD dwSamplesPerSec;    // Sampling rate
DWORD dwAvgBytesPerSec;   // For buffer estimation
WORD  wBlockAlign;        // Data block size
WORD  wBitsPerSample;
So, in the program, we simply skip the first 12 bytes and then read this information out of the file. Now, the only other RIFF we care about is "data". This is defined as so:

"data"              4 Bytes
DATA SIZE           4 Bytes
<YOUR Data Audio>   (DATA SIZE - 8)
when we read a wav file, all we have to do is : 
- read the first 12 characters to check if it's a real wav file. 
- read the format chunk in a struct similar to the formatChunk struct. 
- skip the extra parameters in the format chunk, if any. 
- find the data chunk, read the raw data and carry out with the encoding. 
-skip all other chunks.
pcm不需要解码了,直接送给声卡就行了

那是因为声卡里有pcm解码器~
我需要用软件实现pcm解码~
不过很谢谢你的资料~

指针增长问题,在线等待 请教一个GROUP BY 时间的SQL语句 近来状态不好. tomcat5.0.28下的中文问题! 现在有理想的人,一定要出国,一定不要回来 有哪个ggjj知道沈阳天择交通设施公司的情况的么,有重谢 问个关于binary search的问题,急!! 请问 QQ的数据库中的内容该怎么读出来呀? 不显示MediaPlayer的视频窗口 CAsyncSocket在不停发送数据的时候,得不到FD_ONCLOSE ? 如何利用Graphics类画直线? 我的eclipse从中文又变回英文了 急啊!C#如何判断一个对象是否已经被实例化?谢谢 session的问题,session值为什么会混乱? 为什么我这样继承会出错呢??这样继承怎么又要默认构造函数啊。。。。? 提供POI读写EXCLE的源代码! 请教关于在DirectX模式下的中文输入问题 XPATH 求助 response.write换行问题 如何使Edit输入的数字是0.00的格式?如果让整数以浮点数形式显示? 菜鸟问题:怎么看到*.src.rpm里的源程序? datagrid控件里checkbox控件事件 如何使GCC支持标准C的宏替换中的连字符##和续行符\\ 关于fopen的问题.着急中!!!!!! 怎么和女友才能走到那一步!! 请教 有关项目的开发课程 怎么改变一个dlg的大小,代码写在哪里? 问个VB的问题,我是初学着,所以不太懂怎么实现 开发手机游戏时遇到的一个问题 系统菜单