Conversion de données d’un format vers un autre
[La fonctionnalité associée à cette page, Le Gestionnaire de compression audio, est une fonctionnalité héritée. Microsoft recommande vivement que le nouveau code n’utilise pas cette fonctionnalité.]
ACM utilise des fonctions de flux pour prendre en charge la conversion de format de données. Les convertisseurs dans aCM modifient le format, mais pas le type de données. Par exemple, un module de convertisseur peut modifier des données de 44 kHz, 16 bits en 44 kHz, 8 bits.
Les fonctions ACM suivantes prennent en charge la conversion de format de données. Ils sont répertoriés dans l’ordre dans lequel vous les utiliseriez généralement.
- La fonction acmStreamOpen ouvre un flux de conversion.
- La fonction acmStreamSize calcule la taille appropriée de la mémoire tampon source ou de destination.
- La fonction acmStreamPrepareHeader prépare les mémoires tampons source et de destination à utiliser dans une conversion.
- La fonction acmStreamConvert convertit les données d’une mémoire tampon source au format de destination, en écrivant les données converties dans la mémoire tampon de destination.
- La fonction acmStreamUnprepareHeader nettoie les mémoires tampons source et de destination préparées par acmStreamPrepareHeader. Vous devez appeler cette fonction avant de libérer les mémoires tampons source et de destination.
- La fonction acmStreamClose ferme un flux de conversion.
Lors de la conversion de données, identifiez d’abord le format source, puis choisissez le format de destination. La méthode la plus simple consiste à utiliser la fonction acmFormatChoose , qui affiche une boîte de dialogue de sélection de format et retourne le choix de format de l’utilisateur.
Lorsque vous connaissez les formats source et de destination, vous pouvez utiliser acmStreamOpen pour ouvrir un flux de conversion. Vous pouvez ensuite utiliser la fonction acmStreamSize pour déterminer les tailles de mémoire tampon appropriées.
L’étape suivante consiste à préparer les mémoires tampons à utiliser dans la conversion à l’aide de acmStreamPrepareHeader.
Pour effectuer la conversion, utilisez acmStreamConvert jusqu’à ce que toutes les mémoires tampons aient été traitées. Une fois la conversion terminée, utilisez acmStreamUnprepareHeader pour propre les mémoires tampons, puis utilisez acmStreamClose pour fermer le flux de conversion.