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.