在 C# 或 C++ 中将压缩的 wav 文件转换为未压缩的 wav 文件的最简单方法是啥?
Posted
技术标签:
【中文标题】在 C# 或 C++ 中将压缩的 wav 文件转换为未压缩的 wav 文件的最简单方法是啥?【英文标题】:What is the easiest way to convert a compressed wav file to an uncompressed wav file in C# or C++?在 C# 或 C++ 中将压缩的 wav 文件转换为未压缩的 wav 文件的最简单方法是什么? 【发布时间】:2009-01-20 15:31:50 【问题描述】:以编程方式将压缩的 wav 文件(例如 MPEG 编解码器,但可以是任何已安装的编解码器)转换为未压缩的 wav 文件(16 位 PCM)的最简单方法是什么?
我听说使用直接显示并用本机 C++ 编写代码可以做到这一点,但我对直接显示没有太多经验。
有没有更简单的方法来做到这一点? C# 是理想的,但 C++ 也可以。
【问题讨论】:
【参考方案1】:DirectShow 可能是进行解码的最佳方式,假设我们谈论的是 Windows。 DirectShow 是一个 COM API,因此您可以编写本机 C++ COM 代码,您可以使用可用的 DirectShow .Net 包装器之一,或者您可以使用 C++/CLI。您选择哪一个取决于您的应用程序架构的其余部分 - 如果您需要使用 .Net,那么 C++/CLI 绝对是最简单的途径。您确实需要更具体地说明您要实现的目标 - 例如,MPEG 本身不是编解码器 - 它们只是定义标准。
【讨论】:
【参考方案2】:您可以使用安装在 PC 上的任何 ACM 编解码器使用 NAudio 解压缩 C# 中的 WAV 文件。下面是一些示例代码:
using (WaveFileReader reader = new WaveFileReader(inputFileName))
using (WaveStream convertedStream =
WaveFormatConversionStream.CreatePcmStream(reader))
WaveFileWriter.CreateWaveFile(outputFileName, convertedStream);
【讨论】:
以上是关于在 C# 或 C++ 中将压缩的 wav 文件转换为未压缩的 wav 文件的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 或 C++ 中将 ms word 文档转换为 svg
如何使用 C 或 C++ 将 .caf 文件转换为 .wav?
如何以编程方式在 Android 中将 .mid 转换为 .wav 文件?