Definindo propriedades de captura de áudio
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Cada pino de entrada no Filtro de Captura de Áudio expõe a interface IAMAudioInputMixer . Use essa interface para habilitar ou desabilitar uma entrada específica chamando o método IAMAudioInputMixer::p ut_Enable no pin. Use também essa interface para definir propriedades de uma entrada, como os níveis de baixo, agudo e volume. Se você estiver capturando várias entradas ao mesmo tempo, poderá controlar os níveis gerais de baixo, agudo e volume por meio da interface IAMAudioInputMixer no próprio filtro.
As taxas de amostragem disponíveis e os formatos de áudio para captura são determinados pelo driver. Use a interface IAMStreamConfig no pino de saída do Filtro de Captura de Áudio para enumerar as taxas e formatos de amostragem disponíveis e definir o formato desejado. O filtro pode se conectar downstream a qualquer filtro que aceite o tipo de mídia do pino de saída.
O Filtro de Captura de Áudio também expõe a interface IAMBufferNegotiation . Essa interface é útil para controlar a quantidade de latência na visualização de áudio. Por padrão, o filtro Captura de Áudio usa um tamanho de buffer de meio segundo. Esse tamanho de buffer é ideal para captura, mas causa um atraso de visualização de meio segundo. Para reduzir a latência, chame o método IAMBufferNegotiation::SuggestAllocatorProperties antes de conectar o pin de saída do Filtro de Captura de Áudio. Esse método usa um ponteiro para a estrutura ALLOCATOR_PROPERTIES . Use o membro cbBuffer para especificar o tamanho do buffer, em bytes. Um buffer de 80 milissegundos geralmente é seguro, mas buffers de 30 ou 40 milissegundos podem ser suficientes. Se os buffers forem muito pequenos, a qualidade do som será degradada.