> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Visão geral do xWMA

> Formato de áudio xWMA para jogos XBOX: um subconjunto do WMA Professional decodificado por software pelo XAudio2 para fluxos compactados de diálogo e música.

O xWMA é um subconjunto do formato de compactação WMA (Windows Media Audio) Professional. A decodificação de xWMA é compatível com o [XAudio2](/pt-BR/build/console-features/audio/overviews/xaudio2-overview) por software. O xWMA usa o formato de fluxo de bits do WMA em um wrapper leve e é útil para diálogos e músicas em que um pequeno uso da CPU pode ser aceito como custo para alcançar uma compactação maior. Uma configuração de qualidade permite que o usuário varie a taxa de bits do som compactado.

<Note>Tanto o xWMA quanto o XMA2 têm origem nos codecs desenvolvidos para o WMA (Windows Media Audio), e ambos foram desenvolvidos especificamente para jogos XBOX. O subconjunto dos codecs e parâmetros disponíveis usado pelo XMA2 é menor que o subconjunto usado pelo xWMA. Embora tanto o xWMA quanto o XMA2 tenham sido desenvolvidos para XBOX, eles não são intercambiáveis: os cabeçalhos de cada formato de arquivo são diferentes, e os formatos são incompatíveis com as versões do Windows para PC. Os codecs usados para XMA2 e xWMA também são ligeiramente diferentes, portanto, cada um terá seus próprios artefatos do sistema de compactação usado.</Note>

Neste tópico:

* [Codificação xWMA](#ID4EW)
* [Decodificação xWMA](#ID4E6B)
* [Loop de xWMA](#ID4ETD)
* [Estrutura de um arquivo xWMA](#ID4ESE)

<a id="ID4EW" />

## Codificação xWMA

Para codificar dados de áudio para xWMA, use a ferramenta de linha de comando xWMAEncode ou uma ferramenta personalizada que dependa de XWMAEncoder.lib.

### xWMAEncode

Para codificar arquivos de áudio como xWMA para uso com o XAudio2, use o [codificador de linha de comando xWMA](/pt-BR/build/console-features/audio/tools/xwmaencode-tools).

### XWMAEncoder.lib

XWMAEncoder.lib é uma biblioteca vinculada estaticamente que está disponível como alternativa à ferramenta de linha de comando [codificador de linha de comando xWMA](/pt-BR/build/console-features/audio/tools/xwmaencode-tools). Suas ferramentas personalizadas dependem dessa biblioteca para realizar a codificação xWMA usando a função **XWMAEncoder**. Para obter detalhes e exemplos de uso dessa função, consulte a documentação do XBOX 360.

<a id="ID4E6B" />

## Decodificação xWMA

A decodificação por software de xWMA é compatível com o Windows e com o XBOX One no XAudio2, bem como por meio da API xWMADecode.

| Tecnologia | Descrição |
| - | - |
| XACT | O XACT não é compatível com o XBOX One. |
| XAudio2 | Para usar dados codificados em xWMA no XAudio2, (1) inicialize uma estrutura WAVEFORMATEXTENSIBLE com valores específicos do xWMA e (2) passe a estrutura como argumento para [CreateSourceVoice](https://learn.microsoft.com/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2-createsourcevoice) ao criar uma voz de origem. Para ver um exemplo de carregamento e reprodução de sons no XAudio2, consulte [Como reproduzir um som com o XAudio2](https://msdn.microsoft.com/library/windows/desktop/ee415787\(v=vs.85\).aspx). |
| XWMADecode | Use a API XWMADecode para decodificar buffers xWMA em buffers PCM diretamente, sem usar o XAudio2. |

<a id="ID4ETD" />

## Loop de xWMA

O xWMA não oferece suporte a regiões de loop nem ao loop de pacotes arbitrários dentro de um arquivo xWMA. Somente um arquivo xWMA inteiro pode ser reproduzido em loop. No XAudio2, o xWMA tem restrições relacionadas a loop para os valores no [XAUDIO2\_BUFFER](https://learn.microsoft.com/windows/desktop/api/xaudio2/ns-xaudio2-xaudio2_buffer) passado para [IXAudio2SourceVoice::SubmitSourceBuffer](https://learn.microsoft.com/windows/desktop/api/xaudio2/nf-xaudio2-ixaudio2sourcevoice-submitsourcebuffer). Se todos os dados de áudio do arquivo xWMA forem enviados como um único buffer e o usuário quiser reproduzi-lo em loop, as restrições a seguir deverão ser atendidas.

1. XAUDIO2\_BUFFER.LoopBegin deve ser sempre zero.
2. XAUDIO2\_BUFFER.LoopLength deve ser zero ou o tamanho, em amostras, de todos os dados xWMA do arquivo.
3. XAUDIO2\_BUFFER.LoopCount pode ter qualquer valor.
4. XAUDIO2\_BUFFER.Flags deve ser definido como XAUDIO2\_END\_OF\_STREAM.

Se os dados de áudio xWMA forem enviados como mais de um buffer, o áudio só poderá ser reproduzido em loop manualmente, enviando novamente a série de buffers.

Como um período de silêncio pode ser introduzido enquanto o áudio xWMA é reproduzido em loop, o loop de áudio xWMA geralmente deve ser usado apenas com sons que tenham fade-ins e fade-outs suaves. Exemplos incluem os sons de ondas do mar e certos tipos de ruído ambiente sutil.

<a id="ID4ESE" />

## Estrutura de um arquivo xWMA

Um arquivo xWMA é um arquivo RIFF padrão com os seguintes tipos de blocos.

\| FCC do bloco| Descrição|
\| --- | --- | --- | --- |
\| RIFF| O bloco RIFF padrão contém o seguinte: <br />1. Nos primeiros quatro bytes de sua seção de dados, contém um tipo de arquivo com o valor `XWMA`. <br /> 2. No restante da seção de dados, contém os outros blocos do arquivo. |
\| fmt| Esse bloco contém o cabeçalho de formato do arquivo xWMA. Os dados desse bloco correspondem a uma estrutura [WAVEFORMATEX](https://learn.microsoft.com/windows/desktop/api/mmreg/ns-mmreg-waveformatex) para dados xWMA com um ou dois canais, ou a uma estrutura WAVEFORMATEXTENSIBLE para dados xWMA com três ou mais canais. |
\| data| Esse bloco contém os dados de áudio xWMA codificados. Quando o xWMA é usado no XAudio2, o conteúdo do bloco data será lido em um buffer e passado para uma voz de origem como o membro pAudioData de uma estrutura [XAUDIO2\_BUFFER](https://learn.microsoft.com/windows/desktop/api/xaudio2/ns-xaudio2-xaudio2_buffer). O conteúdo do bloco data não precisa ter os bytes invertidos. |
\| dpds| Esse bloco contém a matriz de tamanho cumulativo de dados de pacotes decodificados, em que cada elemento é o número de bytes acumulados após o pacote xWMA correspondente ser decodificado em ordem. O tamanho desse bloco, medido em UINT32, e o conteúdo de sua seção de dados são usados no XAudio2 para preencher uma estrutura [XAUDIO2\_BUFFER\_WMA](https://learn.microsoft.com/windows/desktop/api/xaudio2/ns-xaudio2-xaudio2_buffer_wma). |

<a id="ID4EPG" />

## Confira também

[Codificador de linha de comando xWMA](/pt-BR/build/console-features/audio/tools/xwmaencode-tools)


## Related topics

- [A arquitetura de áudio no XBOX One](/pt-BR/build/console-features/audio/overviews/xbox-one-audio-architecture.md)
- [Visões gerais](/pt-BR/build/console-features/audio/overviews/index.md)
- [Visão geral do XMA2](/pt-BR/build/console-features/audio/overviews/xma2-overview.md)
- [Visão geral do SHAPE](/pt-BR/build/console-features/audio/overviews/shape-overview.md)
- [Visão geral do empacotamento](/pt-BR/build/core-features/common/packaging/overviews/packaging.md)
