【问题标题】:C++ Record from two microphones来自两个麦克风的 C++ 录音
【发布时间】:2016-11-21 19:08:27
【问题描述】:

出于研究目的,我尝试同时从 2 个麦克风录制,但无济于事。

是否有一个库可以让我使用 2 个或更多麦克风进行录音?我有 2 个 USB 麦克风连接到我的 PC 的 COM4 和 COM5,但我找不到库/参考,可以让我选择我正在录制的设备。

知道我应该如何处理这样的事情吗?

【问题讨论】:

  • 什么平台?在 Windows 上,标准音频库当然允许这样做。
  • 是的,窗户。我没有看到任何这样的选择。你能说出一个你知道可以做到的图书馆吗?
  • 首先,试试SoftwareRecs,因为这个问题在目前的形式下是离题的。但是,一些初步的见解:在 Windows 上,ASIO 将是您进行低延迟录制的最佳选择,目前 ASIO 一次只支持一个设备(没有一些 very low level hacks)。如果硬件是总线,那么您的情况会好得多,因为它允许您使用两个音频输入进行录制。然后您可以使用simple audio software 一次记录多个输入。
  • @Qix 我不是在寻找录音软件,我在寻找可以处理多个麦克风的音频库...我过去一直在使用软件,但它太多了工作。
  • 那么您想将 Steinberg 的 ASIO 接口/库与总线(多输入)硬件一起使用。从大量经验来看,两张卡的多个流将非常困难 - 至少在 Windows 上是这样。

标签: c++ microphone recording


【解决方案1】:

这真的取决于你想做什么的细节。如果您乐于为每个设备创建单独的捕获流,任何 Windows 核心音频 API 都可以做您想做的事情。这样做的缺点是您将很难同步您的记录,因为 Windows 中没有内置方法来保证 2 个(或更多)捕获流在完全相同的时间开始。这意味着您必须使用其他方法来纠正计时后记录。但是,如果您的要求比较宽松,那么使用 DirectSound 或旧的 MME API 进行设置是一件非常容易的事情。

如果您需要完美同步的录音,那么,正如@Qix 所说,您将无法使用 2 个不同的设备(例如 2 个单独的 USB 麦克风)来做到这一点 - 至少在没有实现自己的驱动程序的情况下不会。 ASIO 是一个非常易于使用且易于编程的界面。它将允许您从启用 ASIO 的特定硬件接口支持的尽可能多的来源录制完美同步的音频信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多