ISpatialAudioObjectRenderStreamBase::BeginUpdatingAudioObjects 方法 (spatialaudioclient.h)

将系统置于可以提交音频对象数据进行处理并可以修改 ISpatialAudioObject 状态的状态。

语法

HRESULT BeginUpdatingAudioObjects(
  [out] UINT32 *availableDynamicObjectCount,
  [out] UINT32 *frameCountPerBuffer
);

参数

[out] availableDynamicObjectCount

可用于当前处理阶段呈现的动态音频对象数。 所有分配的静态音频对象都可以在每次传递中呈现。 有关音频对象类型的信息,请参阅 AudioObjectType

[out] frameCountPerBuffer

GetBuffer 返回的缓冲区的大小(以音频帧为单位)。

返回值

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

返回代码 说明
SPTLAUDCLNT_E_OUT_OF_ORDER
两次调用 BeginUpdatingAudioObjects,但两次调用之间没有匹配调用 EndUpdatingAudioObjects
SPTLAUDCLNT_E_DESTROYED
与空间音频流关联的 ISpatialAudioClient 已销毁。
AUDCLNT_E_DEVICE_INVALIDATED
音频终结点设备已拔出,或者音频硬件或关联的硬件资源已重新配置、禁用、删除或以其他方式不可用。
AUDCLNT_E_RESOURCES_INVALIDATED
与空间音频流关联的资源不再有效。
SPTLAUDCLNT_E_INTERNAL
发生了内部错误。
AUDCLNT_E_UNSUPPORTED_FORMAT
与空间音频流关联的媒体使用不受支持的格式。

注解

每次将 SpatialAudioObjectRenderStreamActivationParams 中的事件传递给 ISpatialAudioClient::ActivateSpatialAudioStream 时,都必须调用此方法,
即使没有要提交的音频对象数据。

对于每个 BeginUpdatingAudioObjects 调用,都应有对 EndUpdatingAudioObjects 调用的 相应调用。
如果两次调用 BeginUpdatingAudioObjects 且它们之间没有调用 EndUpdatingAudioObject, 则第二次调用
BeginUpdatingAudioObjects 将返回SPTLAUDCLNT_E_OUT_OF_ORDER。

要求

   
目标平台 Windows
标头 spatialaudioclient.h

另请参阅

ISpatialAudioObjectRenderStream

ISpatialAudioObjectRenderStreamBase