Подтвердить что ты не робот

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

Кто-нибудь знает, как программно захватывать воспроизводимый звук (т.е. все, что исходит от звуковой карты, а не устройства ввода, такие как микрофон).

4b9b3361

Ответ 1

Предполагая, что вы говорите о Windows, есть три способа сделать это.

Первый - открыть основной выход аудиоустройства в качестве источника записи. Это возможно только в том случае, если драйвер поддерживает его, хотя большинство из них делает это в наши дни. Обычными именами для виртуального устройства являются "What You Hear" или "Wave Out". Для выполнения захвата вам понадобится использовать подходящий API (см. WaveIn или DirectSound в MSDN).

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

Это означает, что ни один из этих параметров не будет гарантированно работать на ПК с произвольным оборудованием.

Последняя альтернатива - использовать виртуальное аудиоустройство, например Virtual Audio Cable. Если это устройство установлено как устройство воспроизведения defualt в Windows, тогда все хорошо управляемые приложения будут играть через него. Затем вы можете записать с того же устройства, чтобы захватить суммированный результат. Пока у вас есть контроль над устройством, которое приложение, которое вы хотите записать, использует этот параметр, всегда будет работать.

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

Ответ 2

Вы можете использовать аудиоформат Waveform, есть статья MSDN о том, как получить доступ к нему на PInvoke.

Чтобы захватить воспроизводимый звук, вам просто нужно открыть воспроизводящее устройство вместо микрофона. Открыто для ввода, конечно, не для вывода; -)

Ответ 3

Если вы использовали OSX, Audio Hijack Pro от Rogue Amoeba, вероятно, самый простой способ.

Во всяком случае, почему бы просто не зациклировать ваш звук обратно на вашу линку и не записать это? Это очень простое решение. Просто подключите кабель к гнезду аудиовыхода и линейному разъему и начните запись.

Ответ 4

Вам нужно включить устройство stero mix. если вы это сделаете, прямой звук найдет это устройство.

Ответ 5

Кто-нибудь реализовал "Захват аудио, который воспроизводится - динамик"

Я могу записывать аудио для MIC (используя java sound API), но он не работает для динамика (Вывод).

Кто-нибудь способен достичь этого? Пожалуйста, предложите.