Função acmStreamOpen (msacm.h)
A função acmStreamOpen abre um fluxo de conversão do ACM. Os fluxos de conversão são usados para converter dados de um formato de áudio especificado em outro.
Sintaxe
MMRESULT ACMAPI acmStreamOpen(
LPHACMSTREAM phas,
HACMDRIVER had,
LPWAVEFORMATEX pwfxSrc,
LPWAVEFORMATEX pwfxDst,
LPWAVEFILTER pwfltr,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
Parâmetros
phas
Ponteiro para um identificador que receberá o novo identificador de fluxo que pode ser usado para executar conversões. Esse identificador é usado para identificar o fluxo em chamadas para outras funções de conversão de fluxo do ACM. Se o sinalizador ACM_STREAMOPENF_QUERY for especificado, esse parâmetro deverá ser NULL.
had
Identificador para um driver do ACM. Se esse identificador for especificado, ele identificará um driver específico a ser usado para um fluxo de conversão. Se esse parâmetro for NULL, todos os drivers ACM instalados adequados serão consultados até que uma correspondência seja encontrada.
pwfxSrc
Ponteiro para uma estrutura WAVEFORMATEX que identifica o formato de origem desejado para a conversão.
pwfxDst
Ponteiro para uma estrutura WAVEFORMATEX que identifica o formato de destino desejado para a conversão.
pwfltr
Ponteiro para uma estrutura WAVEFILTER que identifica a operação de filtragem desejada a ser executada no fluxo de conversão. Se nenhuma operação de filtragem for desejada, esse parâmetro poderá ser NULL. Se um filtro for especificado, os formatos de origem (pwfxSrc) e destino (pwfxDst) deverão ser os mesmos.
dwCallback
Ponteiro para uma função de retorno de chamada, um identificador de uma janela ou um identificador de um evento. Uma função de retorno de chamada será chamada somente se o fluxo de conversão for aberto com o sinalizador ACM_STREAMOPENF_ASYNC. Uma função de retorno de chamada é notificada quando o fluxo de conversão é aberto ou fechado e depois que cada buffer é convertido. Se o fluxo de conversão for aberto sem o sinalizador ACM_STREAMOPENF_ASYNC, esse parâmetro deverá ser definido como zero.
dwInstance
Dados de instância de usuário passados para a função de retorno de chamada especificada pelo parâmetro dwCallback . Esse parâmetro não é usado com retornos de chamada de janela e evento. Se o fluxo de conversão for aberto sem o sinalizador ACM_STREAMOPENF_ASYNC, esse parâmetro deverá ser definido como zero.
fdwOpen
Sinalizadores para abrir o fluxo de conversão. Os valores a seguir são definidos.
[ACMSTREAMHEADER] Estrutura (./ns-msacm-acmstreamheader.md) para o sinalizador ACMSTREAMHEADER_STATUSF_DONE.Valor | Significado |
---|---|
ACM_STREAMOPENF_ASYNC | |
ACM_STREAMOPENF_NONREALTIME | O ACM não considerará restrições de tempo ao converter os dados. Por padrão, o driver tentará converter os dados em tempo real. Para alguns formatos, especificar esse sinalizador pode melhorar a qualidade do áudio ou outras características. |
ACM_STREAMOPENF_QUERY | O ACM será consultado para determinar se ele dá suporte à conversão fornecida. Um fluxo de conversão não será aberto e nenhum identificador será retornado no parâmetro phas . |
CALLBACK_EVENT | O parâmetro dwCallback é um identificador de um evento. |
CALLBACK_FUNCTION | O parâmetro dwCallback é um endereço de procedimento de retorno de chamada. O protótipo de função deve estar em conformidade com o protótipo acmStreamConvertCallback . |
CALLBACK_WINDOW | O parâmetro dwCallback é um identificador de janela. |
Valor retornado
Retornará zero se tiver êxito ou um erro, caso contrário. Os valores de erro possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
A operação solicitada não pode ser executada. |
|
Pelo menos um sinalizador é inválido. |
|
O identificador especificado é inválido. |
|
Pelo menos um parâmetro é inválido. |
|
O sistema não pode alocar recursos. |
Comentários
Se um driver do ACM não puder executar conversões em tempo real e o sinalizador ACM_STREAMOPENF_NONREALTIME não for especificado para o parâmetro fdwOpen , a operação aberta falhará ao retornar um código de erro ACMERR_NOTPOSSIBLE. Um aplicativo pode usar o sinalizador ACM_STREAMOPENF_QUERY para determinar se há suporte para conversões em tempo real para entrada.
Se um aplicativo usar uma janela para receber informações de retorno de chamada, as mensagens MM_ACM_OPEN, MM_ACM_CLOSE e MM_ACM_DONE serão enviadas para a função de procedimento de janela para indicar o progresso do fluxo de conversão. Nesse caso, a estrutura ACMSTREAMHEADER para MM_ACM_DONE, mas não é usada para MM_ACM_OPEN e MM_ACM_CLOSE.
Se um aplicativo usar uma função para receber informações de retorno de chamada, as mensagens MM_ACM_OPEN, MM_ACM_CLOSE e MM_ACM_DONE serão enviadas para a função para indicar o progresso da saída de áudio de forma de onda. A função de retorno de chamada deve residir em uma DLL (biblioteca de vínculo dinâmico).
Se um aplicativo usar um evento para notificação de retorno de chamada, o evento será sinalizado para indicar o progresso do fluxo de conversão. O evento será sinalizado quando um fluxo for aberto, depois que cada buffer for convertido e quando o fluxo for fechado.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | msacm.h |
Biblioteca | Msacm32.lib |
DLL | Msacm32.dll |