DuckingCaptureSample

En esta aplicación de ejemplo se muestran los flujos de comunicación de apertura y cierre y la causa de eventos de pato que una aplicación puede obtener para implementar la atenuación de flujo. Esta aplicación implementa un cliente de chat que usa Core Audio API para leer datos de audio de un dispositivo de comunicación y reproducirlos en el dispositivo de salida.

En este tema se incluyen las siguientes secciones.

Descripción

En este ejemplo se muestran las siguientes características.

  • API MMDevice para la enumeración y selección de dispositivos multimedia.
  • WASAPI para acceder a la captura de comunicaciones y representar el dispositivo, las operaciones de administración de flujos y el control de eventos de pato.
  • API WAVE para acceder al dispositivo de comunicaciones y capturar la entrada de audio.

Requisitos

Producto Versión
Windows SDK Windows 7
Visual Studio 2008

 

Descarga del ejemplo

Este ejemplo está disponible en las siguientes ubicaciones.

Location Ruta de acceso y dirección URL
Windows SDK \Archivos de programa\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingCaptureSample\...

 

Generar el ejemplo

Para compilar el ejemplo DuckingCaptureSample, siga estos pasos:

  1. Abra DuckingCaptureSample.sln en Visual Studio 2008.
  2. En la ventana, seleccione la configuración de la solución Depurar o Liberar , seleccione el menú Compilar en la barra de menús y seleccione la opción Compilar . Si no abre Visual Studio desde el shell de CMD para el SDK, Visual Studio no tendrá acceso al entorno de compilación del SDK. En ese caso, el ejemplo no se compilará a menos que establezca explícitamente la variable de entorno MSSdk, que se usa en el archivo del proyecto, DuckingCaptureSample.vcproj.

Ejecutar el ejemplo

Si compila correctamente la aplicación, se genera un archivo ejecutable, DuckingCaptureSample.exe. Para ejecutarla, seleccione Iniciar depuración o Iniciar sin depurar en el menú Depurar o escriba DuckingCaptureSample en una ventana de comandos.

DuckingCaptureSample proporciona al usuario dos implementaciones para capturar audio desde el dispositivo de consola predeterminado: WASAPI y Wave API. Para iniciar una sesión de captura, seleccione un modo y haga clic en Iniciar en la interfaz de usuario de la aplicación. Para finalizar la sesión, haga clic en Detener. Según el dispositivo especificado por el usuario (entrada o salida), la aplicación usa la API MMDevice para obtener una referencia al dispositivo de comunicación de representación o captura predeterminado. Una vez que el usuario inicia una sesión de chat, la aplicación realiza las siguientes tareas:

  • Crea e inicializa un cliente de audio en modo controlado por eventos.
  • Asocia el cliente con el identificador de eventos que indica que los ejemplos están listos para la captura o representación.
  • Configura un cliente de captura y un cliente de representación para el transporte.
  • Crea el subproceso de chat e inicia el motor de audio.

Para capturar datos de audio, con cada paso de procesamiento, el ejemplo usa el cliente de captura para obtener la cantidad total de datos capturados que están disponibles en el búfer, leer datos del dispositivo de entrada predeterminado y liberar el paquete y hacer que el búfer esté disponible para leer el siguiente conjunto de datos capturados.

Para la representación, la aplicación determina la cantidad de datos que se ponen en cola para reproducir en el búfer del punto de conexión de captura. En consecuencia, escribe en el búfer y libera el búfer como preparación para el siguiente paso de procesamiento hasta que se hayan escrito todos los datos. Para la representación, los fotogramas silenciosos se preinscriben para evitar que el motor de audio se desluze en el inicio. DuckingCaptureSample también muestra cómo ocultar la secuencia de representación del mezclador de volúmenes.

Para obtener más información sobre la característica de atenuación de flujos, consulte Uso de un dispositivo de comunicación.

Ejemplos del SDK que usan las API de audio principal