0
........

using (var reader = new MediaFoundationReader("\\track.wav"))
{

  MediaFoundationEncoder.EncodeToMp3(reader, "\\outputfile.mp3", 192000);

}
...........

在这里,在这段代码中,当我尝试将 wav 文件转换为 mp3 时,它会抛出异常,例如,“没有合适的 MP3 编码器可用”。我通过传递不同的比特率对其进行了测试,但没有用。我在装有 Windows 7 操作系统的电脑上安装了 Fraunhofer mp3 编解码器和 lame。但是将 wav 转换为 wma 和 mp4 工作正常。请纠正我哪里出错了。通过使用 Acm 和 lame,我可以在我的电脑上将 wav 转换为 mp3,但我不知道为什么媒体基础无法实现。还有是否有可能将流对象传递给媒体基础阅读器功能?

4

1 回答 1

1

ACM 和媒体基础转换是两个完全不同的东西。您可以将编解码器用作 ACM,但不能使用 MFT,反之亦然。因此,仅仅因为您拥有 ACM MP3 编码器,并不意味着您可以使用 Media Foundation 对 MP3 进行编码。

您可以使用 NAudio 源附带的 NAudioWpfDemo 应用程序来探索您的计算机上安装了哪些媒体基础转换。

不,目前不支持从流中创建 MediaFoundationReader。

于 2013-11-08T14:28:49.557 回答