Share via


Método IMMDeviceEnumerator::GetDefaultAudioEndpoint (mmdeviceapi.h)

O método GetDefaultAudioEndpoint recupera o ponto de extremidade de áudio padrão para a direção e a função de fluxo de dados especificadas.

Sintaxe

HRESULT GetDefaultAudioEndpoint(
  [in]  EDataFlow dataFlow,
  [in]  ERole     role,
  [out] IMMDevice **ppEndpoint
);

Parâmetros

[in] dataFlow

A direção do fluxo de dados para o dispositivo de ponto de extremidade. O chamador deve definir esse parâmetro como um dos dois valores de enumeração EDataFlow a seguir:

eRender

eCapture

A direção do fluxo de dados para um dispositivo de renderização é eRender. A direção do fluxo de dados para um dispositivo de captura é eCapture.

[in] role

A função do dispositivo de ponto de extremidade. O chamador deve definir esse parâmetro como um dos seguintes valores de enumeração ERole :

eConsole

eMultimedia

eCommunications

Para obter mais informações, consulte Comentários.

[out] ppEndpoint

Ponteiro para uma variável de ponteiro na qual o método grava o endereço da interface IMMDevice do objeto de ponto de extremidade para o dispositivo de ponto de extremidade de áudio padrão. Por meio desse método, o chamador obtém uma referência contada para a interface . O chamador é responsável por liberar a interface, quando ela não é mais necessária, chamando o método Release da interface. Se a chamada GetDefaultAudioEndpoint falhar, *ppDevice será NULL.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Código de retorno Descrição
E_POINTER
O parâmetro ppDevice é NULL.
E_INVALIDARG
DataFlow ou função de parâmetro está fora do intervalo.
E_NOTFOUND
Nenhum dispositivo está disponível.
E_OUTOFMEMORY
Sem memória.

Comentários

Observação

No Windows Vista, a API MMDevice dá suporte a funções de dispositivo , mas os programas de interface do usuário fornecidos pelo sistema não. A interface do usuário no Windows Vista 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 altera o 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. Portanto, GetDefaultAudioEndpoint sempre seleciona o dispositivo de renderização ou captura padrão, independentemente de qual função é indicada pelo parâmetro de função . Em uma versão futura do Windows, a interface do usuário pode permitir que o usuário atribua funções individuais a dispositivos diferentes. Nesse caso, a seleção de um dispositivo de renderização ou captura por GetDefaultAudioEndpoint pode depender do parâmetro de função . Portanto, o comportamento de um aplicativo de áudio desenvolvido para ser executado no Windows Vista pode mudar quando executado em uma versão futura do Windows. Para obter mais informações, consulte Funções de dispositivo no Windows Vista.

Esse método recupera o dispositivo de ponto de extremidade padrão para a direção de fluxo de dados especificada (renderização ou captura) e a função. Por exemplo, um cliente pode obter o dispositivo de reprodução de console padrão fazendo a seguinte chamada:


  hr = pDevEnum->GetDefaultAudioEndpoint(
                   eRender, eConsole, &pDeviceOut);

No fragmento de código anterior, a variável hr é do tipo HRESULT, pDevEnum é um ponteiro para uma interface IMMDeviceEnumerator e pDeviceOut é um ponteiro para uma interface IMMDevice .

Um sistema Windows pode conter alguma combinação de dispositivos de ponto de extremidade de áudio, como alto-falantes da área de trabalho, fones de ouvido de alta fidelidade, microfones da área de trabalho, fones de ouvido com alto-falantes e microfones e alto-falantes multicanal de alta fidelidade. O usuário pode atribuir funções apropriadas aos dispositivos. Por exemplo, um aplicativo que gerencia fluxos de comunicação de voz pode chamar GetDefaultAudioEndpoint para identificar a renderização designada e capturar dispositivos para essa função.

Se apenas um único dispositivo de renderização ou captura estiver disponível, o sistema sempre atribuirá todas as três funções de renderização ou captura a esse dispositivo. Se o método não encontrar um dispositivo de renderização ou captura para a função especificada, isso significa que nenhum dispositivo de renderização ou captura está disponível. Se nenhum dispositivo estiver disponível, o método definirá *ppEndpoint = NULL e retornará ERROR_NOT_FOUND.

Para obter exemplos de código que chamam o método GetDefaultAudioEndpoint , consulte os seguintes tópicos:

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mmdeviceapi.h

Confira também

IMMDevice Interface

IMMDeviceEnumerator Interface