DuckingCaptureSample

Este aplicativo de exemplo demonstra abrir e fechar fluxos de comunicação e causar eventos de ducking que um aplicativo pode obter para implementar a atenuação de fluxo. Este aplicativo implementa um cliente de bate-papo que usa APIs de áudio Core para ler dados de áudio de um dispositivo de comunicação e reproduzi-los no dispositivo de saída.

Este tópico inclui as seções a seguir.

Descrição

Este exemplo demonstra os seguintes recursos.

  • API MMDevice para enumeração e seleção de dispositivos multimídia.
  • WASAPI para acessar o dispositivo de captura e renderização de comunicações, operações de gerenciamento de fluxo e manipulação de eventos de fuga.
  • APIs WAVE para acessar o dispositivo de comunicação e capturar entrada de áudio.

Requisitos

Product Versão
SDK do Windows Windows 7
Visual Studio 2008

 

Baixar o exemplo

Este exemplo está disponível nos seguintes locais.

Localidade Caminho/URL
SDK do Windows \Arquivos de Programas\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingCaptureSample\...

 

Compilando o exemplo

Para criar o exemplo DuckingCaptureSample, use as seguintes etapas:

  1. Abra o DuckingCaptureSample.sln no Visual Studio 2008.
  2. Na janela, selecione a configuração da solução Depurar ou Liberar, selecione o menu Construir na barra de menus e selecione a opção Compilar. Se você não abrir o Visual Studio do shell CMD para o SDK, o Visual Studio não terá acesso ao ambiente de compilação do SDK. Nesse caso, o exemplo não será compilado a menos que você defina explicitamente a variável de ambiente MSSdk, que é usada no arquivo de projeto, DuckingCaptureSample.vcproj.

Executando o exemplo

Se você compilar o aplicativo com êxito, um arquivo executável, DuckingCaptureSample.exe, será gerado. Para executá-lo, selecione Iniciar Depuração ou Iniciar Sem Depuração no menu Depurar ou digite DuckingCaptureSample em uma janela de comando.

DuckingCaptureSample fornece ao usuário duas implementações para capturar áudio do dispositivo de console padrão: APIs WASAPI e Wave. Para iniciar uma sessão de captura, selecione um modo e clique em Iniciar na interface do usuário do aplicativo. Para encerrar a sessão, clique em Parar. Dependendo do dispositivo especificado pelo usuário (entrada ou saída), o aplicativo usa a API MMDevice para obter uma referência ao dispositivo de comunicação de renderização ou captura padrão. Depois que o usuário inicia uma sessão de bate-papo, o aplicativo executa as seguintes tarefas:

  • Cria e inicializa um cliente de áudio no modo controlado por eventos.
  • Associa o cliente ao identificador de eventos que sinaliza que as amostras estão prontas para captura ou renderização.
  • Configura um cliente de captura e um cliente de renderização para o transporte.
  • Cria o thread de bate-papo e inicia o mecanismo de áudio.

Para capturar dados de áudio, a cada passo de processamento, a amostra usa o cliente de captura para obter a quantidade total de dados capturados que está disponível no buffer, ler dados do dispositivo de entrada padrão e liberar o pacote e disponibilizar o buffer para ler o próximo conjunto de dados capturados.

Para renderização, o aplicativo determina a quantidade de dados que são enfileirados para reprodução no buffer de ponto de extremidade de captura. Assim, ele grava no buffer e libera o buffer em preparação para o próximo passo de processamento até que todos os dados tenham sido gravados. Para renderização, os quadros silenciosos são pré-rolados para evitar que o mecanismo de áudio brilhe na inicialização. DuckingCaptureSample também mostra como ocultar o fluxo de renderização do misturador de volume.

Para obter mais informações sobre o recurso de atenuação de fluxo, consulte Usando um dispositivo de comunicação.

Exemplos de SDK que usam as APIs de áudio principais