Compartilhar via


Convertendo dados de um formato para outro

[O recurso associado a esta página, Gerenciador de Compactação de Áudio, é um recurso herdado. A Microsoft recomenda fortemente que o novo código não use esse recurso.]

O ACM usa funções de fluxo para dar suporte à conversão de formato de dados. Os conversores no ACM alteram o formato, mas não o tipo de dados. Por exemplo, um módulo conversor pode alterar dados de 44 kHz, de 16 bits para dados de 44 kHz e de 8 bits.

As funções ACM a seguir dão suporte à conversão de formato de dados. Eles são listados na ordem em que você normalmente os usaria.

  • A função acmStreamOpen abre um fluxo de conversão.
  • A função acmStreamSize calcula o tamanho apropriado do buffer de origem ou destino.
  • A função acmStreamPrepareHeader prepara buffers de origem e de destino a serem usados em uma conversão.
  • A função acmStreamConvert converte dados em um buffer de origem no formato de destino, gravando os dados convertidos no buffer de destino.
  • A função acmStreamUnprepareHeader limpa os buffers de origem e destino preparados por acmStreamPrepareHeader. Você deve chamar essa função antes de liberar os buffers de origem e de destino.
  • A função acmStreamClose fecha um fluxo de conversão.

Ao converter dados, primeiro identifique o formato de origem e escolha o formato de destino. A maneira mais fácil de fazer isso é usando a função acmFormatChoose , que exibe uma caixa de diálogo de seleção de formato e retorna a opção de formato do usuário.

Quando você souber os formatos de origem e destino, poderá usar acmStreamOpen para abrir um fluxo de conversão. Em seguida, você pode usar a função acmStreamSize para determinar os tamanhos de buffer apropriados.

A próxima etapa é preparar os buffers a serem usados na conversão usando acmStreamPrepareHeader.

Para executar a conversão, use acmStreamConvert até que todos os buffers tenham sido processados. Quando a conversão for concluída, use acmStreamUnprepareHeader para limpo os buffers e, em seguida, use acmStreamClose para fechar o fluxo de conversão.