Share via


Resource Interchange File Format (RIFF)

Questa panoramica descrive il formato file di interscambio risorse (RIFF), usato nei file con estensione wav. RIFF è il formato tipico da cui verranno caricati i dati audio per XAudio2.

RIFF

Un file RIFF è costituito da più sezioni discrete di dati denominati blocchi.

Identificatori FOURCC

Il tipo di dati in un blocco è indicato da un identificatore di codice a quattro caratteri (FOURCC). Un FOURCC è un intero senza segno a 32 bit creato concatenando quattro caratteri ASCII usati per identificare i tipi di blocchi in un file RIFF. Ad esempio, il FOURCC "abcd" viene rappresentato in un sistema little-endian come 0x64636261. FOURCCs può contenere caratteri di spazio, quindi "abc" è un FOURCC valido. I file audio usano i codici FOURCC per identificare blocchi di formato audio, blocchi di dati audio e qualsiasi altro blocco specifico per il formato audio.

La tabella seguente mostra gli identificatori FOURCC che possono essere previsti nei formati audio supportati da XAudio2.

Formato Identificatori FOURCC Informazioni aggiuntive
PCM "RIFF", "fmt" , "data"  
ADPCM "RIFF", "fmt", "data", "smpl", "wsmpl" Per una descrizione degli identificatori FOURCC specifici di ADPCM, vedere Panoramica di ADPCM .

 

Gli identificatori FOURCC "RIFF", "fmt" e "data" sono comuni a tutti i formati supportati. La tabella seguente descrive gli identificatori FOURCC trovati in tutti i formati supportati.

Identificatore FOURCC Descrizione
"RIFF" Blocco RIFF standard contenente un tipo di file con il valore "WAVE" o "XWMA" nei primi quattro byte della sezione dati e gli altri blocchi nel file nella parte restante della sezione dati.
"fmt" Contiene l'intestazione di formato per il file audio. I dati in questo blocco corrispondono a una delle strutture seguenti: WAVEFORMATEX, WAVEFORMATEXTENSIBLE ADPCMWAVEFORMAT.
"data" Contiene dati audio per il file audio. In XAudio2 il contenuto del blocco di dati verrà letto in un buffer e passato a una voce di origine come membro pAudioData di una struttura XAUDIO2_BUFFER .

 

Chunks

Un file RIFF è costituito da un blocco RIFF contenente zero o più blocchi.

  • Il blocco RIFF ha il formato seguente:

    "RIFF", fileSize, fileType, dati

    Dove "RIFF" è il codice FOURCC letterale "RIFF", fileSize è un valore a 4 byte che assegna le dimensioni dei dati nel file e fileType è un FOURCC che identifica il tipo di file specifico. Il valore di fileSize include le dimensioni di fileType FOURCC più le dimensioni dei dati seguenti, ma non include le dimensioni del FOURCC "RIFF" o le dimensioni di fileSize. I dati sono costituiti da blocchi in qualsiasi ordine.

  • Altri blocchi hanno il formato seguente:

    chunkID, chunkSize, data
    

    Dove chunkID è un FOURCC che identifica i dati contenuti nel blocco, chunkSize è un valore a 4 byte che fornisce le dimensioni della sezione dei dati del blocco e i dati sono zero o più byte di dati. I dati vengono sempre inseriti nel limite WORD più vicino. chunkSize fornisce le dimensioni dei dati validi nel blocco. Non include la spaziatura interna, la dimensione di chunkID o la dimensione di chunkSize.

Per iniziare

Procedura: Riprodurre un suono con XAudio2

Guida di riferimento alla programmazione di XAudio2