c# - 使用 Windows 编解码器解码音频文件

标签 c# .net audio

我想在我的应用程序中添加对播放音频文件的支持。不过,我需要实时处理数据(例如,应用 ADSR、重采样、音高变换等...),因此直接需要这些位。

我已经尝试搜索如何执行此操作,但找不到太多信息,除非我只想读取波形文件或使用外部解压缩器。因为我安装了很多编解码器,所以我想使用它们(如果不是太麻烦的话,那不应该)。

我如何在 C# 中解决这个问题?似乎没有对使用 Windows 编解码器的任何 native 支持,但有一些技术可以提供帮助。不幸的是,它们似乎都相当严格或存在问题。

Windows Media Foundation 仅适用于 Win7,并且没有托管界面(尝试过 MF.NET 但效果不佳)。 DirectShow 似乎已贬值(被 WMF 取代)并且没有托管支持。等等……等等……等等……

让编解码器返回音频样本有多难?最多应该是几行代码;/

最佳答案

BASS Audio Library可以为您解码为原始数据。我不知道它是使用 Windows 中的内置编解码器还是它自己的编解码器,但它支持多种格式和流。它也有一个 .NET 包装器。

我相信您也可以使用此库来播放您希望创建的功能。至少对于信封来说,这绝对是可以的。同样,它提供了对流的原始访问,因此您不需要使用它来播放。

关于c# - 使用 Windows 编解码器解码音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379943/

相关文章:

javascript - 用于 web/javascript 的自动音频 Sprite 生成器?

matlab - MATLAB Audioplayer导致线性调频信号具有 'clicks'

c - 调整 PCM 阵列大小而不重新采样

c# - 如何创建一个完全不可见的按钮?

c# - WebBrowser "steals"来 self 的表单的 KeyDown 事件

.net - 在图像上绘制矩形

.net - 无法在 Windows 上安装 Node.js 包

javascript - 在 .aspx 页面上禁用右侧,但在超链接上启用

c# - lambda 表达式

c# - 如何在元素后显示 JSON 返回的错误