Obtención del punto de conexión de dispositivo para el enrutamiento de flujos

En Windows 7, las API de plataforma de alto nivel que usan API de Core Audio, como Media Foundation, DirectSound y Wave API, implementan la característica de enrutamiento de secuencias mediante el control del cambio de flujo de un dispositivo existente a un nuevo punto de conexión de audio predeterminado. Las aplicaciones multimedia que usan estas API (por ejemplo, una aplicación que activa un objeto IDirectSound o IBaseFilter en un objeto IMMDevice ) usan el comportamiento de enrutamiento de secuencias sin modificaciones en el origen.

Las API de alto nivel implementan el enrutamiento de secuencias para el punto de conexión del dispositivo que se obtiene a través de IMMDeviceEnumerator::GetDefaultAudioEndpoint. Si una aplicación transmite al dispositivo predeterminado, la característica de enrutamiento de flujos funciona según lo definido. Las secuencias no se cambian al nuevo dispositivo si se recuperan mediante cualquier otro mecanismo aunque sea el mismo que el dispositivo predeterminado.

Una aplicación multimedia que usa core Audio API directamente (cliente WASAPI) puede proporcionar una implementación de enrutamiento de secuencias personalizada para cualquier dispositivo de representación o captura. Un cliente WASAPI puede replicar la implemetation proporcionada por las API de alto nivel restringiéndolo a flujos abiertos en dispositivos que se establecen como el dispositivo predeterminado. Para obtener una referencia al punto de conexión del dispositivo predeterminado, el cliente debe llamar a IMMDeviceEnumerator::GetDefaultAudioEndpoint. En esta llamada, el cliente debe indicar si requiere un puntero al dispositivo predeterminado de representación o al dispositivo predeterminado de captura especificando el parámetro dataFlow . El cliente también debe especificar el rol adecuado para el punto de conexión en el atributo ERole (eConsole o eCommunications). No use eMultimedia.

Si la aplicación transmite a cualquier otro dispositivo, la aplicación puede obtener el dispositivo especificando una cadena de identificador de punto de conexión (llamando a IMMDeviceEnumerator::GetDevice).

Una vez identificado el dispositivo, el cliente WASAPI puede proporcionar la implementación para el enrutamiento de secuencias mediante el control de las notificaciones de sesión de audio y dispositivo enviadas para el dispositivo. Para obtener más información sobre estas notificaciones, consulte Notificaciones relevantes para el enrutamiento de flujos.

Acerca de MMDevice API

Acerca de WASAPI

Enrutamiento de flujos