Skip to main content
xWMA est un sous-ensemble du format de compression Windows Media Audio (WMA) Professional. Le décodage xWMA est pris en charge de manière logicielle par XAudio2. xWMA utilise le format de flux binaire WMA dans un wrapper léger et s’avère utile pour les dialogues et la musique lorsqu’une faible utilisation du processeur est acceptable en contrepartie d’une compression plus élevée. Un paramètre de qualité permet à l’utilisateur de faire varier le débit binaire du son compressé.
xWMA et XMA2 trouvent tous deux leur origine dans les codecs développés pour Windows Media Audio (WMA) et ont tous deux été développés spécifiquement pour les jeux XBOX. Le sous-ensemble de codecs et de paramètres disponibles utilisé par XMA2 est plus restreint que celui utilisé par xWMA. Bien que xWMA et XMA2 aient été développés pour XBOX, ils ne sont pas interchangeables : les en-têtes de chaque format de fichier diffèrent, et les formats sont incompatibles avec les versions PC de Windows. Les codecs utilisés pour XMA2 et xWMA sont également légèrement différents, si bien que chacun présentera ses propres artefacts liés au système de compression utilisé.
Dans cette rubrique :

Encodage xWMA

Pour encoder des données audio en xWMA, utilisez l’outil en ligne de commande xWMAEncode ou un outil personnalisé qui s’appuie sur XWMAEncoder.lib.

xWMAEncode

Pour encoder des fichiers audio au format xWMA en vue de leur utilisation avec XAudio2, utilisez l’encodeur xWMA en ligne de commande.

XWMAEncoder.lib

XWMAEncoder.lib est une bibliothèque liée statiquement, disponible comme alternative à l’outil en ligne de commande encodeur xWMA en ligne de commande. Vos outils personnalisés s’appuient sur cette bibliothèque pour effectuer l’encodage xWMA à l’aide de la fonction XWMAEncoder. Pour plus de détails et des exemples d’utilisation de cette fonction, consultez la documentation de la XBOX 360.

Décodage xWMA

Le décodage logiciel de xWMA est pris en charge sur Windows et sur XBOX One dans XAudio2, ainsi que via l’API xWMADecode.

Bouclage xWMA

xWMA ne prend pas en charge les régions de boucle ni le bouclage de paquets arbitraires au sein d’un fichier xWMA. Seul un fichier xWMA entier peut être mis en boucle. Dans XAudio2, xWMA impose des restrictions liées au bouclage pour les valeurs de la structure XAUDIO2_BUFFER transmise à IXAudio2SourceVoice::SubmitSourceBuffer. Si toutes les données audio du fichier xWMA sont soumises dans une seule mémoire tampon et que l’utilisateur souhaite les mettre en boucle, les restrictions suivantes doivent être respectées.
  1. XAUDIO2_BUFFER.LoopBegin doit toujours être égal à zéro.
  2. XAUDIO2_BUFFER.LoopLength doit être égal à zéro ou à la taille, en échantillons, de l’ensemble des données xWMA du fichier.
  3. XAUDIO2_BUFFER.LoopCount peut avoir n’importe quelle valeur.
  4. XAUDIO2_BUFFER.Flags doit être défini sur XAUDIO2_END_OF_STREAM.
Si les données audio xWMA sont soumises dans plusieurs mémoires tampons, l’audio ne peut être mis en boucle que manuellement, en soumettant à nouveau la série de mémoires tampons. Étant donné qu’une période de silence peut être introduite lors du bouclage de l’audio xWMA, le bouclage de l’audio xWMA ne doit généralement être utilisé qu’avec des sons comportant des fondus d’entrée et de sortie progressifs. Citons par exemple le son des vagues de l’océan et certains types de bruits ambiants discrets.

Structure d’un fichier xWMA

Un fichier xWMA est un fichier RIFF standard comportant les types de blocs suivants. | FCC du bloc| Description| | --- | --- | --- | --- | | RIFF| Le bloc RIFF standard contient les éléments suivants :
1. Dans les quatre premiers octets de sa section de données, un type de fichier avec la valeur XWMA.
2. Dans le reste de la section de données, les autres blocs du fichier. | | fmt| Ce bloc contient l’en-tête de format du fichier xWMA. Les données de ce bloc correspondent à une structure WAVEFORMATEX pour les données xWMA à un ou deux canaux, ou à une structure WAVEFORMATEXTENSIBLE pour les données xWMA à trois canaux ou plus. | | data| Ce bloc contient les données audio xWMA encodées. Lorsque xWMA est utilisé dans XAudio2, le contenu du bloc de données est lu dans une mémoire tampon et transmis à une voix source en tant que membre pAudioData d’une structure XAUDIO2_BUFFER. Le contenu du bloc de données n’a pas besoin de faire l’objet d’une permutation d’octets. | | dpds| Ce bloc contient le tableau des tailles de données cumulées des paquets décodés, dans lequel chaque élément correspond au nombre d’octets cumulés après le décodage, dans l’ordre, du paquet xWMA correspondant. La taille de ce bloc, mesurée en UINT32, et le contenu de sa section de données sont utilisés dans XAudio2 pour remplir une structure XAUDIO2_BUFFER_WMA. |

Voir aussi

Encodeur xWMA en ligne de commande
Last modified on October 6, 2026