Partilhar via


Convertendo dados de um formato para outro

[A funcionalidade associada a esta página, Gestor de Compressão de Áudio, é uma funcionalidade herdada. A Microsoft recomenda vivamente que o novo código não utilize esta funcionalidade.]

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 e 16 bits para 44 kHz e 8 bits.

As seguintes funções do ACM suportam a 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çãoacmStreamSizecalcula o tamanho apropriado do buffer de origem ou destino.
  • A funçãoacmStreamPrepareHeaderprepara buffers de origem e destino para serem usados em uma conversão.
  • A funçãoacmStreamConvertconverte 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 pelo acmStreamPrepareHeader. Você deve chamar essa função antes de liberar os buffers de origem e destino.
  • A função acmStreamClose fecha um fluxo de conversão.

Ao converter dados, primeiro identifique o formato de origem e, em seguida, 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 escolha de formato do usuário.

Quando você conhece os formatos de origem e destino, pode usar acmStreamOpen para abrir um fluxo de conversão. Em seguida, você pode usar o 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 estiver concluída, use acmStreamUnprepareHeader para limpar os buffers e, em seguida, use acmStreamClose para fechar o fluxo de conversão.