Pregunta

¿Alguien sabe cómo capturar mediante programación el sonido que se está reproduciendo (es decir, todo lo que proviene de la tarjeta de sonido, no los dispositivos de entrada, como un micrófono)?

¿Fue útil?

Solución

Suponiendo que está hablando de Windows, hay básicamente tres formas de hacerlo.

Lo primero es abrir la salida principal del dispositivo de audio como fuente de grabación. Esto solo es posible cuando el controlador lo admite, aunque la mayoría lo hace en estos días. Los nombres comunes para el dispositivo virtual son " Lo que escuchas " o " Wave Out " ;. Deberá usar una API adecuada (consulte WaveIn o DirectSound en MSDN) para realizar la captura.

La segunda forma es escribir un controlador de filtro que pueda interceptar la transmisión de audio antes de que llegue al dispositivo físico. Una vez más, esta técnica solo funcionará para dispositivos que tengan una topología de controlador adecuada y, ciertamente, no es para personas de corazón débil.

Esto significa que no se garantizará que ninguna de estas opciones funcione en una PC con hardware arbitrario.

La última alternativa es usar un dispositivo de audio virtual, como Cable de audio virtual . Si este dispositivo se configura como el dispositivo de reproducción por defecto en Windows, entonces todas las aplicaciones de buen comportamiento se reproducirán a través de él. Luego puede grabar desde el mismo dispositivo para capturar la salida sumada. Siempre que tenga control sobre el dispositivo que utiliza la aplicación que desea grabar, esta opción siempre funcionará.

Todas estas técnicas tienen sus pros y sus contras. Depende de usted decidir cuál sería la más adecuada para sus necesidades.

Otros consejos

Puede usar la interfaz de audio de forma de onda, hay un artículo de MSDN sobre cómo acceder a él por PInvoke.

Para capturar el sonido que se está reproduciendo, solo necesita abrir el dispositivo de reproducción en lugar del micrófono. Abierto para entrada, por supuesto, no para salida ;-)

Si estaba usando OSX, Audio Hijack Pro de Rogue Amoeba es la forma más fácil de hacerlo.

De todos modos, ¿por qué no volver a colocar el audio en tu línea y grabarlo? Esta es una solución simple muy Simplemente enchufe un cable en la toma de salida de audio y la línea en la toma y comience a grabar.

Tienes que habilitar la mezcla estéreo del dispositivo. Si haces esto, el sonido directo encuentra este dispositivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top