下载站

展开
精品推荐
将PCM数据转换成WAV文件(pcm2wav)

将PCM数据转换成WAV文件(pcm2wav)

音频处理大小:474.12MB语言: / 类别:多媒体类系统: / WinAll, WinXP 提供:
应用介绍

将PCM数据转换成WAV文件其实只是加个文件头。但要做给普通用户用,界面比较费时间。增加了单声道、双声道选择,样本宽度,提供更多采样率,并允许输入采样率。

实现原理:

wav文件通常包含4段:RIFF、格式段、FACT段和数据段。PCM数据就放在数据段。只要格式段设置的格式与数据段的数据一致,播放程序就可以正确解析。下面这个数组的数据其实就是一个最小的wav文件。

staticconstunsignedcharwav_template[]={//RIFFWAVEChunk0x52,0x49,0x46,0x46,//"RIFF"0x30,0x00,0x00,0x00,//总长度整个wav文件大小减去ID和Size所占用的字节数0x57,0x41,0x56,0x45,//"WAVE"//FormatChunk0x66,0x6D,0x74,0x20,//"fmt"0x10,0x00,0x00,0x00,//块长度0x01,0x00,//编码方式0x01,0x00,//声道数目0x80,0x3E,0x00,0x00,//采样频率0x00,0x7D,0x00,0x00,//每秒所需字节数=采样频率*块对齐字节0x02,0x00,//数据对齐字节=每个样本字节数*声道数目0x10,0x00,//样本宽度//FactChunk0x66,0x61,0x63,0x74,//"fact"0x04,0x00,0x00,0x00,//块长度0x00,0xBE,0x00,0x00,//DataChunk0x64,0x61,0x74,0x61,//"data"0x00,0x00,0x00,0x00,//块长度};

这个wav文件的数据长度为0。我们要增加PCM数据只要完成以下工作:

在数据段尾增加PCM数据;

修改数据段的块长度,修改RIFF段的总长度;

正确设置格式段的PCM参数。

样本长度可能不是8的整数倍,这时wav文件还是要求样本按照字节对齐。在一个样本中数据是左对齐的,右侧空位用0填充。pcm2wav只考虑了样本长度是16位的情况。

如果有多个声道,wav文件要求先放样本1的各声道数据,再放样本2的各声道数据,依此类推。因为我没有碰到过处理多声道数据的需求,所以pcm2wav只考虑了单声道。

Tags:wav,PCM.

应用推荐查看更多
热门下载查看更多
精选应用
点击查看更多
专题合集查看更多
热门专题查看更多
友情链接0投诉联系:ichaoinc@gmail.com