Introducción a XAudio2

XAudio2 es una API de audio de bajo nivel. Proporciona una base de procesamiento de señales y mezcla para juegos que es similar a sus predecesores, DirectSound y XAudio.

XAudio2 es el reemplazo esperado de DirectSound. Soluciona varios problemas pendientes y solicitudes de características.

Características de XAudio2

A continuación se muestra una lista de las características de XAudio2 y las nuevas funcionalidades que permiten a los desarrolladores mejorar el rendimiento en sus juegos.

  • Efectos DSP y filtrado por voz

    Los efectos de procesamiento de señal digital (DSP) son los sombreadores de píxeles de audio. Se encargan de todo, desde la transformación de un sonido , convirtiendo un cerdo en un sonido de monstruo bajo, asustadible, para colocar sonidos en el entorno del juego usando reverberación y oclusión o filtrado de obstrucción. XAudio2 proporciona un marco DSP flexible y eficaz. También proporciona un filtro integrado en cada voz, para efectos de filtrado de paso de banda/bajo/alto eficientes.

    Vea Efectos de audio XAudio2 y IXAudio2Voice::SetFilterParameters para obtener más información sobre los efectos DSP y el filtrado de voz.

  • Submezclado

    La submezcla combina varios sonidos en una sola secuencia de audio( por ejemplo, un sonido del motor formado por partes compuestas, todas ellas que se reproducen simultáneamente. Además, puedes usar submezclas para procesar y combinar partes similares de un juego. Por ejemplo, puedes combinar todos los efectos de sonido del juego para permitir que se aplique una configuración de volumen de usuario mientras un ajuste independiente controla el volumen de música. Combinado con DSP, la submezcla proporciona el tipo de enrutamiento y procesamiento de datos necesario para los juegos actuales. XAudio2 permite niveles arbitrarios de submezcla, lo que permite la creación de sonidos complejos y combinaciones de juegos.

    Vea XAudio2 Audio Graph y XAudio2 Voices para obtener más información sobre la submezcla.

  • Compatibilidad con audio comprimido

    Una de las principales solicitudes de características para DirectSound ha sido para la compatibilidad con audio comprimido. XAudio2 admite formatos comprimidos (ADPCM) de forma nativa con descompresión en tiempo de ejecución.

  • Compatibilidad mejorada con sonidos multicanal y envolvente

    La compatibilidad con sonidos envolventes, 3D y multicanal se amplía. El sonido envolvente y 3D ahora son mucho más flexibles y transparentes. XAudio2 quita el límite de 6 canales en sonidos multicanal y admite audio multicanal en cualquier tarjeta de audio compatible con multicanal. La tarjeta no necesita acelerarse por hardware.

  • Procesamiento de varias velocidades

    Para ayudar a minimizar el uso de CPU, XAudio2 proporciona la tecnología para crear varios gráficos de procesamiento de audio de baja velocidad. Esto puede reducir significativamente el uso de CPU al permitir que un juego procese audio a la velocidad del material de origen si la velocidad es inferior a 48 kHz.

  • Modelo de API sin bloqueo

    Con pocas excepciones, una llamada al método XAudio2 no bloqueará el motor de procesamiento de audio. Esto significa que un cliente puede realizar de forma segura un conjunto de llamadas de método en cualquier momento sin bloquear las llamadas de larga duración causando retrasos. Las excepciones son el método IXAudio2Voice::D estroyVoice (que puede bloquear el motor hasta que finalice el procesamiento de la voz) y los métodos que finalizan el subproceso de audio: IXAudio2::StopEngine y IXAudio2::Release. Tenga en cuenta que, aunque las llamadas al método XAudio2 no bloquearán el motor de procesamiento de audio, los métodos XAudio2 contienen secciones críticas y pueden bloquearse en algunas circunstancias.

Cuándo usar XAudio2

XAudio2 está pensado principalmente para desarrollar motores de audio de alto rendimiento para juegos. Para los desarrolladores de juegos que quieren agregar efectos de sonido y música de fondo a sus juegos modernos, XAudio2 ofrece un motor de mezcla de gráfico de audio con baja latencia y compatibilidad con búferes dinámicos, reproducción sincrónica fiel a la muestra y conversión implícita de velocidad de origen. En comparación con WASAPI, XAudio2 solo requiere una cantidad mínima de código incluso para soluciones de audio complejas. En comparación con el motor de Media Foundation, XAudio2 es una API de C++ de baja latencia y baja que está diseñada para su uso en juegos.

En el caso de las aplicaciones que simplemente necesitan reproducción de música normal, el motor de Media Foundation puede ser una mejor coincidencia con los requisitos de la aplicación.

Guía de programación

Introducción

Referencia de programación de XAudio2