RenderExclusiveTimerDriven
Este aplicativo de exemplo usa as APIs de Áudio Principal para renderizar dados de áudio em um dispositivo de saída especificado pelo usuário. Este exemplo demonstra o buffer controlado pelo temporizador para um cliente de renderização no modo exclusivo. Para um fluxo de modo exclusivo, o cliente compartilha o buffer de ponto de extremidade com o dispositivo de áudio.
Este tópico contém as seções a seguir.
- descrição
- requisitos de
- baixar o de exemplo
- compilar o de exemplo
- exibir os arquivos de exemplo
- tópicos relacionados
Descrição
Este exemplo demonstra os seguintes recursos.
- da API MMDevice para enumeração e seleção de dispositivo multimídia.
- WASAPI para operações de gerenciamento de fluxo.
Requisitos
Produto | Versão |
---|---|
do SDK do Windows | Windows 7 |
Visual Studio | 2008 |
Baixando o exemplo
Este exemplo está disponível nos seguintes locais.
Localização | Caminho/URL |
---|---|
Windows SDK | \Arquivos de Programas\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\RenderExclusiveTimerDriven\... |
Compilando o exemplo
Para criar o exemplo RenderExclusiveTimerDriven, use as seguintes etapas:
- Abra o shell do CMD para o SDK do Windows e altere para o diretório de exemplo RenderExclusiveTimerDriven.
- Execute o comando
start WASAPIRenderExclusiveTimerDriven.sln
no diretório RenderExclusiveTimerDriven para abrir o projeto WASAPIRenderExclusiveTimerDriven na janela do Visual Studio. - Na janela, selecione o de Depuração ou a configuração da solução de Versão, selecione o menu Criar na barra de menus e selecione a opção Criar. Se você não abrir o Visual Studio do shell do CMD para o SDK, o Visual Studio não terá acesso ao ambiente de build 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, WASAPIRenderExclusiveTimerDriven.vcproj.
Exibir os arquivos de exemplo
Se você criar o aplicativo de demonstração com êxito, um arquivo executável, WASAPIRenderExclusiveTimerDriven.exe, será gerado. Para executá-lo, digite WASAPIRenderExclusiveTimerDriven
em uma janela de comando seguida por argumentos obrigatórios ou opcionais. O exemplo a seguir mostra como executar o exemplo especificando a duração da reprodução no dispositivo de console padrão.
WASAPIRenderExclusiveTimerDriven.exe -d 20 -console
A tabela a seguir mostra os argumentos.
Argumento | Descrição |
---|---|
-? | Mostra ajuda. |
-h | Mostra ajuda. |
-f | Frequência de onda de seno no Hz. |
-l | Latência de renderização de áudio em milissegundos. |
-d | Duração da onda do seno em segundos. |
-m | Desabilita 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 da opção. |
Se o aplicativo for executado sem argumentos, ele enumera os dispositivos disponíveis e solicita que o usuário selecione um dispositivo para a sessão de renderização. Depois que o usuário especifica um dispositivo, o aplicativo renderiza uma onda de seno a 440 Hz por 10 segundos. Esses valores podem ser modificados especificando -f e -d valores de alternância.
RenderExclusiveTimerDriven demonstra o buffer controlado pelo 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 é ativado, no meio do período de processamento, ele extrai o próximo conjunto de amostras do mecanismo. Antes que cada processamento passe no loop de buffer, o cliente deve descobrir a quantidade de dados a serem renderizados para que os dados não ultrapassem o buffer.
Os dados de áudio a serem reproduzidos no dispositivo especificado podem ser processados habilitando o buffer controlado por eventos. Esse modo é demonstrado no exemplo RenderExclusiveTimerDriven.
Para obter mais informações sobre como renderizar um fluxo, consulte Renderizando um stream.
Tópicos relacionados