gpt4 book ai didi

c# - 是否可以使用 DirectSound 在 C# 中对音频进行转码?

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:42 34 4
gpt4 key购买 nike

我想将大量音频从其源格式转码为 PCM,而无需重新采样或弄乱样本大小。我想如果 Windows Media Player 可以播放该文件并且它不使用遗留的 ACM 编解码器它必须使用 DirectSound 来播放(这是在 Windows XP 和 Windows Server 2k3 上)。那么是否可以从 C# 访问 DirectSound 并这样做呢?我试过在网上搜索,但所有示例都是关于播放的,我对此没有兴趣。

最佳答案

DirectSound 是一个音频播放 API,您的意思是 DirectShow。 Windows Media Player 确实使用 DirectShow 来播放音频文件。从理论上讲,您需要做的就是构建与媒体播放器使用的相同的播放图,但将最后的音频驱动程序替换为 .WAV 编写器过滤器。

这在 C++ 代码中更容易做到,因为 DirectShow 图形对象实际上是为从 C++ 调用而设计的,但是有了一组很好的互操作定义,您可以在 C# 中做到这一点。

http://directshownet.sourceforge.net/用于在 .NET 中使用 DirectShow 进行严重的黑客攻击,但这可能对您的问题来说太过分了。

我建议获取 GraphEdit 的副本如果你还没有。您可以使用它以交互方式“原型(prototype)化”直接显示图形。将文件拖放到 graphedit 中。然后删除最后的过滤器并将其替换为文件编写器过滤器。

您会遇到的一个问题是在默认的一组 DirectShow 过滤器中没有 .WAV 文件编写器过滤器,您将不得不找到或编写一个。

如果您只想转换文件,而不关心学习如何使用 DirectShow 编写代码,我建议您只获取 Sound Forge 的副本。 (甚至可能是演示版)。它有一种脚本语言(C#,vb),可用于轻松地批处理大多数音频文件格式。

关于c# - 是否可以使用 DirectSound 在 C# 中对音频进行转码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195271/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com