C# 使用c编辑用于增加振幅的Wav文件示例#
我有下面的c代码,它将一个wave文件读入一个字节数组,然后将其写入另一个数组,从而创建一个新的wave文件。我是在网上找到的,对它了解不多 我想更改写入新数组中的值,这样我的振幅就会增加,比如说生成的新波形文件的值“x”。。应在何处进行更改,以及应进行哪些更改C# 使用c编辑用于增加振幅的Wav文件示例#,c#,amplitude,C#,Amplitude,我有下面的c代码,它将一个wave文件读入一个字节数组,然后将其写入另一个数组,从而创建一个新的wave文件。我是在网上找到的,对它了解不多 我想更改写入新数组中的值,这样我的振幅就会增加,比如说生成的新波形文件的值“x”。。应在何处进行更改,以及应进行哪些更改 private void ReadWavfiles(string fileName) { byte[] fa = File.ReadAllBytes(fileName); int sta
private void ReadWavfiles(string fileName)
{
byte[] fa = File.ReadAllBytes(fileName);
int startByte = 0;
// look for data header
for (var x = 0; x < fa.Length; x++)
if (fa[x] == 'd' && fa[x + 1] == 'a' && fa[x + 2] == 't' && fa[x + 3] == 'a')
{
startByte = x + 8;
break;
}
var buff = new byte[fa.Length / 2];
var y = 0;
var length = fa.Length;
for (int s = startByte; s < length; s = s + 2)
buff[y++] = (byte)(fa[s + 1] * 0x100 + fa[s]);
write(buff, "D:\\as1.wav", "D:\\us1.wav");
WaveOut obj = new WaveOut();
obj.Init(new WaveFileReader("D:\\as1.wav"));
obj.Play();
}
private void write(byte[] buffer, string fileOut, string fileIn)
{
WaveFileReader reader = new WaveFileReader(fileIn);
int numChannels = reader.WaveFormat.Channels, sampleRate = reader.WaveFormat.SampleRate;
int BUFFER_SIZE = 1024 * 16;
using (WaveFileWriter writer = new WaveFileWriter(fileOut, new WaveFormat(sampleRate, 16, numChannels)))
{
int bytesRead;
while (true)
{
bytesRead = reader.Read(buffer, 0, BUFFER_SIZE);
if (bytesRead != 0)
writer.Write(buffer, 0, bytesRead);
else break;
}
writer.Close();
}
}
private void readwav文件(字符串文件名)
{
byte[]fa=File.ReadAllBytes(文件名);
int startByte=0;
//查找数据头
对于(变量x=0;x