我有这样的代码:
mp3File = new Mp3FileReader("someMP3Files.mp3");
WaveChannel32 inputStream = new WaveChannel32(mp3File);
streamProcessor = new WaveStreamProcessor(inputStream);
CreateWaveFile("test.wav", inputStream);
所以基本上它需要 mp3 并将其转换为一个名为 test 的波形文件。查看转换后的文件,我看到了这一点。
请注意突出显示的区域为什么它给出空白空间并且不完全按照原样复制?
有任何想法吗?
我的创建波浪方法:
public static void CreateWaveFile(string filename, WaveStream stream)
{
using (WaveFileWriter writer = new WaveFileWriter(filename, stream.WaveFormat))
{
byte[] buffer = new byte[stream.Length];
while (true)
{
int bytesRead = stream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
writer.WriteData(buffer, 0, bytesRead);
}
}
}
澄清一下,填充实际上是在创建 Mp3FileReader 时添加的。