Función acmStreamOpen (msacm.h)
La función acmStreamOpen abre un flujo de conversión de ACM. Las secuencias de conversión se usan para convertir datos de un formato de audio especificado a otro.
Sintaxis
MMRESULT ACMAPI acmStreamOpen(
LPHACMSTREAM phas,
HACMDRIVER had,
LPWAVEFORMATEX pwfxSrc,
LPWAVEFORMATEX pwfxDst,
LPWAVEFILTER pwfltr,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
Parámetros
phas
Puntero a un identificador que recibirá el nuevo identificador de flujo que se puede usar para realizar conversiones. Este identificador se usa para identificar el flujo en llamadas a otras funciones de conversión de flujos de ACM. Si se especifica la marca ACM_STREAMOPENF_QUERY, este parámetro debe ser NULL.
had
Identificador de un controlador ACM. Si se especifica este identificador, identifica un controlador específico que se usará para una secuencia de conversión. Si este parámetro es NULL, se consultan todos los controladores ACM instalados adecuados hasta que se encuentre una coincidencia.
pwfxSrc
Puntero a una estructura WAVEFORMATEX que identifica el formato de origen deseado para la conversión.
pwfxDst
Puntero a una estructura WAVEFORMATEX que identifica el formato de destino deseado para la conversión.
pwfltr
Puntero a una estructura WAVEFILTER que identifica la operación de filtrado deseada que se va a realizar en la secuencia de conversión. Si no se desea ninguna operación de filtrado, este parámetro puede ser NULL. Si se especifica un filtro, los formatos de origen (pwfxSrc) y de destino (pwfxDst) deben ser los mismos.
dwCallback
Puntero a una función de devolución de llamada, un identificador de una ventana o un identificador de un evento. Solo se llamará a una función de devolución de llamada si el flujo de conversión se abre con la marca ACM_STREAMOPENF_ASYNC. Se notifica a una función de devolución de llamada cuando se abre o cierra la secuencia de conversión y después de convertir cada búfer. Si el flujo de conversión se abre sin la marca ACM_STREAMOPENF_ASYNC, este parámetro debe establecerse en cero.
dwInstance
Datos de instancia de usuario pasados a la función de devolución de llamada especificada por el parámetro dwCallback . Este parámetro no se usa con devoluciones de llamada de ventana y eventos. Si el flujo de conversión se abre sin la marca ACM_STREAMOPENF_ASYNC, este parámetro debe establecerse en cero.
fdwOpen
Marcas para abrir el flujo de conversión. Se definen los valores siguientes.
[ACMSTREAMHEADER] (./ns-msacm-acmstreamheader.md) para la marca de ACMSTREAMHEADER_STATUSF_DONE.Valor | Significado |
---|---|
ACM_STREAMOPENF_ASYNC | |
ACM_STREAMOPENF_NONREALTIME | ACM no tendrá en cuenta las restricciones de tiempo al convertir los datos. De forma predeterminada, el controlador intentará convertir los datos en tiempo real. Para algunos formatos, especificar esta marca podría mejorar la calidad de audio u otras características. |
ACM_STREAMOPENF_QUERY | Se consultará ACM para determinar si admite la conversión especificada. No se abrirá un flujo de conversión y no se devolverá ningún identificador en el parámetro phas . |
CALLBACK_EVENT | El parámetro dwCallback es un identificador de un evento. |
CALLBACK_FUNCTION | El parámetro dwCallback es una dirección de procedimiento de devolución de llamada. El prototipo de función debe ajustarse al prototipo acmStreamConvertCallback . |
CALLBACK_WINDOW | El parámetro dwCallback es un identificador de ventana. |
Valor devuelto
Devuelve cero si es correcto o si se produce un error en caso contrario. Entre los valores de error posibles se incluyen los siguientes.
Código devuelto | Descripción |
---|---|
|
No se puede realizar la operación solicitada. |
|
Al menos una marca no es válida. |
|
El identificador especificado no es válido. |
|
Al menos un parámetro no es válido. |
|
El sistema no puede asignar recursos. |
Comentarios
Si un controlador ACM no puede realizar conversiones en tiempo real y no se especifica la marca ACM_STREAMOPENF_NONREALTIME para el parámetro fdwOpen , la operación abierta producirá un error al devolver un código de error de ACMERR_NOTPOSSIBLE. Una aplicación puede usar la marca ACM_STREAMOPENF_QUERY para determinar si se admiten conversiones en tiempo real para la entrada.
Si una aplicación usa una ventana para recibir información de devolución de llamada, los mensajes de MM_ACM_OPEN, MM_ACM_CLOSE y MM_ACM_DONE se envían a la función de procedimiento de ventana para indicar el progreso del flujo de conversión. En este caso, la estructura ACMSTREAMHEADER para MM_ACM_DONE, pero no se usa para MM_ACM_OPEN y MM_ACM_CLOSE.
Si una aplicación usa una función para recibir información de devolución de llamada, los mensajes MM_ACM_OPEN, MM_ACM_CLOSE y MM_ACM_DONE se envían a la función para indicar el progreso de la salida de audio de forma de onda. La función de devolución de llamada debe residir en una biblioteca de vínculos dinámicos (DLL).
Si una aplicación usa un evento para la notificación de devolución de llamada, se señala al evento para indicar el progreso del flujo de conversión. El evento se indicará cuando se abra una secuencia, después de convertir cada búfer y cuando se cierre la secuencia.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | msacm.h |
Library | Msacm32.lib |
Archivo DLL | Msacm32.dll |