Establecer propiedades de captura de audio
[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.
Cada pin de entrada del filtro de captura de audio expone la interfaz IAMAudioInputMixer . Use esta interfaz para habilitar o deshabilitar una entrada determinada mediante una llamada al método IAMAudioInputMixer::p ut_Enable en el pin. Use también esta interfaz para establecer propiedades de una entrada, como los niveles de bajo, agudo y volumen. Si está capturando varias entradas a la vez, puede controlar los niveles generales de bajo, agudo y volumen a través de la interfaz IAMAudioInputMixer en el propio filtro.
El controlador determina las velocidades de muestreo y los formatos de audio disponibles para la captura. Use la interfaz IAMStreamConfig en el pin de salida del filtro de captura de audio para enumerar las velocidades de muestreo y los formatos disponibles y establecer el formato deseado. El filtro puede conectarse de bajada a cualquier filtro que acepte el tipo de medio del pin de salida.
El filtro de captura de audio también expone la interfaz IAMBufferNegotiation . Esta interfaz es útil para controlar la cantidad de latencia en la vista previa de audio. De forma predeterminada, el filtro captura de audio usa un tamaño de búfer de medio segundo. Este tamaño de búfer es óptimo para la captura, pero provoca un retraso de la versión preliminar de medio segundo. Para reducir la latencia, llame al método IAMBufferNegotiation::SuggestAllocatorProperties antes de conectar el pin de salida del filtro de captura de audio. Este método toma un puntero a la estructura ALLOCATOR_PROPERTIES . Use el miembro cbBuffer para especificar el tamaño del búfer, en bytes. Un búfer de 80 milisegundos es generalmente seguro, pero los búferes de 30 o 40 milisegundos pueden ser suficientes. Si los búferes son demasiado pequeños, la calidad del sonido se degradará.