Condividi tramite


Conversione di dati da un formato a un altro

[La funzionalità associata a questa pagina, Gestione compressione audio, è una funzionalità legacy. Microsoft consiglia vivamente che il nuovo codice non usi questa funzionalità.

ACM usa funzioni di flusso per supportare la conversione del formato dati. I convertitori in ACM modificano il formato, ma non il tipo di dati. Ad esempio, un modulo di convertitore può modificare i dati a 44 kHz, a 16 bit in dati a 44 kHz e a 8 bit.

Le funzioni ACM seguenti supportano la conversione del formato dati. Sono elencati nell'ordine in cui vengono in genere usati.

  • La funzione acmStreamOpen apre un flusso di conversione.
  • La funzione acmStreamSize calcola le dimensioni appropriate del buffer di origine o di destinazione.
  • La funzione acmStreamPrepareHeader prepara i buffer di origine e di destinazione da usare in una conversione.
  • La funzione acmStreamConvert converte i dati in un buffer di origine nel formato di destinazione, scrivendo i dati convertiti nel buffer di destinazione.
  • La funzione acmStreamUnprepareHeader pulisce i buffer di origine e di destinazione preparati da acmStreamPrepareHeader. È necessario chiamare questa funzione prima di liberare i buffer di origine e di destinazione.
  • La funzione acmStreamClose chiude un flusso di conversione.

Quando si convertono i dati, identificare prima il formato di origine e quindi scegliere il formato di destinazione. Il modo più semplice per eseguire questa operazione consiste nell'usare la funzione acmFormatChoose , che visualizza una finestra di dialogo di selezione del formato e restituisce la scelta del formato dell'utente.

Quando si conoscono i formati di origine e di destinazione, è possibile usare acmStreamOpen per aprire un flusso di conversione. È quindi possibile usare la funzione acmStreamSize per determinare le dimensioni del buffer appropriate.

Il passaggio successivo consiste nel preparare i buffer da usare nella conversione usando acmStreamPrepareHeader.

Per eseguire la conversione, usare acmStreamConvert fino a quando non vengono elaborati tutti i buffer. Al termine della conversione, usare acmStreamUnprepareHeader per pulire i buffer e quindi usare acmStreamClose per chiudere il flusso di conversione.