在 C# 中更改音频格式

Posted

技术标签:

【中文标题】在 C# 中更改音频格式【英文标题】:Change Audio Format in C# 【发布时间】:2009-06-08 06:35:04 【问题描述】:

我想将音频文件格式更改为另一种格式。具体来说,我想将任何音频文件转换为 6khz、16 位、单声道、PCM wav 格式。

我该如何解决这个问题。

再次提前致谢。

【问题讨论】:

【参考方案1】:

您也可以使用开源 C# 音频库 NAudio 执行此操作。查看 NAudioDemo 项目,了解通过您机器上安装的 ACM 编解码器传递 WAV 文件以转换为另一种格式的示例。如果您的输入文件不是 WAV 或 MP3,您首先需要将其转换为 WAV 的东西。

【讨论】:

实际上我在等待一个答案,比如包含 Microft Native .NET 库。但我真的需要使用另一个 API 吗?【参考方案2】:

我会使用BASS Library。它有许多使用内置编码/解码功能进行格式转换的可能性。它还有一个可用的 .NET 包装器。

【讨论】:

【参考方案3】:

我不完全确定您是否能够随心所欲地做到这一点。

首先请参阅处理 RIFF 文件的 windows API(即 WAV 文件的文件组。)

您需要读取标头、提取数据并解压缩以获取原始数据格式。我相信标题数据会告诉您使用什么编解码器进行压缩。

您需要对原始数据进行一些处理。转换为单声道和 16 位可能不是问题,但我不太确定采样率的变化。

然后您可以使用指定的编解码器重新压缩。

【讨论】:

那你说难搞?我懂了。然后我需要提前搜索商品。 至少你能告诉我在我的项目中实现解决方案所需的命名空间、dll、类。 我必须承认我没有注意到您指定了 C#。我只使用 VC++ 处理过这些文件。我认为这个链接可能对 C# 有所帮助,因为它看起来好像有一个用于 wav 文件的类:msdn.microsoft.com/en-us/library/aa446573.aspx

以上是关于在 C# 中更改音频格式的主要内容,如果未能解决你的问题,请参考以下文章

winform里面播放mid格式音频

请推荐一个 Mono(即 C#)音频阅读库 [关闭]

音频数据?我需要一个典型的例子

使用带有 C# 的 MediaTranscoder 将 PCM 音频转码为 MP3

怎样把(波形)声音格式(wav)转换成mp3、wma等其他音频格式?

从 C++ ASIO 库用 C# 录制音频流