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 façon logicielle par XAudio2. xWMA utilise le format de flux binaire WMA dans un wrapper léger et est utile pour les dialogues et la musique lorsqu’une faible utilisation du processeur peut être tolérée en contrepartie d’une meilleure compression. Un paramètre de qualité permet à l’utilisateur de faire varier le débit binaire du son compressé.
xWMA et XMA2 tirent tous deux leur origine des 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 petit que celui utilisé par xWMA. Bien que xWMA et XMA2 aient tous deux é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, de sorte que chacun aura ses propres artefacts issus du 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 repose sur XWMAEncoder.lib.

xWMAEncode

Pour encoder des fichiers audio en xWMA afin de les utiliser avec XAudio2, utilisez l’encodeur xWMA en ligne de commande.

XWMAEncoder.lib

XWMAEncoder.lib est une bibliothèque liée statiquement, disponible comme solution de rechange à l’outil en ligne de commande encodeur xWMA en ligne de commande. Vos outils personnalisés reposent sur cette bibliothèque pour effectuer l’encodage xWMA à l’aide de la fonction XWMAEncoder. Pour obtenir des 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 qu’au moyen de l’API xWMADecode.

Mise en boucle xWMA

xWMA ne prend pas en charge les régions de boucle ni la mise en boucle de paquets arbitraires dans un fichier xWMA. Seul un fichier xWMA entier peut être mis en boucle. Dans XAudio2, xWMA comporte des restrictions liées à la mise en boucle 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 zéro.
  2. XAUDIO2_BUFFER.LoopLength doit être 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 plus d’une mémoire tampon, l’audio ne peut être mis en boucle que manuellement en soumettant de nouveau la série de mémoires tampons. Comme une période de silence peut être introduite pendant la mise en boucle de l’audio xWMA, la mise en boucle de l’audio xWMA ne devrait généralement être utilisée qu’avec des sons comportant des fondus d’entrée et de sortie doux. Par exemple, le bruit des vagues de l’océan et certains types de bruits ambiants subtils.

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 ayant 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 sera 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, où chaque élément correspond au nombre d’octets accumulé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