аудио — Как вы можете изменить активное записывающее устройство Window, используя C ++?

Подробности о том, ПОЧЕМУ я хочу сделать это, чтобы помочь вам понять мою дилемму:

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

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

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

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

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

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

2

Решение

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

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

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

0

Другие решения

Других решений пока нет …