2013-09-06 1 views
2

Особенности использования ПОЧЕМУ Я хочу это сделать, чтобы помочь вам разобраться в моей дилемме:Как вы можете изменить активное записывающее устройство Window с помощью C++?

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

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

Простой, но я не могу найти способ изменить записывающее устройство с помощью программы.

Этот вопрос - именно то, что я хотел бы получить, но это не так. How can I write software to play sound clips routed into the recording device?

Также другая тема (Select recording device in C++ (Windows)) научила меня, как узнать, сколько записывающих устройств у меня есть, но не сообщила мне, как их изменить.

Допустимый ответ заключается в том, что нет простого способа сделать это без обхода безопасности Windows.

+0

AFAICT Это уже не Windows, а настройка для каждого приложения. – MSalters

ответ

0

Такие приложения, как Skype, привязываются к определенному аудиоустройству и используют его для записи/воспроизведения. Например, если пользователь Skype выбрал Stereo Mix в качестве микрофонного устройства в разделе «Настройки звука», тогда любое другое приложение сможет переключить его на другое? Это даже не безопасность Windows, это больше, чем это - вы пытаетесь вмешаться между приложением и используемым API.

Более или менее чистый способ реализовать это виртуальное устройство, которое вы полностью контролируете и, в частности, пересылаете данные с/на реальное устройство. Аналогично Stereo Mix, представьте себе устройство «My Switchable Mic», которое выбрано в Skype, и Skype принимает данные. Это уже встроено в Skype, и пока реализация устройства соответствует стандартным последствиям, Skype сможет получать данные оттуда. Оттуда вы можете делать реальный захват из другого источника звука, получать из сети, смешивать, синтезировать форму сигнала вообще. Да, вы также можете переключать базовые устройства «на лету» - все это под вашим контролем. Таким образом, это сработает.

Стандартный API не позволяет вам обманывать приложения и фальсифицировать аудиоустройства и данные.

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