RenderSharedTimerDriven
Este aplicativo de exemplo usa as APIs de áudio principal para renderizar dados de áudio para um dispositivo de saída especificado pelo usuário. Este exemplo demonstra o buffer controlado por temporizador para um cliente de renderização no modo compartilhado. Para um fluxo de modo compartilhado, o cliente compartilha o buffer de ponto de extremidade com o mecanismo de áudio.
Este tópico contém as seguintes seções.
- Descrição
- Requisitos
- Download do de exemplo
- Construindo a amostra
- Executando o exemplo
- Tópicos relacionados
Descrição
Este exemplo demonstra os seguintes recursos.
- da API MMDevice para enumeração e seleção de dispositivos multimídia.
- WASAPI para operações de gestão de fluxos.
Requerimentos
Produto | Versão |
---|---|
SDK do Windows | Janelas 7 |
Estúdio Visual | 2008 |
Download do 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\RenderSharedTimerDriven\... |
Construindo a amostra
Para criar o exemplo RenderSharedTimerDriven, use as seguintes etapas:
- Abra o shell CMD para o SDK do Windows e mude para o diretório de exemplo RenderSharedTimerDrived.
- Execute o comando
start WASAPIRenderSharedTimerDriven.sln
no diretório RenderSharedTimerDriven para abrir o projeto WASAPIRenderSharedTimerDriven na janela do Visual Studio. - Na janela, selecione a configuração Debug ou Release solution, selecione o menu Build na barra de menus e selecione a opção Build. Se você não abrir o Visual Studio a partir 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, WASAPIRenderSharedTimerDriven.vcproj.
Executando o exemplo
Se você compilar o aplicativo de demonstração com êxito, um arquivo executável, WASAPIRenderSharedTimerDriven.exe, será gerado. Para executá-lo, digite WASAPIRenderSharedTimerDriven
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 multimídia padrão.
WASAPIRenderSharedTimerDriven.exe -d 20 -multimedia
A tabela a seguir mostra os argumentos.
Argumento | Descrição |
---|---|
-? | Mostra ajuda. |
-h | Mostra ajuda. |
-f | Frequência das ondas senoidais em Hz. |
-l | Latência de renderização de áudio em milissegundos. |
-d | Duração da onda senoidal em segundos. |
-m | Desabilita o uso do MMCSS. |
-consola | 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. |
-parâmetro de avaliação final | 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 renderização. Depois que o usuário especifica um dispositivo, o aplicativo processa uma onda senoidal a 440 Hz por 10 segundos. Esses valores podem ser modificados especificando -f e -d valores de switch.
RenderSharedTimerDriven demonstra o buffer controlado por temporizador. Neste modo, o cliente deve aguardar um período de tempo (metade da latência, especificada pelo valor do comutador -d, em milissegundos). Quando o cliente acorda, a meio do período de processamento, retira o próximo conjunto de amostras do motor. Antes de cada passagem de processamento no loop de buffer, o cliente deve descobrir a quantidade de dados a serem renderizados para que os dados não excedam o buffer.
Os dados de áudio a serem reproduzidos no dispositivo especificado podem ser processados ativando o buffer controlado por eventos. Esse modo é demonstrado no RenderSharedEventDriven exemplo.
Para obter mais informações sobre como renderizar um fluxo, consulte Renderizando um fluxo.
Tópicos relacionados