2016-07-19 3 views
0

В целях исследования я пытаюсь записывать с двух микрофонов одновременно, но безрезультатно.C++ Запись с двух микрофонов

Есть ли библиотека, которую я могу использовать для записи от 2 или более микрофонов? У меня есть 2 USB-микрофона, подключенных к COM4 и COM5 моего ПК, но я не могу найти библиотеку/ссылку, которая позволяет мне выбрать устройство, с которым я записываю.

Любая идея о том, как я должен подойти к такой вещи тогда?

+0

Какая платформа? На окнах стандартные аудио-библиотеки, конечно, это позволяют. –

+0

Да, окна. Я не видел такого варианта. Можете ли вы назвать библиотеку, которую знаете, которая может это сделать? – Amit

+0

Во-первых, попробуйте [SoftwareRecs] (http://softwarerecs.s.stackexchange.com/), поскольку этот вопрос не соответствует теме в его текущей форме. Тем не менее, некоторая первоначальная информация: в Windows ASIO будет лучшим выбором для записи с низкой задержкой, и в настоящее время ASIO поддерживает только одно устройство за раз (без каких-либо _very_ [хакеров низкого уровня] (https://github.com)./Qix-/cbind)). Если аппаратное обеспечение является шиной, то вам намного лучше, так как это позволит вам записывать с использованием двух аудиовходов. Затем вы можете использовать [простое аудио программное обеспечение] (http://wiki.audacityteam.org/wiki/Multichannel_Recording) для записи нескольких вводов одновременно. – Qix

ответ

0

Это действительно зависит от особенностей того, что вы хотите сделать. Любой из API-интерфейсов Windows Core может делать то, что вам нужно, если вы хотите создать отдельный поток захвата для каждого устройства. Недостатком этого является то, что вам будет очень сложно синхронизировать ваши записи, потому что в Windows нет встроенного способа, чтобы гарантировать, что потоки захвата 2 (или более) начинаются точно в одно и то же время. Это означает, что вам нужно использовать другие методы для исправления записи по времени. Однако, если ваши требования более слабы, тогда это тривиально легко настроить с помощью DirectSound или старого MME API.

Если вам нужны абсолютно синхронизированные записи, то, как @Qix говорит, вы не сможете сделать это, используя 2 разных устройства (например, 2 отдельных USB-микрофона) - по крайней мере, не без внедрения собственного драйвера. ASIO - очень простой интерфейс, который можно использовать и легко программировать. Это позволит вам записывать идеально синхронизированные аудиосигналы из большого количества источников, поддерживаемых вашим аппаратным интерфейсом, поддерживаемым ASIO.

Смежные вопросы