C# DSP-Core Library Wav File
Feb-8-2022
功能
-
位置:File IO\Wav File
-
分类
- Wav File Library //类库源代码
- Wav File Generator Test Panel //写文件测试面板(范例)
- Wav File Reader Test Panel //读文件测试面板(范例)
-
限制
本类库支持16比特(short / I16),1或多声道文件格式。
测试面板给出1-2声道16比特文件生成和读取的范例
-
类库公开方法
//*** 构造函数 ***
/// 新建或打开一个Wav文件。
/// <param name="filePath"></param>
/// <param name="mode"></param>
/// <param name="fileAccess"></param>
public WavFileStream(string filePath, FileMode mode = FileMode.OpenOrCreate, FileAccess fileAccess = FileAccess.ReadWrite)
/// 新建或打开一个Wav文件。
/// <param name="filePath"></param>
/// <param name="mode"></param>
/// <param name="fileAccess"></param>
/// <param name="fileShare">确定文件如何由进程共享。</param>
public WavFileStream(string filePath, FileMode mode, FileAccess fileAccess, FileShare fileShare)
//*** 写入方法 ***
/// 写入I16类型PCM数据,若为多通道,则data中的数据为Channel Interleave(通道交织)存放。
/// <param name="data"></param>
public void Write(short[] data)
/// 写入byte[]类型PCM数据,若为多通道,则data中的数据为Channel Interleave(通道交织)存放。
/// <param name="data"></param>
public void Write(byte[] data)
//*** 读取方法 ***
/// 读出I16类型PCM数据,若为多通道,则data中的数据为Channel Interleave(通道交织)存放。
/// <param name="data"></param>
public virtual void Read(short[] data)
//*** 定位 ***
/// 将文件的当前读写位置设置为给定值。
/// <param name="offset">相对于origin 的Sample数。</param>
/// <param name="origin">使用 System.IO.SeekOrigin 类型的值,将开始位置、结束位置或当前位置指定为 offset 的参考点。</param>
/// <returns>文件读写的新位置,距离数据起始点的Sample数,即属性"Position"的值。</returns>
public void Seek(long offset, SeekOrigin origin)
//*** 关闭 ***
/// 关闭当前文件并释放与之关联的所有资源(如文件句柄)。
public void Close()
写Wav文件测试面板
界面
核心代码
- 生成模拟数据并写入文件
_numOfChannels = Convert.ToUInt16(_guiChannelSelection.Text);
_sampleRate = Convert.ToDouble(_guiAudioSampleRate.Text);
string folderPath = _guiRecorderFolder.Text;
if (!Directory.Exists(folderPath))