C# Wave文件-处理特定的音频数据块
我试图迭代一个wave文件,并在每次迭代时发送20ms。 假设我使用的是8khz、1通道、16位的音频文件,我使用NAudio有以下代码:C# Wave文件-处理特定的音频数据块,c#,arrays,naudio,wave,C#,Arrays,Naudio,Wave,我试图迭代一个wave文件,并在每次迭代时发送20ms。 假设我使用的是8khz、1通道、16位的音频文件,我使用NAudio有以下代码: WaveFileReader wHeader = new WaveFileReader(fullFileName); byte[] data = new byte[wHeader.Length]; int read = wHeader.Read(data, 0, data.Length); short[] sampleBuffer = new short[
WaveFileReader wHeader = new WaveFileReader(fullFileName);
byte[] data = new byte[wHeader.Length];
int read = wHeader.Read(data, 0, data.Length);
short[] sampleBuffer = new short[read / 2];
short[] InpBuf;
for (int i = 0; i < read; i += 2)
{
InpBuf = new short[159]; //20ms?
Buffer.BlockCopy(data, 0, sampleBuffer, 0, read);
InpBuf = sampleBuffer;
Process20(InpBuf); //Send 20ms of audio data which inside InpBuf
}
waveilereader wHeader=新的waveilereader(fullFileName);
字节[]数据=新字节[wHeader.Length];
int read=wHeader.read(数据,0,数据.长度);
short[]sampleBuffer=新的short[read/2];
短[]InpBuf;
对于(int i=0;i
我可以看到完整的音频数据现在在sampleBuffer中(生成的波形正弦),但我不能将这20ms划分为InpBuf,我看到InpBuf包含整个音频数据
一旦我了解了这个问题,我将能够转向立体声和不同的音频格式
谢谢你的帮助 问题与区块复制操作有关
Buffer.BlockCopy(data, 0, sampleBuffer, 0, read);
由于未定义任何偏移量,因此每次都从开始复制整个输入缓冲区
请参阅文档该问题与区块复制操作有关
Buffer.BlockCopy(data, 0, sampleBuffer, 0, read);
由于未定义任何偏移量,因此每次都从开始复制整个输入缓冲区
请参阅文档谢谢。在这里做什么最好?应该是这样还是有其他有效的方法<代码>代码int offst=0;对于(inti=0;i