是否可以使用DirectSound的托管版本反向读取声音?如果没有,有没有其他库可以让它变得更容易呢?
发布于 2009-08-03 11:08:28
您可以使用NAudio中的WaveFileReader和WaveFileWriter类来反转WAV文件。您需要确保使用WaveFormat的BlockAlign属性读取单个样本的所有字节(立体声16位音频为4字节)。
public static void ReverseWaveFile(string inputFile, string outputFile)
{
using (WaveFileReader reader = new WaveFileReader(inputFile))
{
int blockAlign = reader.WaveFormat.BlockAlign;
using (WaveFileWriter writer = new WaveFileWriter(outputFile, reader.WaveFormat))
{
byte[] buffer = new byte[blockAlign];
long samples = reader.Length / blockAlign;
for (long sample = samples - 1; sample >= 0; sample--)
{
reader.Position = sample * blockAlign;
reader.Read(buffer, 0, blockAlign);
writer.WriteData(buffer, 0, blockAlign);
}
}
}
}https://stackoverflow.com/questions/1221140
复制相似问题