Partager via


Méthode ISpatialAudioMetadataReader ::ReadNextItemCommand (spatialaudiometadata.h)

Lit les commandes de métadonnées et les données de valeur pour l’élément actif.

Syntaxe

HRESULT ReadNextItemCommand(
  [out] BYTE   *commandID,
  [in]  void   *valueBuffer,
  [in]  UINT32 maxValueBufferLength,
  [out] UINT32 *valueBufferLength
);

Paramètres

[out] commandID

Reçoit l’ID de commande pour la commande actuelle.

[in] valueBuffer

Pointeur vers une mémoire tampon qui reçoit des données spécifiques à la commande, comme spécifié par la définition de format de métadonnées. La mémoire tampon doit être au moins maxValueBufferLength pour garantir que toutes les commandes peuvent être récupérées avec succès.

[in] maxValueBufferLength

Taille maximale d’une valeur de commande.

[out] valueBufferLength

Taille, en octets, des données écrites dans le paramètre valueBuffer .

Valeur retournée

Si la méthode réussit, retourne S_OK. En cas d’échec, les codes de retour possibles incluent, sans s’y limiter, les valeurs indiquées dans le tableau suivant.

Code de retour Description
SPTLAUD_MD_CLNT_E_NO_ITEMS_OPEN
L’objet ISpatialAudioMetadataItems n’a pas été ouvert pour lecture avec un appel à Open ou l’objet a été fermé pour écriture avec un appel à Fermer.
E_INVALIDARG
L’un des pointeurs fournis n’est pas valide.

Remarques

Avant d’appeler ReadNextItem, vous devez ouvrir ISpatialAudioMetadataReader pour la lecture en appelant Open après la création de l’objet et après l’appel de Close . Vous devez également appeler ReadItemCountInFrames , puis appeler ReadNextItem avant d’appeler ReadNextItem.

ISpatialAudioMetadataReader conserve un pointeur interne vers la position actuelle dans la plage totale de trames contenue par les ISpatialAudioMetadataItems auxquels le lecteur est associé. À chaque appel à cette méthode, le pointeur est avancé par le nombre de trames spécifié dans le paramètre readFrameCount .

Le processus de lecture des commandes et des valeurs associées est récursif. Après chaque appel à ReadItemCountInFrames, appelez ReadNextItem pour obtenir le nombre de commandes dans l’élément suivant. Après chaque appel à ReadNextItem, appelez ReadNextItemCommand pour lire chaque commande de l’élément. Répétez ce processus jusqu’à ce que toute la plage de trames de ISpatialAudioMetadataItems ait été lue.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête spatialaudiometadata.h

Voir aussi

ISpatialAudioMetadataReader