Вопрос по directshow, windows, winapi, audio – Как получить данные PCM из Wave Out

4

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

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

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

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

Ваш Ответ

2   ответа
4

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

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

7

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

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

Спасибо, Оливер, я также обновил ссылку в сообщении.
Правильный URLmsdn.microsoft.com/en-us/library/ms679146(VS.85).aspx

Похожие вопросы