Кто-нибудь знает, как программно захватывать воспроизводимый звук (т.е. все, что исходит от звуковой карты, а не устройства ввода, такие как микрофон).
Как захватить воспроизводимый звук?
Ответ 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), но он не работает для динамика (Вывод).
Кто-нибудь способен достичь этого? Пожалуйста, предложите.