Как программно направить звук с любого записывающего устройства на любое воспроизводящее устройство - PullRequest
0 голосов
/ 16 июня 2020

Я хочу создать виртуальный аудиомикшер, который позволяет мне направлять аудиосигнал, поступающий с любого устройства ввода (записи) на любое устройство вывода (воспроизведения).

IE: допустим, у меня есть 2 виртуальных устройства ввода (IN-A и IN-B) и 2 устройства вывода (OUT- C и OUT-D), поэтому я хочу

Spotify playing to IN-A  -> OUT-C

MIC                      -> OUT-D

Chrome playing to IN-B   -> OUT-C

Кроме того, я хочу иметь возможность устанавливать громкость или усиление устройства, отключать звук устройства и контролировать сигнал или уровень громкости в реальном времени.

Вопрос: Я даже не знаю, с чего начать. Я предполагаю, что мне придется go для C ++, но я не знаю, есть ли существующая библиотека, которая позволяет мне это сделать. Я исследовал и нашел portaudio (и другие), но прежде чем вкладывать больше времени, я хочу узнать от эксперта, что было бы хорошей отправной точкой для продолжения моих исследований и разработки POC.

ПРИМЕЧАНИЕ: windows, или любой собственный микшер ОС мне не подходит. Мне нужно добиться этого программно.

Заранее спасибо!

1 Ответ

0 голосов
/ 16 июня 2020

Взгляните на эту статью в Википедии:

https://en.wikipedia.org/wiki/Windows_legacy_audio_components

Есть несколько способов добиться этого. Я лично не писал инструмент для микширования звука, но я сделал проект синтезатора, основанный на функциональности winmm.lib.

Если вам нужен микшер с низкой задержкой, вам нужно написать программный драйвер, что я бы не рекомендовал делать .

...