Convertir datos de un formato a otro
[La característica asociada a esta página, Administrador de compresión de audio, es una característica heredada. Microsoft recomienda encarecidamente que el nuevo código no use esta característica.
ACM usa funciones de flujo para admitir la conversión de formato de datos. Los convertidores del ACM cambian el formato, pero no el tipo de datos. Por ejemplo, un módulo convertidor puede cambiar datos de 44 kHz, de 16 bits a datos de 44 kHz, de 8 bits.
Las siguientes funciones de ACM admiten la conversión de formato de datos. Se muestran en el orden en que normalmente los usaría.
- La función acmStreamOpen abre un flujo de conversión.
- La función acmStreamSize calcula el tamaño adecuado del búfer de origen o destino.
- La función acmStreamPrepareHeader prepara los búferes de origen y destino que se usarán en una conversión.
- La función acmStreamConvert convierte los datos en un búfer de origen en el formato de destino, escribiendo los datos convertidos en el búfer de destino.
- La función acmStreamUnprepareHeader limpia los búferes de origen y destino preparados por acmStreamPrepareHeader. Debe llamar a esta función antes de liberar los búferes de origen y destino.
- La función acmStreamClose cierra una secuencia de conversión.
Al convertir datos, identifique primero el formato de origen y, a continuación, elija el formato de destino. La manera más fácil de hacerlo es mediante la función acmFormatChoose , que muestra un cuadro de diálogo de selección de formato y devuelve la opción de formato del usuario.
Cuando conozca los formatos de origen y destino, puede usar acmStreamOpen para abrir una secuencia de conversión. A continuación, puede usar la función acmStreamSize para determinar los tamaños de búfer adecuados.
El siguiente paso consiste en preparar los búferes que se usarán en la conversión mediante acmStreamPrepareHeader.
Para realizar la conversión, use acmStreamConvert hasta que se hayan procesado todos los búferes. Una vez completada la conversión, use acmStreamUnprepareHeader para limpiar los búferes y, a continuación, use acmStreamClose para cerrar la secuencia de conversión.