Как я могу написать программное обеспечение для воспроизведения аудиоклипов, перенаправленных на записывающее устройство?

Я хочу написать программу, которая позволит пользователям воспроизводить звуковые клипы в микрофон (записывающее устройство), чтобы они могли микшировать клипы со своим голосом, используя программное обеспечение VOIP (например, Ventrillo или Skype) со своего ПК. Когда я говорю "проигрывать аудиоклипы в их микрофон", я имею в виду, что пользователь нажимает кнопку, и воспроизводится аудиоклип, который слышат и пользователь, и люди на другом конце VOIP-соединения. Какие функции API можно использовать для этого в Windows?

1 ответ

Не существует стандартного API для "воспроизведения звука в микрофон". То есть, когда приложения хотят захватить звук и используют API для получения аудиопотока, не существует стандартного способа определения этого процесса и обновления записанного звука на лету. Чтобы добавить к этому, есть несколько аудио-API с существенными отличиями.

Воспроизведение звука на устройстве воспроизведения, таким образом, легко и является типичной задачей аудио API, которая даже не заслуживает особого внимания в контексте этого вопроса. Изменение перехваченного аудиопотока обычно является задачей приложения захвата. Как только он собрал данные, приложение может свободно изменять его, в частности, добавляя в него дополнительную информацию.

Теперь, если ваш запрос состоит в том, чтобы изменить поведение стороннего приложения с поддержкой звука, такого как Skype, не имея возможности напрямую подключиться к аудио-конвейеру, вы, как правило, захотите внедрить виртуальное устройство захвата звука, которое генерирует канал самостоятельно с гибкостью смешивать реальные захваченные данные и дополнительный контент. Если стороннее приложение настроено на запись с такого виртуального устройства, оно начинает получать данные с вашего устройства / компонента напрямую. Задача создания виртуальных аудиоустройств усложняется тем фактом, что существует несколько API, и различные приложения используют разные API для захвата аудио, а создание виртуальных устройств может быть более или менее трудным в зависимости от API.

Другие вопросы по тегам