1

以编程方式将压缩的 wav 文件(例如 MPEG 编解码器,但可以是任何已安装的编解码器)转换为未压缩的 wav 文件(16 位 PCM)的最简单方法是什么?

我听说使用直接显示并用本机 C++ 编写代码可以做到这一点,但我对直接显示没有太多经验。

有没有更简单的方法来做到这一点?C# 是理想的,但 C++ 也可以。

4

2 回答 2

2

假设我们谈论的是 Windows,DirectShow可能是进行解码的最佳方式。DirectShow 是一个 COM API,因此您可以编写本机 C++ COM 代码,可以使用可用的DirectShow .Net包装器之一,也可以使用 C++/CLI。您选择哪一个取决于您的应用程序架构的其余部分 - 如果您需要使用 .Net,那么 C++/CLI 绝对是最简单的途径。您确实需要更具体地说明您要实现的目标——例如,MPEG本身不是编解码器——它们只是定义标准。

于 2009-01-20T15:41:44.617 回答
1

您可以使用安装在 PC 上的任何 ACM 编解码器使用NAudio解压缩 C# 中的 WAV 文件。这是一些示例代码:

using (WaveFileReader reader = new WaveFileReader(inputFileName))
{
    using (WaveStream convertedStream = 
        WaveFormatConversionStream.CreatePcmStream(reader))
    {
        WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
    }
}
于 2009-01-21T11:32:52.417 回答