Compartilhar via


RIFF (Resource Interchange File Format)

Essa visão geral descreve o RIFF (Formato de Arquivo de Intercâmbio de Recursos), que é usado em arquivos .wav. RIFF é o formato típico do qual os dados de áudio para XAudio2 serão carregados.

RIFF

Um arquivo RIFF é composto por várias seções discretas de dados chamadas partes.

Identificadores FOURCC

O tipo de dados em uma parte é indicado por um identificador de código de quatro caracteres (FOURCC). UM FOURCC é um inteiro sem sinal de 32 bits criado pela concatenação de quatro caracteres ASCII usados para identificar tipos de partes em um arquivo RIFF. Por exemplo, o FOURCC "abcd" é representado em um sistema little-endian como 0x64636261. FOURCCs podem conter caracteres de espaço, portanto, " abc" é um FOURCC válido. Os arquivos de áudio usam códigos FOURCC para identificar partes de formato de áudio, partes de dados de áudio e quaisquer outras partes específicas do formato de áudio.

A tabela a seguir mostra os identificadores FOURCC que podem ser esperados nos formatos de áudio com suporte do XAudio2.

Formatar Identificadores FOURCC Informações adicionais
PCM "RIFF", "fmt", "data"  
ADPCM "RIFF", "fmt", "data", "smpl", "wsmpl" Consulte Visão geral do ADPCM para obter uma descrição dos identificadores FOURCC específicos do ADPCM.

 

Os identificadores FOURCC "RIFF", "fmt" e "data" são comuns a todos os formatos com suporte. A tabela a seguir descreve os identificadores FOURCC encontrados em todos os formatos com suporte.

Identificador FOURCC Descrição
"RIFF" Parte RIFF padrão que contém um tipo de arquivo com o valor de "WAVE" ou "XWMA" nos quatro primeiros bytes de sua seção de dados e as outras partes no arquivo no restante de sua seção de dados.
"fmt" Contém o cabeçalho de formato do arquivo de áudio. Os dados nessa parte correspondem a uma das seguintes estruturas: WAVEFORMATEX, WAVEFORMATEXTENSIBLE ADPCMWAVEFORMAT.
"data" Contém dados de áudio para o arquivo de áudio. No XAudio2, o conteúdo da parte de dados será lido em um buffer e passado para uma voz de origem como o membro pAudioData de uma estrutura de XAUDIO2_BUFFER .

 

Chunks

Um arquivo RIFF consiste em uma parte RIFF que contém zero ou mais partes.

  • A parte DO RIFF tem a seguinte forma:

    "RIFF", fileSize, fileType, data

    Quando "RIFF" é o código LITERAL FOURCC "RIFF", fileSize é um valor de 4 bytes que fornece o tamanho dos dados no arquivo e fileType é um FOURCC que identifica o tipo de arquivo específico. O valor de fileSize inclui o tamanho de fileType FOURCC mais o tamanho dos dados a seguir, mas não inclui o tamanho do "RIFF" FOURCC ou o tamanho de fileSize. Os dados consistem em partes em qualquer ordem.

  • Outras partes têm o seguinte formato:

    chunkID, chunkSize, data
    

    Quando chunkID é um FOURCC que identifica os dados contidos na parte, chunkSize é um valor de 4 bytes que fornece o tamanho da seção de dados da parte e os dados são zero ou mais bytes de dados. Os dados são sempre adicionados ao limite word mais próximo. chunkSize fornece o tamanho dos dados válidos na parte. Ele não inclui o preenchimento, o tamanho de chunkID ou o tamanho de chunkSize.

Introdução

Como: Reproduzir um som com o XAudio2

Referência de programação em XAudio2