Compartir a través de


CaptureSharedTimerDriven

Esta aplicación de ejemplo usa core Audio API para capturar datos de audio de un dispositivo de entrada especificado por el usuario y lo escribe en un archivo .wav con nombre único en el directorio actual. En este ejemplo se muestra el almacenamiento en búfer controlado por temporizador.

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 las operaciones de administración de flujos.

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\CaptureSharedTimerDriven\...

 

Generar el ejemplo

Para compilar el ejemplo CaptureSharedTimerDriven, siga estos pasos:

  1. Abra el shell de CMD para Windows SDK y cambie al directorio de ejemplo CaptureSharedTimerDriven.
  2. Ejecute el comando start WASAPICaptureSharedTimerDriven.sln en el directorio CaptureSharedTimerDriven para abrir el proyecto WASAPICaptureSharedTimerDriven en la ventana de Visual Studio.
  3. 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, WASAPICaptureSharedTimerDriven.vcproj.

Ejecutar el ejemplo

Si compila correctamente la aplicación de demostración, se genera un archivo ejecutable, WASAPICaptureSharedTimerDriven.exe. Para ejecutarlo, escriba WASAPICaptureSharedTimerDriven una ventana de comandos seguida de argumentos obligatorios o opcionales. En el ejemplo siguiente se muestra cómo ejecutar el ejemplo especificando la duración de captura en el dispositivo multimedia predeterminado.

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

En la tabla siguiente se muestran los argumentos.

Argumento Descripción
-? Muestra ayuda.
-H Muestra ayuda.
-l Latencia de captura de audio en milisegundos.
-d Duración de la captura de audio en segundos.
-M Deshabilita el uso de MMCSS.
-Consola Use el dispositivo de consola predeterminado.
-Comunicaciones Use el dispositivo de comunicación predeterminado.
-Multimedia Use el dispositivo multimedia predeterminado.
-Extremo Use el identificador de punto de conexión especificado en el valor del modificador.

 

Si la aplicación se ejecuta sin argumentos, enumera los dispositivos disponibles y solicita al usuario que seleccione un dispositivo para la sesión de captura. Los dispositivos de consola, comunicación y multimedia predeterminados se muestran seguidos de los dispositivos y los identificadores de punto de conexión. Si no se especifica ninguna duración, la secuencia de audio del dispositivo especificado se captura durante 10 segundos. La aplicación escribe los datos capturados en un archivo .wav con nombre único.

CaptureSharedTimerDriven muestra el almacenamiento en búfer controlado por el temporizador. En este modo, el cliente debe esperar un período de tiempo (la mitad de la latencia, especificada por el valor del modificador -d, en milisegundos). Cuando el cliente se reactiva, a mitad del período de procesamiento, extrae el siguiente conjunto de muestras del motor. Antes de que cada paso de procesamiento pase en el bucle de almacenamiento en búfer, el cliente debe averiguar la cantidad de datos de captura disponibles para que los datos no sobrerunen el búfer de captura. Los datos de audio capturados desde el dispositivo especificado se pueden procesar habilitando el almacenamiento en búfer controlado por eventos. Este modo se muestra en el ejemplo CaptureSharedEventDriven .

Ejemplos del SDK que usan las API de audio principal