Compartilhar via


CaptureSharedTimerDriven

Este aplicativo de exemplo usa as APIs Core Audio para capturar dados de áudio de um dispositivo de entrada especificado pelo usuário e gravá-los em um arquivo .wav com nome exclusivo no diretório atual. Este exemplo demonstra o buffer controlado por timer.

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 operações de gerenciamento de fluxo.

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

 

Compilando o exemplo

Para criar o exemplo CaptureSharedTimerDriven, use as seguintes etapas:

  1. Abra o shell CMD para o SDK do Windows e altere para o diretório de exemplo CaptureSharedTimerDriven.
  2. Execute o comando start WASAPICaptureSharedTimerDriven.sln no diretório CaptureSharedTimerDriven para abrir o projeto WASAPICaptureSharedTimerDriven na janela do Visual Studio.
  3. 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, WASAPICaptureSharedTimerDriven.vcproj.

Executando o exemplo

Se você compilar o aplicativo de demonstração com êxito, um arquivo executável, WASAPICaptureSharedTimerDriven.exe, será gerado. Para executá-lo, digite WASAPICaptureSharedTimerDriven uma janela de comando seguida de argumentos obrigatórios ou opcionais. O exemplo a seguir mostra como executar o exemplo especificando a duração da captura no dispositivo multimídia padrão.

WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia

A tabela a seguir mostra os argumentos.

Argument Descrição
-? Mostra ajuda.
-h Mostra ajuda.
-l Latência de captura de áudio em milissegundos.
-d Duração da captura de áudio em segundos.
-m Desativa o uso do MMCSS.
-consolar Use o dispositivo de console padrão.
-Comunicações Use o dispositivo de comunicação padrão.
-multimédia Use o dispositivo multimídia padrão.
-Extremidade Use o identificador de ponto de extremidade especificado no valor do switch.

 

Se o aplicativo for executado sem argumentos, ele enumerará os dispositivos disponíveis e solicitará que o usuário selecione um dispositivo para a sessão de captura. O console padrão, a comunicação e os dispositivos multimídia são listados seguidos por dispositivos e os identificadores de ponto de extremidade. Se nenhuma duração for especificada, o fluxo de áudio do dispositivo especificado será capturado por 10 segundos. O aplicativo grava os dados capturados em um arquivo .wav com nome exclusivo.

CaptureSharedTimerDriven demonstra buffer controlado por temporizador. Nesse modo, o cliente deve aguardar um período de tempo (metade da latência, especificada pelo valor da opção -d, em milissegundos). Quando o cliente acorda, na metade do período de processamento, ele puxa o próximo conjunto de amostras do motor. Antes de cada passo de processamento no loop de buffer, o cliente deve descobrir a quantidade de dados de captura disponíveis para que os dados não ultrapassem o buffer de captura. Os dados de áudio capturados do dispositivo especificado podem ser processados habilitando o buffer controlado por eventos. Esse modo é demonstrado no exemplo CaptureSharedEventDriven .

Exemplos de SDK que usam as APIs de áudio principais