Compartir a través de


Exploración del motor de audio de Windows Vista

En este tema se presenta información general sobre el motor de audio de Windows Vista. Se centra en los conceptos que le ayudarán a comprender cómo funcionan conjuntamente las API y los SAPOs.

En el diagrama siguiente se presenta un diseño simplificado de la estructura interna del motor de audio.

Diagrama que ilustra el diseño simplificado de un motor de audio de Windows Vista.

Como se muestra en el diagrama, las API y los SAPOs proporcionados por el sistema son los bloques de creación básicos del motor de audio. El motor de audio configura las API y los SAPOs proporcionados por el sistema en componentes denominados canalizaciones. Hay dos tipos de canalizaciones en el motor de audio:

  • Las canalizaciones de flujo se componen de API y SAPOs que realizan el procesamiento de audio digital que es local a la secuencia desde una sola aplicación. El sAPO de este tipo de canalización se conoce como sAPO de efectos locales (LFX sAPO).

  • Las canalizaciones de dispositivos se componen de API y SAPOs que realizan el procesamiento de audio digital que afecta a todas las secuencias globalmente. El sAPO de este tipo de canalización se denomina sAPO de efectos globales (GFX sAPO).

En la tabla siguiente se muestran los sAPOs que están disponibles en el motor de audio de Windows Vista y el tipo de efectos del sistema que aplican.

SAPO de Windows Vista Efecto del sistema

Aumento de graves

LFX

Administración de graves

LFX

Ecualización de ruido

LFX

Protección con baja frecuencia

LFX

Relleno del altavoz

LFX

Speaker Phantoming

LFX

Entorno virtual

LFX

Envolvente virtualizada sobre auriculares

LFX

Sonido mejorado para equipos portátiles

GFX

Corrección de la sala

GFX

Cuando una aplicación de audio inicia el procesamiento de audio, el motor de audio configura las API proporcionadas por el sistema y los SAPOs en un grafo de audio para procesar los datos de audio digitales. El mecanismo que usa el motor de audio para compilar el grafo de audio es un detalle del sistema y no se analizará.

La aplicación de audio puede iniciar la conexión en modo compartido o modo exclusivo. Aunque se instala un conjunto predeterminado de sAPOs con Windows Vista, los sAPOs no se consideran componentes del sistema y, por tanto, son personalizables.

Modo compartido

En modo compartido, una aplicación de audio comparte el hardware de audio con otras aplicaciones de audio que se ejecutan en otros procesos. El motor de audio mezcla las secuencias de estas aplicaciones y reproduce la combinación resultante a través del hardware. Cualquier aplicación que abra una secuencia en modo compartido debe seleccionar el formato de combinación que usa el motor de audio. La ventaja de usar el modo compartido es que el motor de audio de Windows Vista proporciona un objeto de procesamiento de audio integrado (APO) para proporcionar la funcionalidad auxiliar necesaria. La desventaja de usar el modo compartido es que la latencia de la secuencia de audio es mayor que en modo exclusivo. En el ejemplo de código siguiente se muestra la sintaxis para inicializar una secuencia de audio en modo compartido.

 hResult = pAudioClient->Initialize(
        AUDCLNT_SHAREMODE_SHARED, 
        0,
        0,
        0,
 pWfx,
        &m_SubmixGuid);

Modo exclusivo

En cambio, cuando una aplicación abre una secuencia en modo exclusivo, la aplicación tiene acceso exclusivo al hardware de audio. En este modo, la aplicación puede seleccionar cualquier formato de audio que admita el punto de conexión. La ventaja de usar el modo exclusivo es que la latencia de la secuencia de audio es menor que en modo compartido. La desventaja de usar el modo exclusivo es que debe proporcionar su propio APO para controlar la funcionalidad auxiliar del motor de audio. Solo un pequeño número de aplicaciones de nivel profesional requieren este modo de funcionamiento. En el ejemplo de código siguiente se muestra la sintaxis para inicializar una secuencia de audio en modo exclusivo.

 hResult = pAudioClient->Initialize(
            AUDCLNT_SHAREMODE_EXCLUSIVE,
            0,
            0,
            0,  
 pWfxEx,
            &m_SubmixGuid);

Una vez que una aplicación inicia el procesamiento de audio, el generador de grafos configura los sAPOs en un grafo de audio y también inicializa los sAPOs. A continuación, el servicio de audio negocia con el APO LFX para establecer el formato de los datos de audio en la entrada y salida del APO. Para obtener más información, vea Format Negotiation.