Obtendo o ponto de extremidade do dispositivo para roteamento de fluxo
No Windows 7, APIs de plataforma de alto nível que usam APIs de áudio principal, como APIs Media Foundation, DirectSound e Wave, implementam o recurso de roteamento de fluxo manipulando a mudança de fluxo de um dispositivo existente para um novo ponto de extremidade de áudio padrão. Os aplicativos de mídia que usam essas APIs (por exemplo, um aplicativo que ativa um IDirectSound ou objeto IBaseFilter em um objeto IMMDevice) usam o comportamento de roteamento de fluxo sem modificações na origem.
As APIs de alto nível implementam o encaminhamento de stream para o endpoint do dispositivo obtido por meio IMMDeviceEnumerator::GetDefaultAudioEndpoint. Se uma aplicação transmite para o dispositivo padrão, o recurso de encaminhamento de fluxo opera conforme definido. Os fluxos não são alternados para o novo dispositivo se ele for recuperado por qualquer outro mecanismo, mesmo que seja o mesmo que o dispositivo padrão.
Um aplicativo de mídia que usa APIs de áudio principal diretamente (cliente WASAPI) pode fornecer uma implementação de roteamento de fluxo personalizada para qualquer dispositivo de renderização ou captura. Um cliente WASAPI pode replicar a implementação fornecida pelas APIs de alto nível, restringindo-a a fluxos abertos em dispositivos definidos como o dispositivo padrão. Para obter uma referência ao ponto de extremidade do dispositivo padrão, o cliente deve chamar IMMDeviceEnumerator::GetDefaultAudioEndpoint. Nesta chamada, o cliente deve indicar se requer um ponteiro para o dispositivo padrão de renderização ou o dispositivo padrão de captura especificando o parâmetro dataFlow. O cliente também deve especificar a função apropriada para o ponto de extremidade no atributo ERole (eConsole ou eCommunications). Não utilize eMultimedia.
Se a aplicação transmite para qualquer outro dispositivo, a aplicação pode obter o dispositivo especificando uma cadeia de caracteres do ID de ponto de extremidade (chamando IMMDeviceEnumerator::GetDevice).
Depois que o dispositivo é identificado, o cliente WASAPI pode fornecer a implementação para roteamento de fluxo manipulando o dispositivo e as notificações de sessão de áudio enviadas para o dispositivo. Para obter mais informações sobre essas notificações, consulte Notificações relevantes para roteamento de fluxo.
Tópicos relacionados