Вопрос

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

Это было полезно?

Решение

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

Первый - открыть основной выход аудиоустройства в качестве источника записи.Это возможно только в том случае, если драйвер поддерживает его, хотя в наши дни большинство так и делает.Распространенные названия виртуального устройства - "То, что вы слышите" или "Помашите рукой".Вам нужно будет использовать подходящий API (см. WaveIn или DirectSound в MSDN) для выполнения захвата.

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

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

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

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

Другие советы

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

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

Если бы вы использовали OSX, Профессиональный захват аудио от Rogue Amoeba вероятно, это самый простой путь.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top