Захват звука из динамика с помощью Waveform Audio API Windows

Я хочу записать звук из динамика с помощью Waveform Audio API.

Я искал и нашел сообщения, в которых объясняется, как использовать Waveform Audio для захвата звука с микрофона и сохранения в файл или воспроизведения. Однако никто не объясняет, как записывать звук из динамика.

Насколько я понимаю, если я предоставлю дескриптор воспроизводящего устройства в waveInOpen(), я могу записывать звук из динамика. Здесь мне нужна помощь. Как получить ручку устройства воспроизведения? Когда я предоставляю WAVE_MAPPER (or 0) for uDeviceID, он всегда записывает с микрофона. Если я устанавливаю любое другое значение, я всегда выхожу за пределы допустимого диапазона.

РЕДАКТИРОВАТЬ:

Я провел еще несколько исследований с тех пор, как разместил вопрос. Я нашел другие варианты / API, которые я могу использовать для записи звука. Мне нужна помощь, чтобы указать мне правильное направление, которое следует использовать для захвата звука из динамика. Я не хочу ничего необычного, связанного с большим количеством кода. Моя целевая ОС - XP и выше.

waveInOpen и микшер:

Комментарии / обсуждения по этим ссылкам намекают, что waveInOpen() можно использовать для захвата звука из динамика. В соответствии с ними необходимо открыть Mixer. Я использовал mixerOpen(), чтобы получить дескриптор микшера, но не знаю, как использовать этот дескриптор с waveInOpen().

Как записать воспроизводимый звук? < / а>

Звук из микрофона против звука из динамика

XAudio2:

Могу ли я использовать XAudio2 для захвата звука из динамика? Если да, то, пожалуйста, поделитесь образцом кода.


person Tom Dick N Harry    schedule 16.01.2015    source источник
comment
Первая ссылка, которую вы добавили, содержит 3 предложения по выполнению того, что вы просите. Я ответил на последнее из трех. Я не скажу, что первое невозможно, но по своему опыту я никогда не видел звуковую карту с такой возможностью. Я только что проверил один на своем компьютере, а также проверил 4 профессиональных аудиоустройства, лежащих на моем столе. Удачи.   -  person jaket    schedule 19.01.2015
comment
Вы смогли найти решение? Мне также нужна система записи звука.   -  person Noitidart    schedule 25.05.2016


Ответы (1)


API не предназначен для этого варианта использования. Выход на динамик является устройством вывода и доступен waveOutOpen. Обходной путь - установить виртуальную звуковую карту, например, ту, что есть здесь и это позволит вам перенаправить аудиовыход обратно на аудиовход.

person jaket    schedule 17.01.2015
comment
Спасибо за ваш ответ. Я быстро перешел по ссылке, которой вы поделились. Я ищу что-то попроще, поскольку все, что мне нужно, это возможность захвата без изменения звука или выполнения других более сложных функций. Я собираюсь отредактировать свой исходный пост, так как провел дополнительное исследование. - person Tom Dick N Harry; 18.01.2015