Skip to main content
xWMA es un subconjunto del formato de compresión Windows Media Audio (WMA) Professional. La descodificación de xWMA es compatible con XAudio2 por software. xWMA usa el formato de secuencia de bits de WMA en un contenedor ligero y es útil para diálogos y música cuando se puede asumir un pequeño uso de la CPU como costo de lograr una mayor compresión. Un ajuste de calidad permite al usuario variar la velocidad de bits del sonido comprimido.
Tanto xWMA como XMA2 tienen su origen en los códecs desarrollados para Windows Media Audio (WMA) y ambos se han desarrollado específicamente para juegos de XBOX. El subconjunto de códecs y parámetros disponibles que usa XMA2 es más pequeño que el subconjunto que usa xWMA. Aunque xWMA y XMA2 se desarrollaron para XBOX, no son intercambiables: los encabezados de cada formato de archivo difieren y los formatos son incompatibles con las versiones para PC de Windows. Los códecs que se usan para XMA2 y xWMA también son ligeramente diferentes, por lo que cada uno tendrá sus propios artefactos derivados del sistema de compresión que se usa.
En este tema:

Codificación de xWMA

Para codificar datos de audio a xWMA, use la herramienta de línea de comandos xWMAEncode o una herramienta personalizada que se base en XWMAEncoder.lib.

xWMAEncode

Para codificar archivos de audio como xWMA para usarlos con XAudio2, use el codificador de línea de comandos de xWMA.

XWMAEncoder.lib

XWMAEncoder.lib es una biblioteca de vinculación estática que está disponible como alternativa a la herramienta de línea de comandos codificador de línea de comandos de xWMA. Sus herramientas personalizadas se basan en esta biblioteca para realizar la codificación xWMA mediante la función XWMAEncoder. Para obtener detalles y ejemplos de uso de esta función, consulte la documentación de XBOX 360.

Descodificación de xWMA

La descodificación por software de xWMA es compatible en Windows y en XBOX One en XAudio2, así como a través de la API XWMADecode.

Bucles en xWMA

xWMA no admite regiones de bucle ni bucles de paquetes arbitrarios dentro de un archivo xWMA. Solo se puede reproducir en bucle un archivo xWMA completo. En XAudio2, xWMA tiene restricciones relacionadas con los bucles para los valores del XAUDIO2_BUFFER que se pasa a IXAudio2SourceVoice::SubmitSourceBuffer. Si todos los datos de audio del archivo xWMA se envían como un único búfer y el usuario quiere reproducirlos en bucle, deben cumplirse las siguientes restricciones.
  1. XAUDIO2_BUFFER.LoopBegin siempre debe ser cero.
  2. XAUDIO2_BUFFER.LoopLength debe ser cero o el tamaño, en muestras, de los datos xWMA del archivo completo.
  3. XAUDIO2_BUFFER.LoopCount puede tener cualquier valor.
  4. XAUDIO2_BUFFER.Flags debe establecerse en XAUDIO2_END_OF_STREAM.
Si los datos de audio xWMA se envían como más de un búfer, el audio solo se puede reproducir en bucle manualmente reenviando la serie de búferes. Como es posible que se introduzca un período de silencio mientras el audio xWMA se reproduce en bucle, los bucles de audio xWMA generalmente deben usarse solo con sonidos que tengan fundidos de entrada y salida suaves. Algunos ejemplos son los sonidos de las olas del mar y ciertos tipos de ruido ambiental sutil.

Estructura de un archivo xWMA

Un archivo xWMA es un archivo RIFF estándar con los siguientes tipos de fragmentos (chunks). | FCC del fragmento| Descripción| | --- | --- | --- | --- | | RIFF| El fragmento RIFF estándar contiene lo siguiente:
1. En los primeros cuatro bytes de su sección de datos, contiene un tipo de archivo con el valor XWMA.
2. En el resto de la sección de datos, contiene los demás fragmentos del archivo. | | fmt| Este fragmento contiene el encabezado de formato del archivo xWMA. Los datos de este fragmento corresponden a una estructura WAVEFORMATEX para datos xWMA con uno o dos canales, o a una estructura WAVEFORMATEXTENSIBLE para datos xWMA con tres o más canales. | | data| Este fragmento contiene los datos de audio xWMA codificados. Cuando se usa xWMA en XAudio2, el contenido del fragmento de datos se leerá en un búfer y se pasará a una voz de origen como el miembro pAudioData de una estructura XAUDIO2_BUFFER. No es necesario intercambiar los bytes del contenido del fragmento de datos. | | dpds| Este fragmento contiene la matriz de tamaños acumulados de datos de paquetes descodificados, donde cada elemento es el número de bytes acumulados después de que el paquete xWMA correspondiente se descodifica en orden. El tamaño de este fragmento, medido en UINT32, y el contenido de su sección de datos se usan en XAudio2 para rellenar una estructura XAUDIO2_BUFFER_WMA. |

Consulte también

Codificador de línea de comandos de xWMA
Última modificación el 28 de agosto de 2026