class WAVReader { #region RIFF WAVE Chunk private string Id; //文件标识 private double Size; //文件大小 private string Type; //文件类型 #endregion #region Format Chunk private string formatId; private double formatSize; //数值为16或18,18则最后又附加信息 private int formatTag; private int num_Channels; //声道数目,1--单声道;2--双声道 private int SamplesPerSec; //采样率 private int AvgBytesPerSec; //每秒所需字节数 private int BlockAlign; //数据块对齐单位(每个采样需要的字节数) private int BitsPerSample; //每个采样需要的bit数 private string additionalInfo; //附加信息(可选,通过Size来判断有无) /* * 以'fmt'作为标示。一般情况下Size为16,此时最后附加信息没有; * 如果为18则最后多了2个字节的附加信息。 * 主要由一些软件制成的wav格式中含有该2个字节的附加信息 */ #endregion #region Fact Chunk(可选) /* * Fact Chunk是可选字段,一般当wav文件由某些软件转化而成,则包含该Chunk。 */ private string factId; private int factSize; private string factData; #endregion #region Data Chunk private string dataId; private int dataSize; private List<double> wavdata = new List<double>(); //默认为单声道 #endregion /// <summary> /// 读取波形文件并显示 /// </summary> /// <param name="filePath"></param> public void ReadWAVFile(string filePath) { if (filePath == "") return;
C# 读取WAV文件(详细)
最新推荐文章于 2024-04-04 12:32:36 发布