ISpatialAudioObjectRenderStreamForMetadata::ActivateSpatialAudioObjectForMetadataItems 方法 (spatialaudiometadata.h)

激活 ISpatialAudioObjectForMetadataItems 进行呈现。

语法

HRESULT ActivateSpatialAudioObjectForMetadataItems(
  [in]  AudioObjectType                     type,
  [out] ISpatialAudioObjectForMetadataItems **audioObject
);

参数

[in] type

要激活的音频对象的类型。 对于动态音频对象,此值必须 AudioObjectType_Dynamic。 对于静态音频对象,请指定枚举中的一个静态音频通道值。 指定 AudioObjectType_None 将生成未空间化的音频对象。

[out] audioObject

接收指向已激活接口的指针。

返回值

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

返回代码 说明
SPTLAUDCLNT_E_NO_MORE_OBJECTS
已超出同时空间音频对象的最大数目。 在尝试激活其他对象之前,请对未使用的音频对象调用 Release
SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE
type 参数中指定的静态通道未包含在传递到 ISpatialAudioClient::ActivateSpatialAudioAudioStreamSpatialAudioObjectRenderStreamForMetadataActivationParamsStaticObjectTypeMask 字段中。
SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE
已为 类型 参数中指定的静态通道激活空间音频对象。
E_POINTER
提供的指针无效。
E_INVALIDARG
类型参数中指定的值不是 AudioObjectType 枚举定义的值之一。
SPTLAUDCLNT_E_DESTROYED
与空间音频流关联的 ISpatialAudioClient 已销毁。
AUDCLNT_E_DEVICE_INVALIDATED
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。
SPTLAUDCLNT_E_INTERNAL
发生了内部错误。
AUDCLNT_E_UNSUPPORTED_FORMAT
与空间音频流关联的媒体使用不受支持的格式。

注解

动态 ISpatialAudioObjectForMetadataItems 是通过将 type 参数设置为 ActivateSpatialAudioObjectForMetadataItems 方法激活 AudioObjectType_Dynamic。 客户端对一次可激活的动态空间音频对象的最大数目有限制。 达到限制后,尝试激活其他音频对象将导致此方法返回SPTLAUDCLNT_E_NO_MORE_OBJECTS错误。 若要避免此问题,请在不再使用每个动态 ISpatialAudioObjectForMetadataItems 来释放资源后调用 Release,以便可以重新分配资源。 有关管理空间音频对象的生存期的详细信息,请参阅 ISpatialAudioObjectBase::IsActiveISpatialAudioObjectBase::SetEndOfStream

要求

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

另请参阅

ISpatialAudioObjectForMetadataItems