fonction acmStreamOpen (msacm.h)

La fonction acmStreamOpen ouvre un flux de conversion ACM. Les flux de conversion sont utilisés pour convertir des données d’un format audio spécifié vers un autre.

Syntaxe

MMRESULT ACMAPI acmStreamOpen(
  LPHACMSTREAM   phas,
  HACMDRIVER     had,
  LPWAVEFORMATEX pwfxSrc,
  LPWAVEFORMATEX pwfxDst,
  LPWAVEFILTER   pwfltr,
  DWORD_PTR      dwCallback,
  DWORD_PTR      dwInstance,
  DWORD          fdwOpen
);

Paramètres

phas

Pointeur vers un handle qui recevra le nouveau handle de flux qui peut être utilisé pour effectuer des conversions. Ce handle est utilisé pour identifier le flux dans les appels à d’autres fonctions de conversion de flux ACM. Si l’indicateur ACM_STREAMOPENF_QUERY est spécifié, ce paramètre doit avoir la valeur NULL.

had

Gérer vers un pilote ACM. Si ce handle est spécifié, il identifie un pilote spécifique à utiliser pour un flux de conversion. Si ce paramètre a la valeur NULL, tous les pilotes ACM installés appropriés sont interrogés jusqu’à ce qu’une correspondance soit trouvée.

pwfxSrc

Pointeur vers une structure WAVEFORMATEX qui identifie le format source souhaité pour la conversion.

pwfxDst

Pointeur vers une structure WAVEFORMATEX qui identifie le format de destination souhaité pour la conversion.

pwfltr

Pointeur vers une structure WAVEFILTER qui identifie l’opération de filtrage souhaitée à effectuer sur le flux de conversion. Si aucune opération de filtrage n’est souhaitée, ce paramètre peut avoir la valeur NULL. Si un filtre est spécifié, les formats source (pwfxSrc) et de destination (pwfxDst) doivent être identiques.

dwCallback

Pointeur vers une fonction de rappel, un handle d’une fenêtre ou un handle d’un événement. Une fonction de rappel est appelée uniquement si le flux de conversion est ouvert avec l’indicateur ACM_STREAMOPENF_ASYNC. Une fonction de rappel est avertie lorsque le flux de conversion est ouvert ou fermé et après la conversion de chaque mémoire tampon. Si le flux de conversion est ouvert sans l’indicateur ACM_STREAMOPENF_ASYNC, ce paramètre doit être défini sur zéro.

dwInstance

Les données instance l’utilisateur transmises à la fonction de rappel spécifiée par le paramètre dwCallback. Ce paramètre n’est pas utilisé avec les rappels de fenêtres et d’événements. Si le flux de conversion est ouvert sans l’indicateur ACM_STREAMOPENF_ASYNC, ce paramètre doit être défini sur zéro.

fdwOpen

Indicateurs pour l’ouverture du flux de conversion. Les valeurs suivantes sont définies.

[ACMSTREAMHEADER] Structure (./ns-msacm-acmstreamheader.md) pour l’indicateur ACMSTREAMHEADER_STATUSF_DONE.
Valeur Signification
ACM_STREAMOPENF_ASYNC
ACM_STREAMOPENF_NONREALTIME ACM ne prend pas en compte les contraintes de temps lors de la conversion des données. Par défaut, le pilote tente de convertir les données en temps réel. Pour certains formats, la spécification de cet indicateur peut améliorer la qualité audio ou d’autres caractéristiques.
ACM_STREAMOPENF_QUERY ACM sera interrogé pour déterminer s’il prend en charge la conversion donnée. Un flux de conversion n’est pas ouvert et aucun handle n’est retourné dans le paramètre phas .
CALLBACK_EVENT Le paramètre dwCallback est un handle d’un événement.
CALLBACK_FUNCTION Le paramètre dwCallback est une adresse de procédure de rappel. Le prototype de fonction doit être conforme au prototype acmStreamConvertCallback .
CALLBACK_WINDOW Le paramètre dwCallback est un handle de fenêtre.

Valeur retournée

Retourne zéro en cas de réussite ou d’erreur dans le cas contraire. Les valeurs d’erreur possibles sont les suivantes.

Code de retour Description
ACMERR_NOTPOSSIBLE
Impossible d’effectuer l’opération demandée.
MMSYSERR_INVALFLAG
Au moins un indicateur n’est pas valide.
MMSYSERR_INVALHANDLE
Le handle spécifié n’est pas valide.
MMSYSERR_INVALPARAM
Au moins un paramètre n’est pas valide.
MMSYSERR_NOMEM
Le système ne peut pas allouer de ressources.

Notes

Si un pilote ACM ne peut pas effectuer de conversions en temps réel et que l’indicateur ACM_STREAMOPENF_NONREALTIME n’est pas spécifié pour le paramètre fdwOpen , l’opération d’ouverture échoue à renvoyer un code d’erreur ACMERR_NOTPOSSIBLE. Une application peut utiliser l’indicateur ACM_STREAMOPENF_QUERY pour déterminer si les conversions en temps réel sont prises en charge pour l’entrée.

Si une application utilise une fenêtre pour recevoir des informations de rappel, les messages MM_ACM_OPEN, MM_ACM_CLOSE et MM_ACM_DONE sont envoyés à la fonction de procédure de fenêtre pour indiquer la progression du flux de conversion. Dans ce cas, la structure ACMSTREAMHEADER pour MM_ACM_DONE, mais elle n’est pas utilisée pour MM_ACM_OPEN et MM_ACM_CLOSE.

Si une application utilise une fonction pour recevoir des informations de rappel, les messages MM_ACM_OPEN, MM_ACM_CLOSE et MM_ACM_DONE sont envoyés à la fonction pour indiquer la progression de la sortie waveform-audio. La fonction de rappel doit résider dans une bibliothèque de liens dynamiques (DLL).

Si une application utilise un événement pour la notification de rappel, l’événement est signalé pour indiquer la progression du flux de conversion. L’événement est signalé lors de l’ouverture d’un flux, après la conversion de chaque mémoire tampon et de la fermeture du flux.

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête msacm.h
Bibliothèque Msacm32.lib
DLL Msacm32.dll

Voir aussi

Fonctions de compression audio

Gestionnaire de compression audio