在 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# 中更改音频格式的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 C# 的 MediaTranscoder 将 PCM 音频转码为 MP3