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

El método GetDefaultAudioEndpoint recupera el punto de conexión de audio predeterminado para la dirección y el rol de flujo de datos especificados.

Sintaxis

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

Parámetros

[in] dataFlow

Dirección del flujo de datos para el dispositivo de punto de conexión. El llamador debe establecer este parámetro en uno de los dos valores de enumeración EDataFlow siguientes:

eRender

eCapture

La dirección del flujo de datos para un dispositivo de representación es eRender. La dirección del flujo de datos para un dispositivo de captura es eCapture.

[in] role

Rol del dispositivo de punto de conexión. El llamador debe establecer este parámetro en uno de los siguientes valores de enumeración ERole :

eConsole

eMultimedia

eCommunications

Para obtener más información, vea la sección Comentarios.

[out] ppEndpoint

Puntero a una variable de puntero en la que el método escribe la dirección de la interfaz IMMDevice del objeto de punto de conexión para el dispositivo de punto de conexión de audio predeterminado. A través de este método, el autor de la llamada obtiene una referencia contada a la interfaz . El autor de la llamada es responsable de liberar la interfaz, cuando ya no es necesario, llamando al método Release de la interfaz. Si se produce un error en la llamada a GetDefaultAudioEndpoint , *ppDevice es NULL.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_POINTER
El parámetro ppDevice es NULL.
E_INVALIDARG
El flujo de datos de parámetros o el rol están fuera del intervalo.
E_NOTFOUND
No hay ningún dispositivo disponible.
E_OUTOFMEMORY
Memoria insuficiente

Comentarios

Nota

En Windows Vista, la API MMDevice admite roles de dispositivo , pero los programas de interfaz de usuario proporcionados por el sistema no lo hacen. La interfaz de usuario de Windows Vista permite al usuario seleccionar un dispositivo de audio predeterminado para su representación y un dispositivo de audio predeterminado para la captura. Cuando el usuario cambia la representación predeterminada o el dispositivo de captura, el sistema asigna los tres roles de dispositivo (eConsole, eMultimedia y eCommunications) a ese dispositivo. Por lo tanto, GetDefaultAudioEndpoint siempre selecciona el dispositivo de representación o captura predeterminado, independientemente del rol indicado por el parámetro role . En una versión futura de Windows, la interfaz de usuario podría permitir al usuario asignar roles individuales a diferentes dispositivos. En ese caso, la selección de un dispositivo de representación o captura por GetDefaultAudioEndpoint podría depender del parámetro role . Por lo tanto, el comportamiento de una aplicación de audio desarrollada para ejecutarse en Windows Vista podría cambiar cuando se ejecuta en una versión futura de Windows. Para obtener más información, consulte Roles de dispositivo en Windows Vista.

Este método recupera el dispositivo de punto de conexión predeterminado para la dirección del flujo de datos (representación o captura) y el rol especificados. Por ejemplo, un cliente puede obtener el dispositivo de reproducción de consola predeterminado realizando la siguiente llamada:


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

En el fragmento de código anterior, la variable hr es del tipo HRESULT, pDevEnum es un puntero a una interfaz IMMDeviceEnumerator y pDeviceOut es un puntero a una interfaz IMMDevice .

Un sistema Windows puede contener alguna combinación de dispositivos de punto de conexión de audio, como altavoces de escritorio, auriculares de alta fidelidad, micrófonos de escritorio, auriculares con altavoz y micrófonos, y altavoces multicanal de alta fidelidad. El usuario puede asignar roles adecuados a los dispositivos. Por ejemplo, una aplicación que administra flujos de comunicaciones de voz puede llamar a GetDefaultAudioEndpoint para identificar la representación designada y capturar dispositivos para ese rol.

Si solo hay disponible una sola representación o dispositivo de captura, el sistema siempre asigna los tres roles de representación o captura a ese dispositivo. Si el método no encuentra un dispositivo de representación o captura para el rol especificado, esto significa que ningún dispositivo de representación o captura está disponible en absoluto. Si no hay ningún dispositivo disponible, el método establece *ppEndpoint = NULL y devuelve ERROR_NOT_FOUND.

Para obtener ejemplos de código que llaman al método GetDefaultAudioEndpoint , consulte los temas siguientes:

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmdeviceapi.h

Consulte también

IMMDevice (interfaz)

IMMDeviceEnumerator (Interfaz)