Trabalhando com funções de dispositivo

A API MMDevice oferece suporte a funções de dispositivo. A enumeração ERole define as funções de dispositivo que são suportadas pela API MMDevice.

Observação

Embora a API MMDevice ofereça suporte a funções de dispositivo, a interface do usuário no Windows Vista não implementa suporte para esse recurso.

 

Um aplicativo pode usar a API MMDevice para oferecer suporte a funções de dispositivo por meio dos métodos IMMDeviceEnumerator::GetDefaultAudioEndpoint e IMMNotificationClient::OnDefaultDeviceChanged. No entanto, a interface do usuário no Windows Vista não oferece suporte à atribuição de funções individuais para dispositivos diferentes. No Windows Vista, a interface do usuário permite que o usuário selecione um dispositivo de áudio padrão para renderização e um dispositivo de áudio padrão para captura. Quando o usuário seleciona um dispositivo de renderização ou captura padrão, o sistema atribui todas as três funções de dispositivo (eConsole, eMultimedia e eCommunications) a esse dispositivo. Os aplicativos não podem alterar as funções atribuídas a dispositivos de ponto de extremidade de áudio. O sistema operacional permite que apenas o usuário atribua funções de dispositivo.

Um cliente pode se registrar para receber uma notificação da API MMDevice sempre que ocorrer uma alteração na atribuição de funções a dispositivos de ponto de extremidade de áudio. Quando uma função muda de um dispositivo para outro, o cliente pode escolher se deseja continuar reproduzindo (ou gravando) seus fluxos através do mesmo dispositivo ou alternar os fluxos para outro dispositivo. Por padrão, os fluxos continuam a ser reproduzidos (ou gravados) através do dispositivo original. No Windows Vista, para alternar os fluxos para outro dispositivo, o cliente deve excluir os fluxos no dispositivo original e criar fluxos de substituição no novo dispositivo. No Windows 7, o cliente pode ouvir novas notificações para implementar uma opção perfeita sem interromper a reprodução ou a sessão de captura. Para obter mais informações, consulte Roteamento de fluxo.

Se você planeja usar o Windows Vista para testar seu aplicativo, você pode configurar um ambiente de teste para verificar se o aplicativo se comporta como esperado quando o usuário pode atribuir funções de dispositivo individuais a dispositivos diferentes. Para obter mais informações, envie um email para uaa@microsoft.com.

Dispositivos de comunicação

A interface do usuário do Windows 7 tem a capacidade de adicionar dispositivos de comunicação. O painel de controle Som permite que o usuário selecione um dispositivo de comunicação padrão para renderizar e capturar fluxo de áudio. Por padrão, quando um novo dispositivo é conectado ao computador, o sistema operacional executa a detecção automática de função e determina se o dispositivo é adequado para a função de comunicação eletrônica. Ao segmentar dispositivos de comunicação, você pode desenvolver aplicativos que usam APIs de áudio principais para implementar soluções de comunicação PC-telefone. Por exemplo, um aplicativo VoIP pode atribuir seus fluxos de entrada e saída de voz aos dispositivos de ponto de extremidade de captura e renderização padrão com a função eCommunications. Como qualquer outro fluxo, um aplicativo de comunicação deve obter uma referência ao ponto de extremidade do dispositivo de comunicação chamando IMMDeviceEnumerator::GetDefaultAudioEndpoint. Nessa chamada, o aplicativo deve especificar eCommunications no parâmetro Role . As operações de fluxo WASAPI em um fluxo, abertas em um dispositivo de comunicação, são semelhantes a qualquer outro fluxo de áudio. O aplicativo de comunicação pode melhorar a experiência do usuário implementando comportamentos como se esquivar manipulando notificações do ponto de extremidade do dispositivo. Para obter mais informações, consulte Usando um dispositivo de comunicação.

Detecção automática de função do dispositivo

Considere um cenário em que um computador tenha um dispositivo de renderização padrão, os alto-falantes e um dispositivo de captura padrão, um microfone. O usuário conecta um fone de ouvido USB ao computador. Depois que os drivers apropriados são instalados, o sistema operacional tenta detectar uma função a ser atribuída para o novo dispositivo de áudio.

No Windows 7, o recurso de detecção de função de dispositivo foi aprimorado significativamente para determinar as funções apropriadas adequadas para dispositivos de áudio. Todos os dispositivos de áudio contêm um conjunto de definições de configuração preenchidas pelo OEM do dispositivo, que ajudam o sistema a decidir como usar o dispositivo. Essas configurações incluem informações como a localização física da tomada de áudio, o tipo de dispositivo, o subtipo de tomada e os recursos de detecção para que o sistema possa determinar se o dispositivo está conectado. Ao recuperar esses valores do dispositivo, o sistema operacional determina a função a ser atribuída ao dispositivo. Nesse cenário, o sistema consultou o dispositivo de fone de ouvido USB, executou a detecção automática de função e decidiu que o dispositivo é mais adequado para ser um dispositivo de comunicação.

Um aplicativo também pode obter informações de tomada usando as APIs de áudio principal. Para obter mais informações, consulte IKsJackDescription e IKsJackDescription2.

Funções do dispositivo