Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[A funcionalidade associada a esta página, Multimedia File I/O, é uma funcionalidade herdada. Foi substituído por Source Reader. Source Reader foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize Source Reader em vez de de E/S de ficheiros multimédia, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O formato preferido para arquivos multimídia é o formato de arquivo de intercâmbio de recursos (RIFF). As funções de E/S do arquivo RIFF funcionam com os serviços básicos de E/S de arquivos em buffer e sem buffer. Você pode abrir, ler e gravar arquivos RIFF da mesma forma que outros tipos de arquivo. Para obter informações detalhadas sobre RIFF, consulte de funções e macros do AVIFile .
Os arquivos RIFF usam códigos de quatro caracteres para identificar elementos de arquivo. Esses códigos são quantidades de 32 bits que representam uma sequência de um a quatro caracteres alfanuméricos ASCII, acolchoados à direita com caracteres de espaço. O tipo de dados para códigos de quatro caracteres é FOURCC. Use o macro mmioFOURCC para converter quatro caracteres em um código de quatro caracteres. Para converter uma cadeia de caracteres terminada nula em um código de quatro caracteres, use a funçãommioStringToFOURCC.
O bloco de construção básico de um arquivo RIFF é uma parte . Um bloco é uma unidade lógica de dados multimídia, como um único quadro em um clipe de vídeo. Cada bloco contém os seguintes campos:
- Um código de quatro caracteres especificando o identificador de bloco
- Um valor de palavra dupla especificando o tamanho do membro de dados no bloco
- Um campo de dados
A ilustração a seguir mostra um bloco "RIFF" que contém dois subblocos.
Um pedaço contido em outro pedaço é um subbloco . Os únicos blocos permitidos para conter subblocos são aqueles com um identificador de bloco de "RIFF" ou "LIST". Um pedaço que contém outro pedaço é chamado de bloco pai. O primeiro bloco em um arquivo RIFF deve ser um bloco "RIFF". Todas as outras partes no arquivo são subpartes da parte "RIFF".
Os blocos "RIFF" incluem um campo adicional nos primeiros quatro bytes do campo de dados. Este campo adicional fornece o tipo de formulário do campo. O tipo de formulário é um código de quatro caracteres que identifica o formato dos dados armazenados no arquivo. Por exemplo, os arquivos de áudio de forma de onda da Microsoft têm um tipo de formulário de "WAVE".
Os blocos "LIST" também incluem um campo adicional nos primeiros quatro bytes do campo de dados. Este campo adicional contém o tipo de lista do campo. O tipo de lista é um código de quatro caracteres que identifica o conteúdo da lista. Por exemplo, um bloco "LIST" com um tipo de lista de "INFO" pode conter blocos "ICOP" e "ICRD" fornecendo informações de direitos autorais e data de criação. A ilustração a seguir mostra um bloco "RIFF" que contém um bloco "LIST" e um outro subbloco (o bloco "LIST" contém dois subblocos).
Os serviços de E/S de arquivos multimídia incluem duas funções que você pode usar para navegar entre partes em um arquivo RIFF: mmioAscend e mmioDescend. Você pode usar essas funções como funções de busca de alto nível. Quando você desce para um pedaço, a posição do arquivo é definida como o campo de dados do bloco (8 bytes do início do bloco). Para blocos "RIFF" e "LIST", a posição do arquivo é definida para o local após o tipo de formulário ou tipo de lista (12 bytes a partir do início do bloco). Quando você sai de um bloco, a posição do arquivo é definida para o local após o final do bloco.
Para criar um novo bloco, use a funçãommioCreateChunk para escrever um cabeçalho de bloco na posição atual em um arquivo aberto. As funções mmioAscend, mmioDescende mmioCreateChunk usam a estrutura deMMCKINFOpara especificar e recuperar informações sobre blocos "RIFF".