【发布时间】:2021-04-09 23:02:29
【问题描述】:
我有这样的代码:
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时添加的。
【问题讨论】:
-
它实际上是在实例化 mp3 文件时发生的。然后在那里添加填充。
-
@HansPassant 我没有明白你在参考中所指的内容。
-
顶部图像似乎是单个 t(单声道?)机架,而底部图像是(立体声?)一对轨道。这就是Audacity的表现吗?我想知道您是否需要向 NAudio 提供一些额外的配置来告诉它您想要的输出格式?
-
@Neil 不两者都是立体声,我只是没有发布整个屏幕。
标签: c# .net filestream naudio naudio-framework