我正在使用NAudio打开一个wav文件。在我使用SimpleCompressor类之后,我还必须将文件的音量标准化为0db,但我不知道如何做到这一点。目前我有这个:
=Now()-30
如何从新的字节数组WaveData中获取音量,如何更改?在WaveData中是整个wav文件,包括fileheader
答案 0 :(得分:0)
您绝对可以更改单个样本值,使其符合最高级别:
string strCompressedFile = "";
byte[] WaveData = new byte[audio.Length];
SimpleCompressorStream Compressor = new SimpleCompressorStream(audio);
Compressor.Enabled = true;
byte maxLevel = 20;
if (Compressor.Read(WaveData, 0, WaveData.Length) > 0)
{
for (int i = 0; i < audio.Length; i++)
{
if (WaveData[i] > maxLevel)
{
WaveData[i] = maxLevel;
}
}
}
我添加了一个迭代所有样本的循环,如果它的值高于maxLevel
,我们将其设置为maxLevel
。