Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
de roteamento de fluxo é a capacidade de um aplicativo de mídia alternar fluxos entre dispositivos com interrupção mínima para a reprodução ou a sessão de captura.
Um computador pode ter vários dispositivos de renderização e captura. O sistema lista esses dispositivos no painel de controle Sounds. Nessa lista, um usuário pode definir um dispositivo como o dispositivo padrão para cada função: reprodução, gravação ou as quatro funções de comunicação (renderização de console, captura de console, renderização de comunicação ou captura de comunicação). A lista de dispositivos pode ser modificada dinamicamente, pois alguns desses dispositivos podem estar disponíveis temporariamente, por exemplo, um fone de ouvido USB. Quando vários dispositivos estão disponíveis, o usuário pode alterar o padrão para um dispositivo diferente. O utilizador também pode alterar o formato de um dispositivo (taxa de amostragem, bits por amostra e assim por diante) no separador Avançado do para as propriedades do dispositivo.
Considere um cenário no qual um usuário seleciona Alto-falantes como o dispositivo padrão para renderizar fluxos de áudio. Em seguida, o usuário conecta um fone de ouvido USB, seleciona o fone de ouvido como o novo dispositivo padrão e altera a taxa de amostragem do dispositivo de 44,1 kHz para 48 kHz. O usuário deseja reproduzir o fluxo de áudio no fone de ouvido na nova taxa de amostragem com interrupção mínima para a sessão de streaming.
Nesse cenário, há dois casos que o aplicativo de mídia deve manipular:
- O fluxo deve ser transferido para o novo dispositivo padrão com interrupção mínima para reprodução.
- O novo dispositivo deve retomar a reprodução no novo formato (ou seja, o usuário pode alterar mais do que a taxa de amostragem).
No Windows Vista, para dar suporte a esse cenário, o aplicativo de mídia tinha que fornecer a implementação para roteamento de fluxo. O aplicativo foi responsável por encerrar os fluxos existentes e reiniciar os fluxos no novo dispositivo. Se o usuário alterou o dispositivo padrão ou seu formato de mistura foi alterado, todas as sessões associadas foram fechadas e o aplicativo teve que lidar com a recuperação.
No Windows 7, uma aplicação pode transferir sem interrupções um stream de dados de um dispositivo padrão existente para um novo ponto de extremidade de áudio padrão. Conjuntos de APIs de áudio de alto nível, como Media Foundation, DirectSound e APIs WAVE, implementam o recurso de roteamento de fluxo. Os aplicativos de mídia que usam esses conjuntos de API para reproduzir ou capturar um fluxo do dispositivo padrão usam a implementação padrão e não precisarão modificar o aplicativo. No entanto, se seu aplicativo de mídia usa MMDeviceAPI ou WASAPI diretamente, o aplicativo precisa fornecer a implementação de roteamento de fluxo.
Observação
MMDeviceAPI e WASAPI são componentes da API de áudio principal que um aplicativo pode usar para renderizar ou capturar um fluxo em um dispositivo. A MMDeviceAPI descobre o novo dispositivo de ponto de extremidade de áudio e a WASAPI gerencia o fluxo de dados de áudio entre um aplicativo de mídia e o dispositivo de ponto de extremidade de áudio.
Para implementar o recurso de roteamento de fluxo, o aplicativo deve ouvir as notificações enviadas por MMDeviceAPI e WASAPI quando:
- O dispositivo padrão é alterado pelo usuário.
- O dispositivo padrão existente é removido e um novo dispositivo padrão é adicionado.
- O formato do dispositivo foi alterado.
Ao lidar com essas notificações, um aplicativo pode executar as operações de gerenciamento de fluxo necessárias enquanto transfere o fluxo para o novo dispositivo padrão. Além disso, o aplicativo pode renderizar ou capturar fluxos existentes usando o novo formato especificado pelo usuário enquanto uma sessão de renderização está ativa.
Esta seção contém os seguintes tópicos:
- Obtendo o endpoint do dispositivo para roteamento de streaming
- Notificações relevantes para o encaminhamento de fluxo
- Considerações sobre a implementação do roteamento de fluxo
Os exemplos a seguir, incluídos no SDK do Windows, demonstram como um aplicativo pode lidar com notificações de roteamento de fluxo.
- RenderSharedTimerDriven
- RenderSharedEventDriven
- RenderExclusiveTimerDriven
- GerarExclusivoConduzidoPorEvento
- CapturaTemporizadorPartilhadoDirigido
- EventoCompartilhadoControlado
Tópicos relacionados