Compartir a través de


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
ACMERR_NOTPOSSIBLE
No se puede realizar la operación solicitada.
MMSYSERR_INVALFLAG
Al menos una marca no es válida.
MMSYSERR_INVALHANDLE
El identificador especificado no es válido.
MMSYSERR_INVALPARAM
Al menos un parámetro no es válido.
MMSYSERR_NOMEM
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

Consulte también

Funciones de compresión de audio

Administrador de compresión de audio