es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo registro el audio de una sola ventana?

He estado buscando información sobre esto en Google, pero no he encontrado ni la forma de hacerlo ni por qué es imposible. Mi objetivo es crear una aplicación C# que grabe el sonido de una sola ventana, mientras que otra ventana puede hacer cualquier tipo de ruido, la aplicación solo guardaría el sonido de la primera ventana.

¿Hay alguna forma de grabar un bucle de una sola ventana en C#? ¿Y lo permite Windows?

He escrito código utilizando NAudio que graba todo el sonido en un solo canal. Echa un vistazo.

private void btnRec_Click(object sender, RoutedEventArgs e)
{
    //Configurando diálogo para crear archivo WAV
    var destFileDialog = new Microsoft.Win32.SaveFileDialog();
    destFileDialog.Filter = "Wave files | *.wav";
    destFileDialog.ShowDialog();
    destFileName = destFileDialog.FileName;

    //Creando capturador y escritor de archivos para guardar la información capturada
    capture = new WasapiLoopbackCapture();
    var writer = new WaveFileWriter(destFileName, capture.WaveFormat);

    //Configurando el comportamiento del capturador
    capture.DataAvailable += async (s, a) =>
    {
        if (writer != null)
        {
            await writer.WriteAsync(a.Buffer, 0, a.BytesRecorded);
            await writer.FlushAsync();
        }
    };
    capture.RecordingStopped += (s, a) =>
    {
        if (writer != null)
        {
            writer.Dispose();
            writer = null;
        }    
        btnRec.IsEnabled = true;
        capture.Dispose();
    };

    //Desactivando el botón para evitar una excepción
    btnRec.IsEnabled = false;
    btnStop.IsEnabled = true;    
    capture.StartRecording();
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Actualmente no es posible grabar sonido de un único bucle de ventana utilizando la API de Windows en C#. Esto se debe a que la API de Windows no proporciona esta funcionalidad. Sin embargo, algunas bibliotecas de terceros como NAudio pueden ser utilizadas para capturar datos de audio del flujo de audio de una ventana específica, pero el archivo de audio resultante aún puede contener audio de otras fuentes también. El código proporcionado arriba muestra cómo usar NAudio para capturar audio desde el dispositivo de audio en bucle, pero puede que no logre el objetivo específico mencionado en la pregunta.

Comments are closed.