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.
A primeira tarefa de um aplicativo de áudio cliente é encontrar um dispositivo de áudio adequado para usar. O MMDevice API permite que os clientes descubram os dispositivos de áudio de ponto final no sistema e determinem quais dispositivos são adequados para utilização pelo aplicativo. Essa API permite que os clientes recuperem coleções dos dispositivos de ponto de extremidade disponíveis e obtenham os recursos de cada dispositivo. O arquivo de cabeçalho Mmdeviceapi.h define as interfaces na API MMDevice.
Um adaptador de áudio pode conter vários dispositivos, por exemplo, um dispositivo de renderização de onda e um dispositivo de captura de onda. Estes são dispositivos adaptadores em vez de dispositivos de ponto final. Como mencionado anteriormente, os dispositivos adaptadores são registrados pelo gerenciador Plug and Play, em contraste com os dispositivos de ponto final, que são registrados pelo gerenciador de pontos finais. Cada dispositivo adaptador normalmente suporta um ou mais dispositivos de ponto final. Um dispositivo de ponto de extremidade de renderização (por exemplo, fones de ouvido) pode receber um fluxo de dados de áudio de um aplicativo cliente e um dispositivo de ponto de extremidade de captura (por exemplo, um microfone) pode enviar um fluxo de áudio para um aplicativo cliente.
Antes de enumerar os dispositivos endpoint no sistema, o cliente deve chamar primeiro a função deCoCreateInstance do Windowspara criar um enumerador de dispositivos. Um enumerador de dispositivo é um objeto com um IMMDeviceEnumerator interface. Para obter informações sobre CoCreateInstance, consulte a documentação do SDK do Windows.
O cliente chama o método IMMDeviceEnumerator::EnumAudioEndpoints para criar uma coleção de objetos de endpoint. Cada objeto de ponto de extremidade representa um dispositivo de ponto de extremidade de áudio no sistema. Nesta chamada, o cliente especifica se a coleção deve conter todos os dispositivos de renderização no sistema, todos os dispositivos de captura ou ambos.
Uma coleção de dispositivos é um objeto com uma interface IMMDeviceCollection. Cada elemento numa coleção de equipamentos é um objeto endpoint com pelo menos as duas interfaces seguintes:
- Uma interface IMMDevice. Um cliente obtém uma referência à interface de IMMDevice de um objeto de ponto de extremidade em uma coleção de dispositivos chamando o IMMDeviceCollection::Item método.
- Uma IMMEndpoint interface. Um cliente obtém uma referência à interface do IMMEndpoint de um objeto de ponto de extremidade através da chamada do método IMMDevice::QueryInterface.
Depois de recuperar uma coleção de dispositivos de ponto final, o cliente pode consultar as propriedades dos dispositivos individuais na coleção para determinar sua adequação para uso. Para obter um exemplo de código que mostra como enumerar dispositivos de ponto de extremidade e consultar suas propriedades, consulte Propriedades do dispositivo.
Depois de selecionar um dispositivo adequado, o cliente pode chamar o IMMDevice::Activate método para ativar as interfaces específicas do dispositivo em WASAPI, o DeviceTopology APIe o EndpointVolume API.
Tópicos relacionados