Как получить данные PCM из Wave Out

Как было бы возможно захватить аудио программно? Я внедряю приложение, которое в реальном времени транслирует рабочий стол в сети. Видео часть закончена. Мне нужно реализовать аудио часть. Мне нужен способ получить данные PCM со звуковой карты для подачи на мой кодировщик (реализовано с использованием Windows Media Format).

Я думаю, что ответ связан с функциями openMixer (), waveInOpen () в Win32 API, но я точно не знаю, что мне делать.

Как открыть нужный канал и как читать с него данные PCM?

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

Ответы на вопрос(2)

нкцию (так называемую Loopback Recording), поэтому, если вы можете жить с приложением только для Vista, это путь.

УвидетьLoopback Recording статья на MSDN для инструкций о том, как это сделать.

 22 февр. 2011 г., 14:25
Спасибо, Оливер, я также обновил ссылку в сообщении.
 20 февр. 2011 г., 15:25
Решение Вопроса

что есть прямой способ сделать это с помощью ОС - это функция, которая может (или не может) присутствовать на звуковой карте. Некоторые звуковые карты имеют петлевой интерфейс - Creative называет это «What U Hear». Вы просто выбираете это как вход, а не микрофон, и записываете его, используя обычный waveInOpen (), о котором вы уже знаете.

Если звуковая карта не имеет этой функции, то я думаю, что вам не повезло, кроме как сделать что-то сумасшедшее, например, сделать свой собственный драйвер. Или вы можете убедить своих пользователей проложить кабель от выхода динамика к линейному входу :)

Ваш ответ на вопрос