ISpatialAudioMetadataReader::ReadNextItemCommand 方法 (spatialaudiometadata.h)

读取当前项的元数据命令和值数据。

语法

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

参数

[out] commandID

接收当前命令的命令 ID。

[in] valueBuffer

指向缓冲区的指针,该缓冲区接收特定于元数据格式定义所指定的命令的数据。 缓冲区必须至少 为 maxValueBufferLength ,以确保可以成功检索所有命令。

[in] maxValueBufferLength

命令值的最大大小。

[out] valueBufferLength

写入 valueBuffer 参数的数据的大小(以字节为单位)。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
SPTLAUD_MD_CLNT_E_NO_ITEMS_OPEN
ISpatialAudioMetadataItems 尚未通过调用 Open 打开进行读取,或者已关闭对象以使用对 Close 的调用进行写入。
E_INVALIDARG
提供的指针之一无效。

注解

在调用 ReadNextItem 之前,必须打开 ISpatialAudioMetadataReader 进行读取,方法是在创建对象后和调用 Close 之后调用 Open。 在调用 ReadNextItemItem 之前,还必须调用 ReadItemCountInFrames,然后调用 ReadNextItem

ISpatialAudioMetadataReader 将指向与读取器关联的 ISpatialAudioMetadataItems 包含的帧总数范围内的当前位置的内部指针。 每次调用此方法都会使指针按 readFrameCount 参数中指定的帧数进行高级。

读取命令和关联值的过程是递归的。 每次调用 ReadItemCountInFrames 后,调用 ReadNextItem 以获取下一项中的命令数。 每次调用 ReadNextItem 后,调用 ReadNextItemCommand 读取项的每个命令。 重复此过程,直到读取 ISpatialAudioMetadataItems 的整个帧范围。

要求

要求
目标平台 Windows
标头 spatialaudiometadata.h

另请参阅

ISpatialAudioMetadataReader