Как использовать DirectShow для рендеринга аудио в C ++ - PullRequest
2 голосов
/ 04 ноября 2011

Я только начинаю изучать DirectShow с C ++. Мне нужно использовать DirectShow для записи аудио и записи его в файл WAV на диске. Я слышал от других людей, что Win 7 не позволяет воспроизводить звук с помощью DirectShow.

Кроме того, я хотел бы знать, с чего начать запись звука с использованием DirectShow на C ++? Если есть источник выборки, было бы здорово.

Спасибо заранее.

1 Ответ

4 голосов
/ 04 ноября 2011

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

Самая простая вещь для выполнения того, что вы хотите сделать, - это правильно сделать это с помощью инструмента GraphEdit (я полагаю, вы хотите сделать это программно).

Создайте график, который содержит ваше аудиоустройство, WavDestFilter и средство записи файлов .

Source -> WavDest -> File Writer

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

ЗАПИШИТЕ WavDestFilter, IIRC его может быть не во всех версиях SDK, вам придется найти подходящий. Вам также необходимо собрать его и regsvr32, чтобы он отображался в вашем списке доступных фильтров в GraphEdit.

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

...