ISpatialAudioMetadataWriter::WriteNextItem 方法 (spatialaudiometadata.h)

在指定的偏移量处启动新的元数据项。

语法

HRESULT WriteNextItem(
  [in] UINT16 frameOffset
);

参数

[in] frameOffset

使用 ActivateSpatialAudioMetadataItemsframeCount 参数指定的范围内的项的帧偏移量。

返回值

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

返回代码 说明
SPTLAUD_MD_CLNT_E_NO_ITEMS_OPEN
尚未打开 ISpatialAudioMetadataItems 以使用对 Open 的调用进行写入,或者已关闭对象以使用对 Close 的调用进行写入。
SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE
写入会话中写入的项目数大于传入 ISpatialAudioClient::ActivateSpatialAudioStream的 SpatialAudioObjectRenderStreamForMetadataActivationParam 中的 MaxMetadataItemCount 字段中提供的值。

frameCount 值大于 ActivateSpatialAudioMetadataItemsframeCount 参数的值,并且溢出模式设置为SpatialAudioMetadataWriterOverflow_Fail

E_INVALIDARG
frameOffset 的值不大于同一写入会话中对 WriteNextItem 的上一次调用中提供的值。

注解

在调用 WriteNextItem 之前,必须打开 ISpatialAudioMetadataWriter 进行写入,方法是在创建对象后和调用 Close 之后调用 Open。 在通过调用 OpenClose 划分的写入会话期间, frameOffset 参数的值必须大于前面调用中的值。

在单个写入会话中,不得使用 WriteNextItem 写入的项数超过传递到 ISpatialAudioClient::ActivateSpatialAudioAudioStreamSpatialAudioObjectRenderStreamForMetadataActivationParam 中的 MaxMetadataItemCount 字段中提供的值,否则会发生SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE错误。

如果溢出模式设置为 SpatialAudioMetadataWriterOverflow_Fail则 frameOffset 参数的值必须小于 ActivateSpatialAudioMetadataItemsframeCount 参数的值,否则会发生SPTLAUD_MD_CLNT_E_FRAMEOFFSET_OUT_OF_RANGE错误。

调用 WriteNextItem 后,调用 WriteNextItemCommand 以写入项的元数据命令和值数据。

要求

   
目标平台 Windows
标头 spatialaudiometadata.h

另请参阅

ISpatialAudioMetadataWriter