Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Захват всего, что проигрывает звуковая карта


Автор: metrosci 21.3.2008, 00:35
Здравствуйте!

Возникла проблема захвата всего, что выводится на звуковую карту. Стандартное решение - в микшере выставить как источник записи "WAVE", "WhatUHear", "Stereo Mix", etc. Далее есть множество способов захватить этот звук.

Но некоторые карты не поддерживают этот "virtual loopback". Сегодня таких карт довольно много и самое плохое, они широко распространены (Realtek). Стандартно захватить звук с этих карт никак не получается.. 

Видел упоминание о том, что можно каким-то образом захватить звук еще до его вывода в звуковую карту. Но, к сожалению, никаких подробностей найти не удалось.

Тем не менее, есть работающие программы, которые все же захватывают звук на таких картах, например, Freecorder Toolbar.

Поделитесь, пожалуйста, предположениями, как они это делают?

P.S.: есть обходные пути - создать виртуальную звуковую карту и назначить ее картой по умолчанию, тем самым перехватив весь звук. Так работает Virtual Audio Cable. Но неужели нет никакого более простого пути?

Спасибо!

Автор: AntonChik 21.3.2008, 17:01
а как же Total Recorder?

Автор: metrosci 21.3.2008, 21:11
Цитата

а как же Total Recorder?


что total recorder? есть его исходники? Вопрос не в том, какие программы умеют это делать, вопрос - как они это делают. Звук мне необходимо захватывать в собственном приложении.

Подозреваю, что универсального метода нет, т.к. звук может выводиться различными способами.. Попробуем сузить задачу - необходимо захватывать звук, воспроизводимый играми через DirectSound. Существует ли стандартный способ как-то перехватить\захватить его? Причем результат захвата нужен не в файле (насколько я знаю, это умеет делать DirectShow), а мелкими кусками в буфере - захваченный звук потом будет передан моим приложением клиентскому приложению.

Автор: siew 30.11.2009, 10:21
Я делаю так, в DirectShow cтавлю SampleGrabber  на аудио-потоке и получаю кусочки звука в буфере. Вот только как дальше с ними работать для получения нужного мне результата пока не знаю. Я хочу что бы мой захваченый звук воспринимался как звук какого нибудь виртуального источника звука, каторый бы я мог выбмрать в приложениях (например в Skype).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)